Small but mighty, 9Front's 'Humanbiologics' is here for the truly curious
Programmers developing what is essentially UNIX 2.0 are still busy bunnies
9Front, the main project continuing development of Plan 9 from Bell Labs, has emitted another new version, as enigmatic but significant as ever.
"Humanbiologics" is the latest release from the 9Front project, replacing last June's release, codenamed "Don't touch the artwork". The names, like the project's homepage, are intentionally enigmatic: this is not a welcoming project or one that encourages newbies. It's a little bit like the element of Persian politeness called taarof: when somebody offers something to someone, they expect to be refused, typically three times. Determination will be rewarded.
When the Reg FOSS desk took a look at 9Front about a year ago, we didn't realize that the project is quite so active, but this is the second release of 2023. Humanbiologics has a bunch of new features and improvements: improved Arm64 handling, support for the Raspberry Pi's Wi-Fi and I²C interfaces, transparent Ethernet/Wi-Fi switchover, more audio device drivers, improved BIOS and EFI bootloaders, and much more. But the features aren't the point.
9Front is by some margin the most active of several projects that continued Plan 9's development. There are others, but they are less active: 9legacy sees occasional activity, Jehanne OS seems not to have seen any development since leaving GitHub; and Harvey OS has been retired. The latter was replaced with r9, which is in active development, but is a different beast: it's an effort to re-implement Plan 9 in Rust.
Glenda, the Plan 9 bunny
It's worth knowing a bit of the history before you start to explore, because otherwise, the project's attitude seems very off-putting.
Plan 9 is what the original creators of Unix, Ken Thompson and the late Dennis Ritchie, did next – abetted by Golang creator Rob Pike. Plan 9 builds upon Unix and C, but extends both in new directions. While Unix was originally written in assembly language on a PDP-7 minicomputer with 8k of memory and a Graphic II display, it was later rewritten in C for the PDP-11 with a huge 12k of RAM. (It used half of it for a RAMdisk.)
Generally known as just Plan 9, the OS first escaped from Bell Labs in 1992. While Unix was built on 1960s minicomputers with plain-text terminals, Plan 9 was designed for networked graphical workstations, and both are deeply embedded into its design. Its developers invented Unix's "everything is a file" mantra, but this time around they really leaned into it. In Plan 9's filesystem, you'll find lots of plain text files that in Unix and Linux are either special in some way, or aren't files at all. Instead of cryptic text editors and keystrokes, its much simpler shell assumes you can copy and paste with your mouse. (Although with the best will in the world, it is abundantly cryptic in its own right.)
There's no choice of display server or window manager here, because the windowing interface, which is called rio, is a core part of the OS, and windows are part of the filesystem. Each window is a namespace, you can do input and output in the GUI by cat
ting text to and from files… And because the file system is network-transparent, the windowing system is too. While Wayland does less than X.org in some ways that are very important to some folks, 9front and Rio do much more, and even more importantly, they do it while being far smaller and simpler.
(Some Plan 9 technology was adapted back to Linux later, for instance the /proc
filesystem, but this is a bit like waterproofing a car and bolting a propeller on the back: it may not sink, but that doesn't make it a good boat.)
We suspect that part of the 9front community's stand-offish attitude results from the Unix world's reaction to its ideas. Plan 9 is quite mature: the OS is a contemporary of Linux and Windows NT. It became open source in 2000, went GPL in 2014, and got its own Foundation a couple of years ago.
In most important ways, it's a better Unix than Unix. It's much smaller: one of the 9Front team, Dave Woodman, told us:
The entire distribution including all sources, documents, local git repository and binaries is circa 530MB for amd64.
The small size and relative simplicity mean that it's quick to work on:
The kernel is 5,119,091 bytes - 5MB or so.
Rebuilding the kernel from scratch takes less than a minute. Incremental builds are obviously quicker. Rebuilding the entire system (all binaries) from scratch is 4 minutes or less.
The kernel has a total of 38 system calls. For comparison, as of 2017, Linux had about 341 of them, up from 335 in 2016. As an example, this year it got a new filesystem mount API.
Modern FOSS Unix, including Linux and the BSDs, are amazing achievements, which are hugely capable and upon which vast and powerful systems are built. Linux is not a student's toy OS any more: Much of the world runs on it. But it's not possible to just read the code of Linux to see how it works any more: the kernel is some thirty millions lines of code. This kind of thing is why Smalltalk co-creator Alan Kay called Linux "a budget of bad ideas" (although he later clarified his point): "You can spend your entire life dinking around with Linux, and never learn anything about computing."
Today, Linux is Unix. But the geniuses who designed Unix didn't stop there, and the relatively early implementations that got out into the world and inspired BSD and Linux were not the end of the line. Thompson and Ritchie kept on working, refining and polishing the concepts, simplifying and clarifying the implementations. Plan 9 was the first result that they published, which is why I call it "Unix 2.0". Plan 9 offered the world something better than Unix… but Unix was good enough. To the world of commercial Unix users, Plan 9 wasn't worth the disruption, so they just ignored it and continued with what worked acceptably.
The result is that now, we have OSes with one and a half billion lines of code in 34 languages. It is far too vast for any single human to understand given a lifetime. That's why we have a global $9 trillion industry trying to keep all this stuff working.
- Unix is dead. Long live Unix!
- OctoX is a radical Rust implementation of a very old OS for RISC-V
- Plan 9 goes open source
- Bell Labs transfers copyright of influential ‘Plan 9’ OS to new foundation
Being refused hasn't put some people off: development continues in 9Front. It's a modern OS for modern hardware. There are other tiny Unix systems out there if you want to study the code and learn how it works. 9Front is comparably small and simple to those early Unixes: the same programmer who in 1976 did the first ever Unix port [PDF], Richard Miller, also ported Plan 9 to the Raspberry Pi 36 years later. That is impressive dedication.
9Front can do far more than a teaching system such as, say, Xv6. It is more welcoming than Plan 9 used to be… But only to the right kind of person, a programmer who wants to learn. 9Front is not just another Linux distro. We think that's why they don't lay down a welcome mat. They have been spurned too many times before. ®
Bootnote
We call them busy bunnies as a nod to the project mascot, Glenda the Plan 9 Bunny. If Glenda reminds you of the Go Gopher, that is no coincidence. Renee French drew both.