Neptune OS is a Windows NT personality of the seL4 microkernel. It implements what Microsoft calls the “NT Executive”, the upper layer of the Windows kernel NTOSKRNL.EXE, as a user process under the seL4 microkernel. The NT Executive implements the so-called NT Native API, the native system call interface of Windows upon which the more familiar Win32 API is built. These are exposed to the user mode via stub functions in NTDLL.DLL (a somewhat redundant name if you ask me) with names such as NtCreateProcess. The NT Executive is also responsible for the Windows kernel driver interface (known as the Windows driver model), which includes functions like IoConnectInterrupt and IoCallDriver. On Windows these are loaded into kernel mode and linked with the NTOSKRNL.EXE image. On Neptune OS, we run all the Windows kernel driver in user mode and they communicate with the NT Executive process via standard seL4 IPC primitives.
The eventual goal of the Neptune OS project is to implement enough NT semantics such that a ReactOS user land can be ported under Neptune OS, as well as most ReactOS kernel drivers. In theory we should be able to achieve binary compatibility with native Windows executables provided that our implementation of the NT Native API is sufficiently faithful. We should also be able to achieve a high degree of source code compatibility with Windows kernel drivers. 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. In Neptune OS unless it’s a driver-minidriver pair we always run “kernel” drivers in their separate processes so it is not possible to do that.
Very cool idea for a project, and awesome to see that they plan on integrating the work done by the ReactOS team.
I have always been fascinated by the L4 microkernel projects. I wish Jochen Liedtke had lived to continue the work.
Indeed the L4-family is cool, but in particular, seL4 is really cool! Here’s a properly designed microkernel with security as the #1 priority and, somehow, few outside the defense industry are actively interested in it.
Was particularly interested in Darbat as a concept
(L4Darwin/BSD)
But unfortunately the development on it eventually fizzled out :/
Am I the only one not surprised that many Windows hardware drivers don’t do things correctly (pass pointers around instead of using kernel features)? While I use Linux on all my devices, I sympathize with the extraordinary challenge Microsoft faces as they try to keep this massive streaming pile of terrible code called the Windows ecosystem running smoothly with each new release. So many developers don’t use the OS features correctly, but then users blame Microsoft when an upgrade breaks their software. It’s gotta be rough…
They caused the mess.. now sit in it!
Cutler did not want a modular kernel, he wanted to build upon VMS knowledge and is famous to have said (not verified as true, but widely cited) “either you go monolithic or you go modern” At the time the amiga was kicking the IBM monopoly’s ass in europe and making inroads in the US.
What could they have done in your mind. They had an extensive code library and DOS was dominant. They simply could not fairly beat commodore or atari on features.
They had the IBM license that made them big in the first place, and compaq as a cloner. CBM was still bigger in sales by 1987.
The reasons the IBM comaptile won was open standards and the clones. IBM did not really want a 386, compaq did.
I want the same project but for OS/2. OS/2 still have a user community that wants to use it, but sadly there are no developers willing to play with the low end components to try to change/clone the kernel or other components.
But how far can the OS/2 layer go? Retranslating all 64bit software might work for minor apps. But what if you tried in time translation of an old game like fallout 3? OS/2 is a 32bit system, and you can not get (unless you have cpu support for PAE) beyond that system limitation of 4gb. The rockstar launcher for example is taking up 1.2gb ram. Ubisoft is even worse. Steam however uses throuch all processes around 500mb.
OSFree still kind of exists. That seems to use L4 too.
http://osfree.org/doku/doku.php?id=en:start
Hrm, Windows and Neptune already exist as names referring to a different project : https://en.wikipedia.org/wiki/Windows_Neptune
I never understood why that was cancelled or why or how it was substantially different than Whistler/windows XP. A consumer version of Windows NT to replace the 9x. Which is what XP did. I guess Oddessy ( the windows 2k successor for businesses had some redundant groups or something or the code base was too much of a mess to maintain two different forks for two different operating systems to share without them being run by a single set of managers? FWIW, I skipped Windows ME, while waiting on Neptune.
That was the driving force behind the name, as was mentioned in the project announcement on the ReactOS mailing list
https://reactos.org/archives/public/ros-general/2022-February/003029.html
“For the past several months I have been working on a project which is to
implement a Windows NT personality for the seL4 microkernel, which I have
now taken to call “Neptune OS”, named after the codename for Windows 2000.”
Ok , but it wasn’t windows 2000’s code name, because it didn’t have one.
https://en.wikipedia.org/wiki/List_of_Microsoft_codenames#Windows_NT_family
Neptune had the xe kernel, it suported more than 64 cores unlike windows xp or server 2003. It was experimental edition for a reason. Today 64 cores is not a problem. I use 44c/88t as my lowest home system. At work i use quad epyc 7601; 128c/256t. Damn it is fast. It can compile a javva workload of terabytes in rediculous times.
Any source for that? I was at the time following the development as close as possible, I always heard what Wikipedia currently has, that it was supposed to be the first consumer version with a WinNT base. But instead of having a separate Buisness fork of WinNT and a consumer fork, they combined them to make WinXP. I don’t think it was ever a research OS like the Singularity project or Midori.
ReactOS was accused of using code from the Windows Research Kernel so this will be very interesting to the ReactOS’ guys.
This has been solved in court in 2004. ReactOS uses as the judge said “not a single line of code” of the leaked NT4 nor the leaked windows 2000 source code. And the project ACTIVELY says that unless you have legal rights to the code (author in the most part) you can not contribute.
You are spreading F.U.D
NaGERST,
There are windows engineers who say it happened though…
https://www.osnews.com/story/130275/reactos-a-ripoff-of-the-windows-research-kernel-claims-microsoft-kernel-engineer/
Of course this would be a whole lot easier to independently verify if we had all the code. Do you have a link for an analysis based on leaked sources? It could be interesting to read.
Also, this was disappointing for many of us, but courts have set the precedent for copyrightable APIs. It may no longer be enough to have a clean implementation for clones to legally be in the clear. Regardless of implementation, reactOS may be vulnerable to API copyrights. Their status may hinge on fair use exemptions, which need to be granted on a case by case basis.
Sorry for commenting on old comment, but the leaked NT4 code was not all of the code in NT, just a subset. So its entirely possible to look at the portions of NT4 code that ReactOS didn’t take from and say there is no copying involved. I have no independent knowledge of any copying, but I don’t think the NT4 leak case was definitive by any measure. While also acknowledging the Old SCO lawsuit exposed how to completely different code bases could end up with a lot of similarities if there is an attempt to be compatible without meaning that code was copied. So IDK. I only know reactos will never be good enough for my uses. I gave up on waiting on it decades ago…
Bill Shooter of Bul,
I have no independent knowledge either, and that’s why I asked what the evidence was.
Only microsoft and it’s employees are in a definitive position to prove it…assuming code was in fact copied.
I’ve tried it as well and it wasn’t good enough for me either.