ELKS and Fuzix: Linux – and Unix – writ very, very small
That is not dead which can eternal lie. Iä! Iä! IA16!
Version 0.7.0 of ELKS OS, and 0.4.0 of its creator's next baby, Fuzix, are out – if you like your 'nix systems as tiny as can be.
Neither of these OSes is a Linux distro – or even a form of Linux at all – but ELKS is related to the Linux kernel. ELKS is shorthand for the Embedded Linux Kernel Subset – it's a minimal Linux-like kernel which doesn't require a memory management unit.
Linux was originally written for Intel's 32-bit 80386 processor family, which typically sported a page-based MMU among other features. Because ELKS doesn't need that level of memory management, it's able to run on the two even older families of x86 chip that predated x86-32: the 8086 and the 80286. In its early days – the project started way back in 1995 – ELKS was called Linux-8086.
ELKS was started by core Linux kernel hacker Alan Cox, who in the early days of Linux was often called Linus Torvalds's second in command. He quit his Linux role a decade ago now – long after he had largely stopped working on ELKS.
This is one of the things that makes the project interesting for us. From the Internet Archive copy of the original project page, you can see significant progress early on. It later moved home, and on its Sourceforge page you can see that some 15 years later, it had still only reached version 0.2.0.
Now it's hosted on Microsoft's GitHub, and its release history shows a change of pace in the past few years. After current lead developer Gregory Haerr took over, there have been four releases since 2020, and it's up to 0.7.0.
ELKS running from hard disk, using a massive 2¼MB of a 32MB drive image.
Back in July, we wrote about several modern descendants of UNIX version 6 and 7, and ELKS is even smaller – it can fit onto and boot from a 360KB floppy disk. We concede we can't envision a production role for ELKS – but then again, as we covered recently, people are making brand new 8088 PCs this century. ELKS 0.7.0 adds support for the NuXT motherboard we mentioned in that story, as well as the very popular 3Com Etherlink III ISA network card. As a tiny but functional OS it's a great way to learn about operating system design.
- OctoX is a radical Rust implementation of a very old OS for RISC-V
- These days you can teach old tech a bunch of new tricks
- Want to live dangerously? Try running Windows XP in 2023
- Slackware wasn't the first Linux distro, but it's the oldest still alive and kicking
If you fancy playing with ELKS to see what it can do, there are various ready-to-run images to download – for anything from original 40-track 5¼ inch floppies to preinstalled hard disk images for VMs. There's also a GitHub wiki with documentation. If setting up a VM seems like too much work, you can even run an emulator in your browser.
ELKS can do graphics, as well. This is the 'nxworld' app in glorious VGA resolution
ELKS isn't the only tiny Unix-like OS for very low-end systems in active development. Just a month before ELKS 0.7.0, the project that Alan Cox moved on to next – Fuzix – also updated, to version 0.4.0.
Fuzix combines several different forks that enhanced an older Unix-like OS for Z80 machines called Uzi, originally by Doug Braun back in the 1980s. An older snapshot of the code, together with a good potted history, is in another GitHub repo.
These projects are both great illustrations of the power of free software and open source. Given that Alan Cox himself declared ELKS basically dead at the start of 2001, the fact that it sprang back to life some 20 years later is heart-warming. Fuzix, meanwhile, is based on code nearly twice that old.
Lots of impressive, valuable software has been lost to history, though some remarkable projects, such as Perihelion's Helios cluster OS, are sitting there on GitHub waiting for someone to wake them from their slumber.
The educational value of this kind of project is also important. In a world of grotesque software bloat, when a tool to write a disk image to USB can fill 225MB – and your vulture is writing this piece in a text editor that, while a pleasure to use, takes a remarkable 400MB of disk space – it's refreshing to encounter entire operating systems that need only one-thousandth as much space. ®