frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Show HN: Run Linux kernel drivers in userspace on Neptune OS, NT-like OS on seL4

3•cl91•3h ago
For the past ten years I have been working on a side project which I have taken to call Neptune OS [1], named after the ill-fated Microsoft Windows codename. Neptune OS is a Windows NT-like operating system built on the seL4 microkernel. The project has reached a point where it can run non-trivial, unmodified or minimally modified Windows or Linux kernel drivers as native (ie. NOT in a VM), unprivileged userspace processes on seL4. For instance, here [2] is amdgpu and i915 (from the Linux kernel DRM subsystem) successfully performing mode-setting on Haswell+Radeon RX560 for hotplugged monitors. The linked youtube channel has more demos for storage, networking, and power management drivers.

Why I started working on this and why I think it is interesting:

If you were familiar with early Windows NT development history, you'd probably know that NT was (allegedly) supposed to be a microkernel OS, where system services exist as user-mode servers sitting on top of a Mach-style port-based IPC. Unfortunately the late 1980s' computing technology prevented Microsoft from realizing this vision, and as a result the Windows we see today has everything dumped into kernel space (they even put an HTTP server in kernel mode!), leading to stability and security issues.

This unrealized potential of the NT architecture never sat right to me, so when the seL4 microkernel was open-sourced back in 2014, I immediately thought, well perhaps one could rewrite NT as a personality on top of seL4. This "re-imagined" NT on seL4 will have the NT system call services implemented as a userspace process that talks to client processes via the high performance, formally verified seL4 IPC. Device drivers will then also run in isolated, unprivileged user processes, the crash of which will not lead to a BSOD-inducing full system crash.

Another feature of the NT architecture I find very interesting is its so-called Environment Subsystems. These sit on top of the NT native system call services and expose them as more friendly user-facing APIs, such as Win32 and POSIX. I always thought it was a real shame that Microsoft has essentially given up on this idea and today's Windows is Win32-only (WSL1 being a much-needed redemption, but was then mercilessly dropped). With this seL4 rewrite of NT, I thought I could take this idea one step further and expand these environment subsystems to include device drivers, as they now run in userspace where they should have belonged.

The result is the Linux Driver Subsystem in the latest v0.4 release of the project. In addition to native Windows drivers (which now run in userspace), this subsystem allows unmodified (or very minimally modified) Linux kernel drivers to run as native user processes on seL4. Note these are not virtual machines --- they are just regular, unprivileged processes. More technical details can be found in the mailing list announcement [3], but the basic idea is to add a new arch port to the Linux kernel similar to that of UML and the lkl (Linux-kernel-as-a-library) project. When compiled for this architecture, a reduced Linux kernel binary will essentially run as a regular program, requesting resources from the underlying host OS via the seL4 IPC. This binary communicates with the host OS via a carefully defined interface, which is in fact not tied to seL4 specifically, meaning our work can potentially be reused for other NT-like OSes (including Windows itself), or even other non NT-like OSes (with some more effort).

Anyway, if you have read this far, I hope you find this project interesting. What do you think? What kind of applications do you think Neptune OS can potentially have? Do you think the project has sufficient industrial relevance to go beyond a hobby operating system? Let me know in the comments below.

[1] https://github.com/cl91/NeptuneOS [2] https://youtu.be/BJIrUZIGgBc [3] https://lists.sel4.systems/hyperkitty/list/devel@sel4.system...

Show HN: RxFilm Studio–Create and edit your product videos with AI agent

https://filmstudio.rxlab.app
8•zilue•40m ago•3 comments

Show HN: Ive Sent It – online courier for files, with signed proof of delivery

https://ivesentit.com
3•ivesentit•33m ago•0 comments

Show HN: Jevper – the Jev interface on top of any OpenAI-compatible model

https://github.com/zhulinchng/jevper
2•czl_my•43m ago•0 comments

Show HN: Npunlock – Run custom C kernels for Intel NPUs

https://github.com/hsfzxjy/npunlock
47•hsfzxjy•1d ago•12 comments

Show HN: JevBench, a reproducible benchmark for typed decision models

https://benchmarkheaven.com/jev-models
121•florianstandhar•1d ago•32 comments

Show HN: Drop – A rootless Linux sandbox with gVisor support

https://droprun.sh/
176•mixedbit•23h ago•59 comments

Show HN: Training a model to identify AI web content from structure alone

https://arxiv.org/abs/2609.15369
61•jochenmadler•1d ago•15 comments

Show HN: Run Linux kernel drivers in userspace on Neptune OS, NT-like OS on seL4

3•cl91•3h ago•0 comments

Show HN: AI·rete·RAG – a Rete rule engine decides, RAG explains why

https://ai-rete-rag.com/
37•ZaharaHussain•20h ago•3 comments

Show HN: Company-as-Code –> Spec and Validator

https://github.com/Pirol-ai/company-as-code
2•grischajacobs•4h ago•0 comments

Show HN: InstinctFlash – High-Performance Serving Runtime for Robotics Models

https://github.com/General-Instinct/InstinctFlash
24•guanming0717•21h ago•3 comments

Show HN: Visually orchestrate Claude Code AI agents

https://github.com/rondoflow/rondoflow
3•bdearch•7h ago•0 comments

Show HN: Mini-AGI – Dynamic continual learning model trained on 8GB VRAM

https://github.com/volotat/mini-AGI/
276•volotat•2d ago•75 comments

Show HN: Napkin – a scratchpad that holds texts and images for copy

https://github.com/sudomonas/napkin
3•ppnpm•8h ago•2 comments

Show HN: OpenMCP – An open, code-first fork of the Model Context Protocol

https://github.com/enclawed/omcp
8•enclawed•21h ago•1 comments

Show HN: graf (1000x faster graphify in Rust)

https://github.com/ctxrs/graf
10•ripped_britches•20h ago•3 comments

Show HN: Sbm: plain-text bookmarks synced across terminal, browser, Android

https://sbmsync.com
2•equwal•10h ago•0 comments

Show HN: A competition for small neural networks that play strategy games

https://tinybrains.dev
111•codetiger•2d ago•41 comments

Show HN: Foremerge – Catch intent conflicts between parallel coding agents

https://github.com/naw103/foremerge
45•naw103•1d ago•17 comments

Show HN: Radius – A Meetup.com Alternative

https://radius.to/
164•radius89•2d ago•81 comments

Show HN: Lossless-memory – a personal AI memory that never summarizes

https://github.com/aru-labs/lossless-memory
66•aru-labs•2d ago•29 comments

Show HN: Livenerf – a benchmark for whether Opus 5.5 gets nerfed

https://github.com/ninjahawk/livenerf
3•ninjahawk1•13h ago•0 comments

Show HN: A fast, offline Markdown viewer for macOS built in Swift

https://github.com/temir-dev/tims-markdown-reader
4•tim_tairov•14h ago•0 comments

Show HN: WavexAI – Unlimited tokens for a fixed cost

https://wavexai.dev/
6•wilsprouse•14h ago•11 comments

Show HN: Vellum, the best diagram editor you'll ever use

https://vellum.blueprintr.io
23•JoshJamesAnthon•1d ago•15 comments

Show HN: Sigabrt.dev – cronjob monitor with an SSH TUI

https://sigabrt.dev
81•4815162342•4d ago•35 comments

Show HN: LARP Capital – Prestige as a Service

https://www.larpcapital.us/
3•vknar•15h ago•1 comments

Show HN: Hack – my Hacker News mobile client now lets you block AI posts

8•busymom0•22h ago•3 comments

Show HN: NetM8 OS

https://netm8.com/
2•goodknightleo•16h ago•0 comments

Show HN: jevals – replacing LLM judges with typed Jev decisions

https://github.com/openlayer-ai/jevals
46•gbayomi•2d ago•6 comments