I had copy of NeptuneOS from a questionable download source. I installed it on my barebone pc. To my excuse, young me was desperate to have something else then Windows ME. It was quite usable.
"The status of the project right now is that we have implemented enough NT primitives to load a basic keyboard driver stack, which includes the keyboard class driver kbdclass.sys and the PS/2 port driver i8042prt.sys, as well as a basic command prompt ntcmd.exe, taken from the ReactOS project."
Probably posted because 0.1.0001 was just [0] released 9 hours ago:
> Basic keyboard stack and a command line shell. All drivers run in the user space. Pretty much none of the commands actually work because we haven't implemented many things, but the keyboard stack works reasonably well. We also included a beep driver to make an annoying sound on the PC speaker.
> The main obstacle of achieving binary compatibility of kernel drivers is that many Windows kernel drivers do not follow the standard Windows driver communication protocol (ie. passing IRPs when you need to call another driver) and instead just pass pointers around and call into other drivers directly.
Does this mean drivers that are part of Windows itself or third party hardware manufacturers?
Because if it's the first one that seems shocking and like it was a shortcut that could end up becoming very difficult to maintain for the Windows team...
Microkernels definitely have the advantage of forcing communication via correct channels and processes.
There is no reverse engineering because how Windows implements things internally is totally irrelevant. We only implement the public interfaces exposed by the NT Executive. The device drivers and user applications are all taken from ReactOS source code.
Hi, I'm the author of this project (I didn't post this on HN someone else did). We have implemented NT processes. All device drivers and user executable are NT processes (created by NtCreateProcess or RtlCreateUserProcess). What we don't have is Win32 process, because there is no Win32 subsystem yet.
The keyboard driver stack is working (we also have a PC speaker driver that makes an annoying beep). It's actually not as trivial as it seems, because passing IRPs across process boundary while maintaining the consistency of states is not that easy to get right, among other things. The goal of the very first release is to demonstrate that one can run Windows kernel drivers in seL4 user space and have a Windows (native NT, not Win32) application communicate with said Windows drivers via standard NT primitives (NtOpenFile and whatnot).
https://en.wikipedia.org/wiki/Windows_Neptune
https://betawiki.net/wiki/Windows_Neptune_build_5111.1