Nils Asmussen wrote:
What does everyone here think of my design? Would anyone here be interested in contributing?
Well, your ideas sound not bad, but also like a LOT of work. And as always, you will see the real problems of your ideas only if you actually try to implement them. So, better start implementing instead of thinking about how the GUI should work ;)
I know it's not going to be easy, even with all the third party code I'm going to be using. I'm dissatisfied with existing mainstream OSes and think writing a new one is worth it.
Were it FOSS, I probably would have forked QNX, but since it's proprietary, I have to write my own QNX-like OS. Although I guess writing my own does give me a chance to make it the way I want to begin with, rather than hacking an existing OS to work the way I want (there are several places where I think QNX gets it wrong).
Although I'm wondering a bit that you want to focus on real-time (as the name contains that), but did not speak about that at all...
Fiasco.OC already has realtime support, so that part is done for me at least. The most important part of userspace realtime support would probably be making sure that the virtual memory layer of the root task doesn't add latency. UX/RT will offer finer-grained control over paging policy than other OSes, with per-file paging priorities (the highest of which will keep the file locked in memory and prevent page faults from occurring on that file; a process that wants to avoid page faults could set the paging priority on all the files making up its address space to the highest). I'm probably not going to focus on making stuff like directory lookups realtime (since those will often involve one or more other servers in addition to the root task). read() and write() will already be realtime since they will just be thin wrappers on top of kernel messaging. Making other parts of the OS like disk filesystems and the network stack realtime would very likely be difficult or impossible so I'm probably not going to bother there.