I finally got my new computing stack completely off existing OS's. It now runs on bare x86 hardware without any intervening OS kernel.

I think of this state as two 'wormholes' away from our 'universe'. In the first wormhole, Mu uses a Unix/Mac computer with just a C++ compiler to bootstrap into a self-hosted computer running on just a Linux kernel and nothing else. In the second wormhole, Mu bootstraps from a machine running a Linux kernel to a tool that emits bootable disk images that run on bare metal.

Current caveats:

  • Only supports x86. (I may have chosen wrong here.)
  • No wifi, no networking, no file system, just sectors on a local disk.
  • No multitouch, no touchscreen, no mouse, no shift keys, just some rudimentary US keyboard support.
  • No graphics acceleration, no fonts, no way to print text, just individual pixels.
  • No virtual memory, no GC, no memory reclamation. (BUT the language is designed to be memory safe. No out of bounds reads, no use after free, no creating addresses.)

Start here: http://akkartik.github.io/mu/html/baremetal/ex2.mu.html