6 ms·
Neptune OS: a WinNT personality of the seL4 microkernel
- ofrzeta 5y ago"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."
- mikewarot 5y agoOh my! What can I, as a long time Win32 user do to help drive this forward?
- nix23 5y agoReading "The Cathedral and the Bazaar" ?
- klez 5y agoI have to ask: how did jinja2 become a dependency for an operating system?
- globular-toast 5y agoIt's a dependency for the build process.
- fithisux 5y agoThere was also osfree for os2
- xvilka 5y agoBased on the code from ReactOS[1][2]. [1] https://reactos.org/ https://reactos.org/ [2] https://github.com/reactos/reactos https://github.com/reactos/reactos
- lloydatkinson 5y ago> 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.
- diffeomorphism 5y agoSeems to be entirely different than https://neptuneos.com/en/start-page.html https://neptuneos.com/en/start-page.html with the exact same name.
- Lammy 5y agoExcellent project name :) https://en.wikipedia.org/wiki/Windows_Neptune https://en.wikipedia.org/wiki/Windows_Neptune https://betawiki.net/wiki/Windows_Neptune_build_5111.1 https://betawiki.net/wiki/Windows_Neptune_build_5111.1
- cl91 5y agoYeah I named the project after the codename for Windows 2000, arguably the best OS that Microsoft has ever created :)
- theandrewbailey 5y agoWhat? I can't find any codenames for 2000. All I can find is: > Windows 2000 didn't have a codename "because Jim Allchin didn't like codenames," Thompson says. https://web.archive.org/web/20170801163850/http://winsupersite.com/windows/supersite-flashback-nt-s-first-decade https://web.archive.org/web/20170801163850/http://winsupersi...
- cl91 5y agoOk I misremembered. It was actually a pre-release of what would become Windows XP.
- razemio 5y agoI 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.
- Animats 5y agoNow that's impressive. All that reverse engineering. How much isolation is there? Is each Win32 process an L4 process?
- monocasa 5y agoI don't think they've gotten to the point of NT processes. Looks like the currently load a couple simple NT drivers in sel4's user space.
- p_l 5y agoThey can start an Native process (ntcmd.exe) but that's about it, as the commands available don't run due to missing bits.
- cl91 5y agoThe 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).
- cl91 5y agoHi, 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.
- monocasa 5y agoAh, gotcha, I missed that. Thanks for the correction.
- 5y ago
- Semaphor 5y agoProbably 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. [0]: https://github.com/cl91/NeptuneOS/releases/tag/v0.1.0001 https://github.com/cl91/NeptuneOS/releases/tag/v0.1.0001