https://hubris.oxide.computer/reference/
It's all open-source on Github:
https://github.com/oxidecomputer/hubris
(I work at Oxide, mostly using Hubris)
[1] https://betrusted.io/xous-book/ch00-00-introduction.html
https://git.minix3.org/index.cgi?p=minix.git
Happy to be wrong though, I'd like new code to look at.
The source code is included by default so you can boot and jump right in. Code is very clean, minimal and approachable.
The reason why it is not a microkernel is because hardware drivers and some performance sensitive code such as ip, tls and graphics are in kernel. The rest, including on-disk file system (cwfs, fat, ext, etc), certain usb drivers, etc run in user space.
> I'm curious to see how userspace processes communicate to kernel processes to execute privileged actions.
You write and read messages to synthetic files served by the kernel. Kernel files are served via a special # prefix so they can be opened by any program locally. Since user space programs can speak 9p you don't need any special programs to make syscalls to talk to the kernel. e.g. to list disks served by the sd(3) driver run 'ls '#'S'
Everything is just messages. Even unix signals were replaced with notes. To send a note to a process all you do is 'echo hello >/proc/$pid/ctl' and in the program you register one or more note handlers that simply do a strcmp() and if the note matches a string you define then do something. (if you complain about /proc and never used plan 9 /proc then your argument is invalid.)
If you think about it, plan 9 is just a host for microservices.
I recommend using 9front to explore.
nova
okl4_x86
foc
fiasco
pistachio
linux
sel4
https://genode.org/documentation/components
Also QNX and RTEMS need's to be mentioned here.
And Helios/Ares-os:
But I think one of the main mechanisms is basically non-kernel services install their own system calls (SVCs) and this SVC will schedule a light-weight thread (SRB) in the requestor's address space.
There was an older book that described how to create a simple OS along similar lines to MVS, but I don't remember the name.
I've only glanced at it, but there's some teaching material from L4 land apparently in the usual excellent German technical English at https://tu-dresden.de/ing/informatik/sya/professur-fuer-betr...
About page: https://composite.seas.gwu.edu/
OSF/1, the attempt at an industry standard next-gen Unix by what is now the Open Group, holders of the UNIX trademark, also ran on Mach. Only DEC shipped it, though. The filesystem is now FOSS but I don't think the rest of DEC's code was, sadly. https://en.wikipedia.org/wiki/OSF/1
Chorus is out there: https://en.wikipedia.org/wiki/ChorusOS
HelenOS, from the Charles University here in Prague where I write, is a FOSS microkernel OS. http://www.helenos.org/
FreeRTOS [3] bundles in a microkernel [4].
Speaking of FreeRTOS, you may also be interested in Riot OS developer's blog entry on building a (micro?) kernel [5].
[0] https://github.com/rcore-os/rCore
[1] https://github.com/rcore-os/zCore
https://en.wikipedia.org/wiki/Taligent
I read it chronologically. It was worth every minute.
> ... construct unikernels for secure, high-performance network applications across a variety of cloud computing and mobile platforms. Code can be developed on a normal OS such as Linux or macOS, and then compiled into a fully-standalone, specialised unikernel that runs under a Xen or KVM hypervisor.[1]
[0] : https://github.com/mirage/qubes-mirage-firewall
[1] : https://mirageos.org/
https://en.wikipedia.org/wiki/Hybrid_kernel#:~:text=Windows%....