BoredOS Features
BoredOS is a UNIX-like operating system built entirely from scratch. Written mostly in C. It isn't fully POSIX compliant, so software generally needs a bit of porting work before it runs, but for most programs the changes needed are surprisingly small.
Networking
Networking is handled by lwIP, with drivers for Intel e1000, Realtek RTL8139/RTL8111, and VirtIO-net, covering most common hardware and virtualized environments.
Nova
Nova is BoredOS's own compositor, built from the ground up with a custom UI toolkit and a serenityOS-inspired design language.
Package Manager
bpm is our package manager. It has a growing community repo where anyone can
submit packages.
There's a growing community repo, BUR, where anyone can submit packages through a pull request. Want to add your own software? The packaging guide walks you through the format.
Kernel Internals
| Subsystem | Details |
|---|---|
| SMP | Multi-core support via LAPIC. Per-CPU state lives in the GS segment, and XSAVE/XRSTOR handle FPU context across switches. |
| Scheduler | Preemptive round-robin over a circular process list, with sleep/wake support, per-CPU affinity, and cross-core IPI for AP scheduling. |
| Memory | Physical page allocator (PMM), slab allocator, 4-level MMU with COW, VMA tracking with an RB-tree, demand paging, and a page cache. |
| VFS | Virtual filesystem layer supporting tmpfs, FAT32, ext4, ProcFS, and SysFS. |
| IPC | Unix domain sockets, shared memory through /dev/shm, wait queues, and work
queues. |
| PTY | Full pseudo-terminal support. |
| Devices | PCI, AHCI (SATA), PS/2, ACPI, I2C, AC97 audio, and RTC. |
| TTYs | 10 graphical ttys, plus com0 through com3 serial ttys. With future support for USB and PCI serial devices. |
| ELF | Loads and runs ELF64 binaries. |
Ports
| Port | Notes |
|---|---|
| TinyGL | A small OpenGL 1.x subset. |
| DOOM | What's an operating system without DOOM? |
| TCC | A small, fast C compiler. |
| Lua | Available as a shell tool or embeddable in other programs. |
| mlibc | The managarm C standard library. |
| kilo | A simple text editor. |
| tvi | A simple vim-like text editor. |
| kirc | A simple IRC client. |