An operating system written from scratch in C++23. It has its own bootloader, its own microkernel, its own network stack and its own desktop. It isn't Linux, and it doesn't run Linux programs.
The kernel is called RudraCore. The desktop is KamalShell. It boots on real x86_64 PCs and in QEMU.
.bpk packages, installed with apt from a repository browser files terminal notes monitor store apps
\ | | | | /
+-------------- KamalShell -----------+ desktop
| |
fs (FAT32) net (TCP/IP, TLS) servers
| |
ahci ps2 e1000 / rtl8139 drivers
------------------------------------------------- ring 3
RudraCore (28 system calls) kernel
------------------------------------------------- ring 0
The kernel only runs tasks, maps memory and passes messages. Everything above the line is an ordinary program. Programs talk over channels and can hand each other a handle to a channel, a block of memory or a device. A program can't touch anything it wasn't handed, a handle can carry fewer rights than its owner has (read-only, send-only), and it can be taken back.
The details, including a security review with what's still missing, are in README.md and docs/SECURITY.md.
apt.On Windows you need Docker and, if you want a window, QEMU. Everything else is inside the toolchain image.
.\bhairav.ps1 toolchain.\bhairav.ps1 build.\bhairav.ps1 runOn Linux, install the packages from the Dockerfile and run make run. The first build also makes keys/package-signing.pem, the key your app packages are signed with. Keep it.