Patrick Lidstone
Self-hosted

Operating System Experiments

Development log

Working notes from the operating system projects - what got built, what broke, and what turned out to be harder than it looked. Mostly Path OS bring-up on real hardware at the moment.

The articles in this section describe where each project has reached. This is the running commentary underneath them.

  1. The build that hung every core, and the gate that does not catch it A kernel went onto the laptop, hung every core before the network came up and left nothing to read. Getting it back took a USB stick. The gate built afterwards costs eighty seconds and boots the bad build quite happily.
  2. What the scheduler actually costs A 999-in-a-thousand lock contention figure looks damning and is not a diagnosis. Building the instruments first found that seven idle cores were queueing for a lock in order to be told there was no work.
  3. The screen over the wire, compressed A screenshot cannot answer what happens when you click there. The kernel now serves RFB, which meant teaching TCP to listen for the first time, and then making a fourteen-megabyte frame cheap enough to send.
  4. Photos, Agenda and an inbox on the toolkit's grid A photo album, a calendar reading Fastmail over JMAP, and Mail's inbox rebuilt on the shared grid. All three host-verified only, which is the caveat that matters and applies to every one of them.
  5. Fifty-two seconds to seventy-five milliseconds Twelve minutes of silence on the laptop between a module arriving and anything happening. Twelve minutes is not a slow machine, it is a wrong algorithm, and the heap was a single free list walked for every allocation.
  6. React itself as the test suite Eleven scenarios load the real React 18, 19 and React Router into the engine and ask what a page asks. The development builds say what went wrong, which turns React's own assertions into a test suite for somebody else's engine.
  7. A login page as a conformance suite Six faults between the engine and chatgpt's sign-in page: a ratio written as a division, 1,063 mixed colours, absolutes placed against the wrong ancestor, and six rounds of correct work on markup I had imagined rather than read.
  8. An out-of-memory abort that looked like a network hang Installing a build over the wire wedged about half the time. Two mechanisms fitted the symptom; it was the one that left the machine with no boot image for half an hour, and an instrument that refused to describe it.
  9. A picture of the screen, and the first modern page to render Every rendering fault was being argued about at one remove from the evidence, because the laptop has no serial port and no remote display. The first screenshot answered more in one look than the whole session had by reasoning.
  10. Three keys, because a wake word is not reliable enough Dictating prose, spelling a symbol and telling the machine to move the caret are three different jobs that are hard to tell apart in real time. Each one gets its own key, and the third one gets a recogniser of its own.