Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
What I wanted was a small, fast, crash-free, bug-free, *stable* graphics programming platform. 2D GUI. Basically a combo of Windows 98 and UNIXv5, without any bugs.
One of my design concepts was for a FATlike filesystem with variable-sized clusters. After a year and a half of programming, it works! And it's fast!
Another was that my OS is based on lots of blocking. 98% of my threads are blocked at all times, or something like that. So I wanted a clever blocking mechanism in my API for apps to use. I think I've got that implemented, too.
I have a few small ideas for how I want the "file manager" screen to look -- I don't want it to always display <i>all</i> the subdirectories in a dir. I want to replace bunches of them with a "..." that can be "reopened".
But as I said, it's only been a year and a half, and I haven't gotten to the point yet where I have to rule out my original design specs as being impossible.
I wish that I could run Wine, and Windows apps. I doubt that will happen.
I also kinda wish that I could run Windows drivers directly, with some kind of interface between them and my OS. It might be slow, but I'd get access to thousands of drivers.
My origional idea that got me into OS Devving, was not even to develop and OS at all. My origional goal was to make a boot-up utility (like partition magic) to create custom HDD file systems and experiment with encyption at the boot-level. Then somehow, I started reading about bootsector code and such, and one thing lead to another and I started developing my own OS.
Once I had played around with a few tutorial bootstraps, I took about a week to figure out what I wanted to actually 'do' with my OS, and came up with the idea for DiNS.
A central idea of my OS back then was to have one common interface that would allow modules written in any (supported) language to talk to any other module, regardless of what language that module was implemented in. A possible extension of that concept would have been to have modules being used remotely, i.e. over the network.
Something like COM / Corba, but on the OS level. Then I read up on those, and realized the pain and woe and overhead involved.
Then Microsoft releazed .NET, and the whole thing became a would-have-been-nice.
Every good solution is obvious once you've found it.