Made Visible #2: MesaOS, the Conventional One
572 words • 3 min read • Abstract

MesaOS is a 64-bit hybrid kernel: a physical frame allocator, a virtual memory manager, a higher-half direct map, a kernel heap, and ELF programs running in Ring 3 behind a real privilege boundary. What is drawn here is its memory layout — kernel sections, loaded modules, bootloader requests and sparse allocations, laid out as 512 KiB blobs with the empty space summarized rather than drawn.
| Resource | Link |
|---|---|
| MesaOS (upstream) | crackanimad0r/MesaOS |
| MesaOS (my fork) | softwarewrighter/MesaOS |
| How it works | Made Visible #1 |
| Comments | Discord |
MesaOS
MesaOS is the conventional one, and that is why it belongs here. It is somebody else’s work — I am running a fork of it. A 64-bit hybrid kernel with a physical frame allocator, a virtual memory manager, a higher-half direct map, a kernel heap, and ELF programs running in Ring 3 behind a real privilege boundary. Textbook architecture, the kind SWTOS deliberately is not.
Which makes it the useful second case. SWTOS has no MMU at all — addresses are addresses, and isolation is a discipline rather than a mechanism. MesaOS has exactly the machinery SWTOS does without: frames, mappings, and a distinction between what is physically there and what a process is allowed to see. The same picture has to mean something in both.
A note on the name. MesaOS is what the upstream project is called, and the name is well and truly spoken for: mesaos.com belongs to an active restaurant point-of-sale product, and it is in use elsewhere besides. So neither the upstream project nor my fork is necessarily keeping it. If you go searching for MesaOS and find yourself reading about kitchen printers, you have not taken a wrong turn — and if either repository has been renamed by the time you read this, that is why.
Nothing in the visualizer changed
That is the part worth sitting with. The renderer has no idea what a page table is. It received the same columnar description any producer emits — spaces, region kinds, owners, offsets, lengths — and MesaOS filled it with its own vocabulary: kernel sections, modules, bootloader requests, sparse blobs. Part 1 has the format and the reasoning behind it.
The region names are data. limine_requests means nothing to the visualizer, and it does not need to — it needs a color for it, and the palette covers the union of what the producers emit.
Part 2 of the Made Visible series. View all parts | Next: Part 3 →
Comments or questions? SW Lab Discord or YouTube @SoftwareWrighter.