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.
If you just want a binary to flash and try for yourself, here’s one: