Just registered with OSDev.org, saw this thread/topic and thought I'd introduce myself and my OS project.
First off, I'm not aiming for my project to take off like Linus Torvald's project did, though I'll have to admit that it would be fun if it did
For me, it's more about learning OS Design the same way I learnt about programming C, HTML and x86 assembler (and now learning PHP), which is by myself through own experiences (takes a little longer but I find it easier to really understand things that way).
The platform I'm writing for is Intel's x86 series (IA32 as I recall) and having read a little about the types of kernels I'd say it wil be a monolithic one, with a design very similar to the hardware design of a PC, i.e. a kernel "motherboard", specifically designed for the machine you're running it on (which in my case means that the "motherboard" will be designed around the motheboard feautures of my development machine, a PS/1 with a 25 MHz 486 SX (old, I know, but I know its hardware the best).
Then you add the modules you need and want, and I'm not just meaning what you expect, like the drivers for cards you plug in, or the drivers for
network protocols (like TCP/IP) and filesystems, but things like the scheduler or security and memory management as well.
That is, if the scheduler doesn't perform optimally in the end application, you can let the "motherboard" load another scheduler which does the job better (with some requirements on the design to give applications not specifically written for it a reasonably predictable speed of execution, of course).
As to the design of the "motherboard" OS, it will be 32-bit, paged and segmented (that is, uses 48-bit pointers in the default mode). I've studied it a bit, and found that the added degree of complexity has its rewards when you run shared DLL's (the processes don't run out of virtual memory space quite as easily when you have a lot of different DLL's for different processes).
It will also use threads (more on the specs later on as I decide on exactly how to pull it off). Generally, you could call it a cross between OS/2 and UN*X, hopefully combining the best parts of the two. I do most of my programming in assembly (using NASM) and C (using OpenWatcom), and my documentation in HTML/PHP.
So any thoughts? Ideas? Has this approach been tried before?
/Teo, Newbie on here on OSDev.org.