The Raspberry Pi Pico is not compatible with Linux, but now supports another Unix-like operating system known as Fuzix. Alan Cox’s Fuzix is a Unix-like operating system for older devices with less performance capacity. David Given’s two recent posts have brought to the attention about the operating system’s compatibility with ESP8266 MCU and Raspberry Pi Pico.
Fuzix operating system has a kernel which is the central core of the system. Also, it has a C compiler and a set of core applications similar to the UNIX filesystem. The Raspberry Pi Pico port comes with many benefits like a well-structured Unix filesystem with its compatibility for SD cards through the SPI interface. Hence, supporting the Fuzix operating system. The full set of Fuzix binaries is available through a serial console to UART0.
The post on “Porting Fuzix to the ESP8266” addresses the MCU’s support for the Fuzix OS. The absence of a memory management unit on the ESP8266 limits the scope of swapping processes in and out, due to address relocation issues. Thus for operating Fuzix on the MCU only one process is taken care of at an instance. ESP8266 MCU’s quicker SD card fixes this issue by reducing the time and makes the overall system efficient to use. David Given says“ the boot time is four seconds. Running a program from the shell takes about 500ms, most of the time spent swapping out the current process.”
The option of using a quick SD card opened up the possibilities of porting Fuzix on Raspberry Pi Pico as well, as it does not have multitasking functionality and NAND flash support. As there is no support for flash memory hence memory is dependent on the SD card. Although the code is sufficient to work with, an improper file system can crash the dhara FTL library.
The Raspberry Pi Pico comes with dual-core Cortex M0+ working at a frequency up to 130MHz, 269kB of RAM; and two fast IO coprocessors. The Fuzix port for Pico only operates on a single core. Compared to the ESP8266, RP Pico is a bit slower, but there could be some improvements if overclocking is explored for the RP Pico. “Performance is still completely adequate for an interactive Unix.”
Some highlights of Fuzix on Raspberrry Pi Pico:
- It provides user binaries using up to 64kB of storage for code and data. This limit can be increased due to the availability of RAM
- The system supports up to 15 processes on the Raspberry Pi Pico
- It has a proper well-structured Unix filesystem.
- SD card support is used for both the filesystem and swap space
- It supports a serial console on UART0
According to David Given “the documentation of Raspberry Pi Pico is excellent, as is the C SDK. The SDK provides a set of libraries that are thin wrappers around the underlying hardware, making most features utter simplicity to use. Unlike the ESP8266 libraries, the Pico SDK is unopinionated. It doesn’t require you to use any of its features if you want to talk directly to the hardware.”
Saumitra Jagdale is a Backend Developer, Freelance Technical Author, Global AI Ambassador (SwissCognitive), Open-source Contributor in Python projects, Leader of Tensorflow Community India and Passionate AI/ML Enthusiast