The Language Defines the OS
I have also been struck by how similar many OS's are. The Mach kernel, for instance, is said to be completely different from UNIX because of its microkernel approach. And heated discussions, like the famous one between Linus Torvalds and Andy Tanenbaum, have been made about whether microkernels are better than monolithic kernels like Linux. But when you look at it, much of the Mach research and applications have been dealing with making UNIX servers. And the messaging system is based on procedure calls just like other UNIX system calls. And threads in Mach follow the same process model as UNIX with a kernel and a user space stack.
My perception is that all OS's written in C will be more or less similar to UNIX. Because C and UNIX are made for each other. And this is not necessarily bad, as long as we like *NIX systems! But I believe that if one really wants to make a radically new system, one must also design a language to match it.
My "little" pet project is therefore to first write a compiler for my new language and then use it to create a working system. I expect to release alpha about 2030!!
The new language is object based. That means no stack. If we need an activation record it must be allocated in the object. New processors have 32-64 registers and most of the time everything can fit in here. This solves the problems with kernel and user space stacks, stack detachment / attachment, memory use in massively multithreaded systems etc.
Moreover I want to make a distributed system with global shared virtual memory. A pointer to an object is thus usable from the entire system. If a thread takes a segment fault, the kernel checks if the object at the faulting virtual address contains a capability to enter a new protection domain. If it does, the thread is transferred to that domain and execution continued. The receiving object must then perform authentication. This makes remote messaging completely transparent. And objects can be reached in other user-spaces or in the kernel-space.
This will be a system which is built on object-oriented programming from the ground and up. As opposed to e.g. MacOS X where objects are a high level abstraction.
That's my humble proposal for something new!