Subject: i386 Operating Systems
To: None <port-i386@NetBSD.ORG>
From: Brian de Alwis <>
List: port-i386
Date: 05/24/1995 11:26:30
I'm going to apologize in advance for this mail. It has very little to
do with NetBSD on the 386. This is, however, one of few forums I know
of with people who are intimately familiar with the i386 and i486
platforms. I have the Reply-To set up to my partner and I.

For our fourth year Real-Time Systems course, my partner
( and I have to write a fully multitasking,
real-time microkernel. We are serving as guinea pigs for the new i486
embedded systems in the lab.

We're presently doing preliminary design work, and are trying to come
up with a reasonable representation of processes.

Our goals (so far) for our OS are as follows:
1. To make our OS as platform-independent as possible. This seems
   a worthy goal.
2. To also have kernel support for threads. This will probably help
   our real-time controller project.

Of course, any of these goals may be sacrificed due to time constraints.

I have some questions about OS's on the 386.  I've been following
NetBSD since 386BSD 0.0, so most of these will be from a NetBSD
orientation. I've never taken a real in-depth look at the internals.

1. NetBSD doesn't use the TSS at all, unlike Linux. Why was this
   decision made?
2. How are processes' memory space represented? It seems that each process
   has one segment, with the code, data, and stack.
3. How are the descriptor tables used in these OS's?
4. Are there any programming issues we should be aware of between the
   386 and the 486? Are there special twiddles needed for the 486's
   on-chip cache?
5. What 386 features are `useless'? What features are too slow for
   practical use?

We're still learning about the chip, and would appreciate _any_
comments that any of you can contribute.

And again, I apologize that this doesn't meet the full suitability of
this list.


Brian de Alwis --, --
  4th Year CS student at the University of Waterloo
  NetBSD - Try it! You'll like it! | Dore': A FREE portable 3D Graphics API