Patrick Lidstone
Self-hosted

Operating System Experiments

Five projects that turned out to be one. A language and a bare-metal kernel to run it; a Psion Series 5 rebuilt natively on a microcontroller; a browser engine written from scratch on the same toolkit; and a desktop operating system assembled out of all three. They were not planned as a set, and the connections between them were found rather than designed.

  • FlowMachine

    A bare-metal x86-64 kernel in Rust. Ring 3 with W^X, SMP, virtio, smoltcp at CPL 3, TLS both ways, and a durable record store. It runs FlowBASIC p-code as fault-isolated jobs, and doubles as the cloud backend for the Psion below, on the old BlackBerry model.

  • FlowBASIC

    The language it runs. BASIC-lineage, for back-office automation: exact numbers and no floats anywhere, immutable values with rebindable names, durable records, and jobs that dehydrate at a wait and survive a reboot. 238 of 241 conformance tests pass on the path that matters.

  • What would a modern Psion Series 5 look like?

    Colour, a real network and a telephone link, on an ESP32-S3. Not an emulator - the EPOC and EIKON layers reimplemented natively, closely enough that application source from a 1997 machine ports across mechanically. Nineteen applications, including OPL.

  • A browser for the ESP32-S3

    HTML, CSS, layout, paint and a JavaScript engine, written from scratch on the Psion toolkit above. Not a WebKit port, for reasons set out at length. It reads real pages off the real web on a microcontroller.

  • Path OS

    A desktop operating system in Rust, built from the other three. The semantic tree is the interface rather than a description of it, so the machine knows what every pixel means without anyone having to be conscientious about it.