David Given Ports FuzixOS, an Ultra-Tiny Interactive UNIX, to the Raspberry Pi Pico

Sitting somewhere between UNIX System 3 and System 5, FuzixOS is a tiny operating system — and perfect for the Pico.

Gareth Halfacree
3 years agoRetro Tech

Developer David Given has ported the FuzixOS ultra-compact operating system, built from the UZI project, to the Raspberry Pi Pico — and has released both the source code and a precompiled binary to flash for those who fancy experimenting with it.

The Raspberry Pi Pico, launched late last month, is the first microcontroller from Raspberry Pi — and, as such, it doesn't run the Linux-based Raspberry Pi OS of its single-board computer stablemates. With just 264kB of memory and 2MB of flash, it would take a very compact operating system indeed — and that's exactly what FuzixOS, built from the UZI project and offering something akin to UNIX System 3-through-5 functionality, offers.

"The Pico is an interesting device: Two Cortex M0+ cores running at approximately 130MHz, overclockable up to lots; 2MB of NAND flash [externally]; [264kB] of RAM; and a large collection of interesting hardware, including two high-speed IO coprocessors which allow you to do some really interesting things," Given writes. "The Fuzix port only uses one core but it runs really nicely on it, [with] RAM to spare."

"Compared to the ESP8266 it seems a little slower, but I haven’t touched the overclocking settings yet. Performance is still completely adequate for an interactive Unix. Development was done using the Pico port of OpenOCD. I don’t have a JTAG debugger which will work on the Pico, but that’s fine, because there’s a turnkey image which will let you use a Pico as a JTAG debugger for a Pico! Which is why I bought two. And the debugger was written with the SDK, too."

Given's FuzixOS port supports user binaries of up to 64kB of code and data each, up to 15 processes, a true UNIX filesystem, SD Card support as file storage and swap space, brings up a serial console on UART0, and includes the full set of core Fuzix binaries, including fsck, the Bourne shell, a vi clone, and "some simple games." What doesn't work: NAND flash support is written, but buggy, and multitasking only runs the most recent process.

Given's full write-up is available on the cowlark.com website, along with a binary download to flash on your own Raspberry Pi Pico; the source code, meanwhile, is available on GitHub under the GNU General Public License 2.0 pending its acceptance into the upstream FuzixOS project.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles