ShamblerOS is my (@shymega) personal attempt at creating a hobby operating system with my own take on how an OS should be like.
ShamblerOS is not like Linux, which is a monolithic kernel with dynamically-loadable modules. It bears a closer resemblance to MINIX, Plan 9 and Inferno, but written in Rust, a thread-safe systems programming language, with some exceptions for low-level components.
Worth noting: ShamblerOS is NOT designed to be a Unix-like/POSIX operating system.
-
Microkernel
-
Minimalist microkernel.
-
Perform an minimal amount of functions in kernel-space as possible.
-
Perform nearly all functions in user-space.
-
-
Aim for nearly all of the kernel to be written in Rust.
- With exceptions for low-level components, which cannot be written in Rust.
- Non-Rust components must be thread-safe and thoroughly tested continously.
-
-
POSIX emulation layer
This is to provide compatibility to other OSes, which may not necessarily conform to ShamblerOS's conventions.
- Sublayers - these provide extensions to the 'root' POSIX
emulation layer.
- Linux kernel emulation sublayer.
- FreeBSD emulation sublayer.
- Translate 'foreign' syscalls to native syscalls for ShamblerOS.
Worth noting: this will (probably) cause a noticeable slow down.
- Sublayers - these provide extensions to the 'root' POSIX
emulation layer.
-
Filesystem:
- Filesystem similar to ZFS/BTRFS.
-
License: Haven't decided yet. I'd like to use GPLv3, but I'm worried that it'll make things difficult further down the line. If I had to use a permissive license, I'd go with Apache License 2.0.