Subject: i386 Operating Systems
To: None <port-i386@NetBSD.ORG>
From: Brian de Alwis <email@example.com>
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
(firstname.lastname@example.org) 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
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
5. What 386 features are `useless'? What features are too slow for
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
Brian de Alwis -- email@example.com, firstname.lastname@example.org --
4th Year CS student at the University of Waterloo
NetBSD - Try it! You'll like it! | Dore': A FREE portable 3D Graphics API