Flinstone Kernel
A portable kernel built from first principles in C and Assembly. Hardware abstraction, filesystems, process control, and device I/O sit behind versioned subsystem contracts so a release can move without silently breaking the last one.
- 400
- Commits on the public kernel repo
- ~70
- Versioned subsystem contracts kept backward compatible
- 5.2.0
- Current release, on the 5.x contract train
- 13
- Core releases since 4.0.0, each with migration notes
Systems programming from the metal up
A C/Assembly kernel with roughly 70 versioned subsystem contracts, a first-principles TCP/IP and Wi-Fi stack, and 13 backward-compatible releases since 4.0.0.
Why it exists
Flinstone began as a disk-operations exercise for a school assignment — a simple drive simulator meant to run against real hardware rather than an emulator. It was revisited later as a way to learn computer architecture, Linux internals, and low-level systems in support of infrastructure work, which is what turned that exercise into an actual kernel: hardware abstraction, a scheduler, and a network stack built from first principles, one subsystem at a time.
A few terms this page uses, for anyone who hasn't worked at this level before: a kernel is the core program an operating system is built around — it decides what runs, when, and what each program is allowed to touch. A driver is the small piece of software that lets the kernel talk to one specific piece of hardware — a disk, a keyboard, a network card — so the rest of the system never has to know that hardware's specifics. A scheduler decides which program gets the processor next. A contract, below, just means a written, versioned description of what one piece of the kernel promises to do, so a later version can change what's inside without breaking whatever already depends on it.
Run the kernel lab
The freestanding x86 kernel lab is published from Bailey-Forbes-Flinstone to GitHub Pages and boots below as a guest window.
Known limitation. The lab needs cross-origin isolation, which some browsers only grant after the page has been visited on its own origin. If the window above reports that it could not attach, open the lab top-level once and come back — the window has a reload button for exactly this.
How it is served. The lab is published over HTTPS and
boots from a Cloudflare Worker on first visit; visitors share a chat room backed by a
Cloudflare Durable Object, and the guest falls back to a same-origin BroadcastChannel
if that hub is unreachable. Guest DNS resolves through same-origin /lab-dns
first and only then Cloudflare DoH.
Read the technical write-up
Running it
The kernel builds and runs on a Linux host as well as in the browser lab.
make all produces BPForbes_Flinstone_Shell; the session below
is that binary reporting its version and dumping the contract bundle — the versioned
P0–P9 surfaces this page describes, with their revisions.
$ make all && ./BPForbes_Flinstone_Shell
user_db: refusing known default passwords; set FL_USERS_LAB_DEFAULTS=1 for lab seeds
Loaded disk (FAT32 image FLINT.DAT): drive.img | Clusters: 32 | Cluster Size: 512 bytes
[drivers] block: REAL | kbd: REAL | display: REAL | timer: REAL | pic: REAL | pci: REAL
[INTERACTIVE MODE] Type 'exit' to leave interactive mode.
shell> version
Shell version: 4.5.4
shell> contracts
contracts: bundle rev 9, P0 foundations rev 5
P3 networking: umbrella rev 18, wire rev 4 (extends P0-P1; P2-3 authz ops only)
P4 drivers: umbrella rev 4 (extends P0-P1; no P3 include)
P8 virtualization: umbrella rev 2 (extends P0 only; no P4 include)
browser artifact: interchange rev 4, JSON schema 2, marker FLINTSTONE_KERNEL_BOOT_OK
P9 hardening: umbrella rev 2 (extends P0 only; no P8 include)
fl_result_t: OK=0 ERR=-1 INVAL=-22 NOSYS=-38
surfaces (6):
0 DRIVER_OPS 1 NETDEV 2 LOG_SINK
3 AUTHZ 4 FS_JAIL 5 BROWSER_ARTIFACT
shell authz: FL_PRINCIPAL=guest denies destructive builtins and
foreign execvp before dispatch
Real output, captured 16 Sep 2026 from a host build at commit da46784.
The surface list is reflowed onto two lines to fit; nothing else is edited.
What it is
The public kernel repo opens 28 May 2025 as a C filesystem and shell. The resume dates
the project to 2023. The C line grew a versioning machine:
version/entries, locked files, and GM=1 promotes onto main.
About 70 versioned contracts cover networking, storage, drivers, diagnostics, and identity. Backward compatibility is explicit — metadata and migration notes, not “we’ll fix the callers.” The 4.x train on that policy runs 4.0.0, 4.0.1, 4.1.x, 4.2.0, 4.3.0, 4.4.0 and 4.5.0 through 4.5.4, after a 2.x/3.x train that installed the versioning itself.
How the system grew
Hosted filesystem, then a machine. February 2026 turns the shell into an OS sketch: ASM memory primitives, Facade/Strategy/Command file management, port I/O drivers, a thread-safe allocator, an embedded x86 VM (disk, timer, paging, snapshots), and an MLQ scheduler with real vs stub driver capabilities on x86-64 and AArch64.
Contracts before more surface. 3.3.0 (12 May) splits audit from command history and documents fs_jail — the boundary that confines a session, like the one running in the browser lab above, to the directory tree it was given, the same way a shipping container keeps its contents from reaching anything outside the box. 4.0.0 (18 May) is the major bump: inheritable P0–P9 bundles (foundations through hardening) — the versioned contracts described above, one per subsystem, numbered so a later one can build on an earlier one without redefining it. 4.1.0 wires identity — SQLite users, PBKDF2, login/su/sudo, elevation. 4.1.1 is a 50-issue hardening sweep. 4.2.0 (19 Jun) is the networking milestone, and the September 4.3–4.5 train takes it to production Wi-Fi, a browser-kernel contract, and a freestanding boot path.
Networking from the metal up. The 4.2.0 .ver file lists
netdev, software loopback, Linux TAP, ARP, IPv4 LPM, ICMP, UDP, TCP shims, DNS,
DHCPv4, IPv6/NDP, a Wi-Fi station contract, a multi-device chat/file server, and WSL
portproxy hosting. Later PRs add 802.11ax, home-SSID join, macvlan LAN identity, and
Dragonfly SAE for WPA3.
Where that leaves it. Thirteen core releases since 4.0.0, each shipping with migration notes rather than a break, and a kernel that now speaks TCP/IP and Wi-Fi it implemented itself, down to the driver.
Turning outward. The two most recent releases point away from the hardware rather than deeper into it. 5.0.0 adds a project-metadata contract, so this page reads Flinstone's own version and release history directly from the repository instead of a person copying numbers over by hand. 5.1.0 adds a notify-on-publish workflow, so a shipped change reaches this page the same day rather than waiting on the next scheduled check.
Named releases
From version/entries on Bailey-Forbes-Flinstone, GM=1 promotes only. Tap a release for the full note.
Bailey-Forbes-Flinstone on GitHub — the full commit history and contract files.