Asterinas is a new Linux-ABI-compatible kernel project written in Rust, based on what the authors call a “framekernel architecture”. The project overlaps somewhat with the goals of the Rust for Linux project, but approaches the problem space from a different direction by trying to get the best from both monolithic and microkernel designs.
↫ Ronja Koistinen at LWN.net
Ronja Koistinen has done an outstanding job diving into this new operating system kernel and approach to kernel architecture, including its intended focus and goals. Head on over to the source and read it over there.
Good luck to them.
But just to remind, Microsoft tried to do the same exact thing (almost), but switched to actual Linux kernel instead.
Windows, or rather NT is a microkernel, and has supported many “subsystems” over the time. (Including Windows, DOS, OS/2, Xenix, SFS, and yes Linux).
In their first iteration Windows Subsystem for Linux was a novel implementation of the Linux API on top of the existing NT kernel. It worked well, and the Linux programs more or less ran “natively”.
But they switched to running Linux in emulator. Why?
Performance.
It is practically impossible to catch up with 40 million lines of code. Even Microsoft had to give up (they probably could, but the cost would be really prohibitive).
So, once again, good luck.
Microsoft’s case is different because NT architecture is different from POSIX’. FreeBSD had a Linux compatibility layer that translated Linux system calls and it worked quite well.
s/worked/works/
jgfenix,
Microsoft had not only one but two POSIX layers on top of NT:
Microsoft POSIX subsystem
and Services for Unix. (Though only the second one was serious).
NT kernel is already capable, and fully complete wrt. operations. The main reason they had to catch up was the filesystem performance. Linux kernel and NT makes very different assumptions wrt. files, and many programs ran much slower on SFL v1 due to this.
(The upside was, Linux program could have direct access to Windows filesystems).
So, when popular commands like “git status” or “npm install” ran slowly… they had to choose between re-engineering a lot of things, or just switching to a VM.
As far as FreeBSD, I did not know that, that’s good to have. However, again, they have a fully functioning kernel, maybe the only other viable open source one outside of Linux.
I wonder if this was inspired by Drew DeVault’s proposal to side-step the Rust in Linux debates:
https://drewdevault.com/2024/08/30/2024-08-30-Rust-in-Linux-revisited.html
I too was wondering this.