Independent kernel
No Linux, BSD or Redox kernel underneath. BoringKernel owns the x86_64 execution path used by the project.
An independent experimental desktop operating system built from scratch — not a Linux distribution, not a BSD userland and not a wrapper around another kernel. BoringOS is its own kernel, its own native userspace and a deliberately small path toward a native desktop. boring is not a bug. it's the entire operating system now.
Current reference platform: QEMU x86_64 with Limine. Real hardware comes later, after the platform and storage layers are boring enough.
The project advances layer by layer. Each new capability keeps the previous QEMU acceptance gates green instead of replacing them with a new demo.
No Linux, BSD or Redox kernel underneath. BoringKernel owns the x86_64 execution path used by the project.
Native programs use a BoringOS-owned runtime: no host libc, no CRT, no dynamic linker and no PIE.
Userspace executes at CPL3 with separate address spaces, TSS.RSP0 and a checked native SYSCALL/SYSRETQ boundary.
The shell mutates the actual RAMFS namespace through userspace syscalls, process CWD and the generic VFS.
Normal boot, faults, Ring 3, syscalls, ELF, runtime, console, VFS, RAMFS, init and shell remain regression-tested.
The long path leads toward framebuffer/input, a small native display protocol, BoringWM, terminal clients and eventually real applications.
The milestone-17 shell test does not grep a fake listing. It injects commands over the serial console and checks later independent FS_READDIR output from the real RAMFS.
boring-init runs as PID 1 at CPL3. It enters the LAUNCH syscall, the kernel prepares an independent PID 2 address space, inherits the retained VFS CWD and transforms the active trusted syscall return frame into the shell handoff.
The public roadmap reflects repository state. “Planned” is not presented as implemented. Milestone 18 is currently in progress and still in closeout.
Memory, interrupts, scheduling, processes and Ring 3.
Load programs, talk to the kernel, mount a real namespace and reach the prompt.
Establish one exact interpretation of the on-disk format before kernel storage.
Only after the format tooling is solid does the kernel touch real persistent filesystem blocks.
Milestone 18 deliberately stops before mounting a filesystem. It defines and validates the exact byte format that later tooling and kernel code will share.
The codec uses explicit little-endian loads/stores rather than packed native C structs. The validator works on caller-provided byte buffers and checks layout, bitmap ownership, objects, extents, directories, UTF-8 names, references, cycles, leaks, overlaps and truncation.
Current M18 scope: codec + read-only structural validator only. No formatter CLI, no fsck CLI, no block driver and no kernel mount yet.
BoringOS is experimental, but the project avoids pretending that planned layers already exist.
BoringOS is an independent OS project. Linux, BSD and other kernels are not the final execution foundation.
BoringOS-owned components are primarily C, with small isolated x86_64 assembly at architecture boundaries.
Acceptance prefers observable runtime state: real privilege transitions, real user memory validation, real namespace mutations and independent later observations.
The current shell deliberately has no numeric file-descriptor table or stdin/stdout/stderr abstraction. Interfaces are added when the architecture actually needs them.
BoringFS gets an exact codec and corruption validator before formatter tools, block I/O or a kernel filesystem backend.
After persistent native storage, later work can move toward framebuffer/input, a compact display protocol, native BoringWM and real graphical clients.
Source, architecture notes, BoringFS format documentation and the authoritative milestone roadmap live in the public GitHub repository.