First time booting Plan 9 on a Raspberry Pi 1
plan9 raspberry-pi osIntroduction
The Plan9 is an operating system developed at Bell Labs in the late 1980s. It was developed on ideas of UNIX, but with a more extreme approach (when you say “everything is a file”, you really mean it in Plan9). It was open-sourced in 2010s and is now maintained by the Plan9 Foundation. The OS is known for its simplicity and its unique approach to networking and file systems. And also how not to love an OS that has a mascot like Glenda the bunny?

I’ve been wanting to try out Plan9 for a while now. I’ve heard about it from the low-power edge-computing scene, and also after years of distro-hopping on Linux, I wanted to try something different. I’ve tried to boot it on an old phone but without success, but recently I’ve got my hands on a Raspberry Pi 1 and I thought it would be a good platform to try it out.
Installation
The mainline version of Plan9 was discontinued in 2014, but there are still some community-maintained versions. I’ve decided to go with the 9front version, which is a fork of the last mainline version. 9front provide a pre-configured image for the Raspberry Pi 1 (for example plan9.ini
is pointing to Raspberry-native cmdline.txt
), so I’ve downloaded it and flashed it to an SD card using Raspberry Pi Imager.
Booting
I’ve connected the Raspberry Pi to a monitor and a keyboard and powered it on. Raspberry booted to the Plan9 console with prompt for boot options. I’ve selected the default option and the system booted to the Plan9 GUI - Rio.
The Plan9 OS experience
After booting I’ve been greeted with the GUI that is as simple as it can be: a grey background and a mouse pointer (perfect UI for average Arch user). All the actions are done by second and third mouse buttons (right and middle). The system is very snappy and responsive on Raspberry Pi 1 (compared to the Raspberry Pi OS).

The most interesting thing for me was the file system. That is a more extreme version of the UNIX philosophy. The file system is a single tree, and everything is a file. When you need to take a screenshot, you just look at the screen buffer file and pipe it to a PNG converter: cat /dev/screen | topng > screenshot.png
.
The other thing is the size of the system. The whole system is about 50MB, and it includes a web browser, a text editor, and a C compiler (even Arch users would be impressed: fully-fledged browser abaco is smaller than 0.5MB in size).
Conclusion
I’ve been really impressed by the Plan9 OS. It is very lightweight and responsive on the Raspberry Pi 1. This system could be used as a base for a Python-based server or other lightweight tasks. I’ve seen some number of Python ports for Plan9 floating around, so I might try to run some Python code on it.