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. |
Back to BoredOS main page