For about two months, I've been busy working away at the possibility of a
native NT microkernel version of a Linux server. It's definitely doable. I'm
collecting information at the moment. I was sort of hoping until I had some
code (typical bizarre project style), but since Interix have beat the OSS
community to the punch, I may as well announce it now.
I'm looking at making the linux server (subsystem) at least passingly
similar to the current 2.2 tree, so that changes could be merged in there
closer . The goal obviously is to run native Linux x86 and Alpha binaries
(depending on platform) without recompilation.
My current idea is for a %windir%\linux\... tree that contains a vmlinux.exe
and the standard linux file system standard and enough stuff to launch bash.
Once launched, the server launches linux images as normal. A
modification/complete re-write of umsdos would provide the file system (or
maybe just use ext2fs until this is a bit more of a reality). By making a
directX fbconsole layer, we could re-use the frame buffer console code as it
exists today. X would come (much) later, but again via the use of the XAA
layer in XFree86 4.0 (I know it doesn't yet exist, but I helped write the
early 3.9 stuff, so I know it does exist :-)
The native NT api is exceptionally well hidden and undocumented, but
NT/W2k's microkernel is as least as good as Mach in all respects (and memory
and thread management, it's significantly better), so a mklinux server port
wouldn't take more than a year with dedicated people.
If anyone's interested please drop me a line. You'd need to have a compiler
and a passing knowledge of Windows NT/2000 to be useful at this stage. I'm
going to use Visual C++ until I can prove to myself that cygnus's (or other)
gcc under WIn32 can do the job. The reason for this is the header files,
which are vital to Win32 development.