I’ve finally finished (or at least, made feature complete) my Raspberry Pi Pico Fuzix Port. This is a proper V7 Unix clone which will run on the Raspberry Pi Foundation’s $4 microcontroller board. This now requires no extra hardware to run! You can use it with a UART or an SD card. Just plug your Pico in via USB, flash it, and it’ll work.

This has a tonne of new features compared to the previous version:

  • 160kB of user RAM, enough for four or five processes in-memory with proper (cooperative) multitasking
  • 1.2MB root filesystem on the internal flash — no SD card necessary
  • optional swap, if you want it
  • USB CDC serial port support, so you don’t need a UART adapter any more

The RP2040 chip that the Pico is based around doesn’t have an MMU, which means that doing a context switch requires physically copying the processes about in memory. That’s expensive enough that preemptive multitasking is a non-starter. However, Fuzix does quite well with cooperative multitasking, and as a result the system is perfectly usable; pipes work fine.

There are almost certainly still bugs, but there shouldn’t be any remaining major features to implement, so I’m going to take a break from this for a while while I get everything upstreamed into the main Fuzix distribution.

To install, either build from source from either the main FUZIX repository once it’s been upstreamed, or from my own fork until then. See the main build and usage instructions.

If you just want a binary to flash and try for yourself, here’s one:

Raspberry Pi Pico Fuzix binaries 358 kB

Poorly put-together, bugridden and unsupported Fuzix binaries for the Raspberry Pi Pico. To install, flash both files to the Pico in the normal way, and it'll show up as a USB serial device. Connect to that, press RETURN a few times, and you should be at the login prompt.