News: 1696589232

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

ELKS and Fuzix: Linux – and Unix – writ very, very small

(2023/10/06)


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 [1]Embedded Linux Kernel Subset – it's a minimal Linux-like kernel which doesn't require a [2]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 [3]Linux-8086 .

[4]

ELKS was started by core Linux kernel hacker Alan Cox, who in the early days of Linux was often called Linus Torvalds's [5]second in command . He [6]quit his Linux role a decade ago now – long after he had largely stopped working on ELKS.

[7]

[8]

This is one of the things that makes the project interesting for us. From the [9]Internet Archive copy of the original project page, you can see significant progress early on. It later moved home, and on its [10]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 [11]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 [12]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, [13]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.

[14]OctoX is a radical Rust implementation of a very old OS for RISC-V

[15]These days you can teach old tech a bunch of new tricks

[16]Want to live dangerously? Try running Windows XP in 2023

[17]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 [18]GitHub wiki with documentation. If setting up a VM seems like too much work, you can even [19]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 – [20]Fuzix – also updated, to version 0.4.0.

We've [21]mentioned Fuzix on El Reg before, as a Unix-like OS for the Raspberry Pi Pico. But it can also run on even smaller systems: CP/M-class hardware such as the [22]RC2014 or Amstrad NC200 .

[23]

Fuzix combines several different forks that enhanced an older Unix-like OS for Z80 machines called [24]Uzi , originally by [25]Doug Braun back in the 1980s. An older snapshot of the code, together with a good potted history, is in [26]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 [27]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 [28]Perihelion's Helios cluster OS , are sitting there on GitHub waiting for someone to wake them from their slumber.

[29]

The educational value of this kind of project is also important. In a world of grotesque software bloat, when a [30]tool to write a disk image to USB can fill 225MB – and your vulture is writing this piece in a text editor that, [31]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. ®

Get our [32]Tech Resources



[1] https://github.com/ghaerr/elks

[2] https://www.theregister.com/2014/08/15/feature_hack_proof_computing_and_the_demise_of_security/

[3] https://lwn.net/2002/0404/a/elks.php3

[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2ZSAvKQiCY3jXn@ldYbO8LgAAAM4&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[5] https://www.theregister.com/2001/11/07/linux_security_selfcensorship_ominous/

[6] https://www.theregister.com/2013/01/24/alan_cox_quits_linux_development/

[7] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZSAvKQiCY3jXn@ldYbO8LgAAAM4&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[8] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZSAvKQiCY3jXn@ldYbO8LgAAAM4&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[9] https://web.archive.org/web/20010924210617/http://www.elks.ecs.soton.ac.uk/

[10] https://elks.sourceforge.net/

[11] https://github.com/ghaerr/elks/releases

[12] https://www.theregister.com/2023/07/28/octox_v6_unix_in_rust/

[13] https://www.theregister.com/2023/09/14/pc_xt_with_hdmi/

[14] https://www.theregister.com/2023/07/28/octox_v6_unix_in_rust/

[15] https://www.theregister.com/2023/09/14/pc_xt_with_hdmi/

[16] https://www.theregister.com/2023/07/24/dangerous_pleasures_win_xp_in_23/

[17] https://www.theregister.com/2023/07/20/slackware_turns_30/

[18] https://github.com/ghaerr/elks/wiki

[19] https://copy.sh/v86/?profile=elks

[20] https://www.fuzix.org/

[21] https://www.theregister.com/2021/02/24/pi_fusix/

[22] https://www.theregister.com/2022/07/15/cpm_open_source/

[23] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZSAvKQiCY3jXn@ldYbO8LgAAAM4&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[24] http://www.cpmclub.de/zeitung/seite5.htm

[25] https://www.dougbraun.com/uzi.html

[26] https://github.com/chettrick/uzics

[27] https://web.archive.org/web/20010920200533/http://sourceforge.net/forum/forum.php?forum_id=56220

[28] https://www.theregister.com/2021/12/06/heliosng/

[29] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/oses&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZSAvKQiCY3jXn@ldYbO8LgAAAM4&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[30] https://etcher.balena.io/

[31] https://www.theregister.com/2022/08/24/panwriter/

[32] https://whitepapers.theregister.com/



TheMaskedMan

"a tool to write a disk image to USB can fill 225MB..."

::sigh:: And I remember complaining that a Delphi 5 executable was way too big at about 500kb. I wonder if I still have my D5 installation CD. And whether it would run on Windows 10 if I do...

Lunatic Looking For Asylum

And having to write overlays to keep the code under 64kb.

Andy The Hat

even 10x that would be enough for anybody ...

Uncle Slacky

I didn't know how to do that in Turbo Pascal 5 (no manuals!) so I squeezed a program into 64k by removing all unnecessary spaces and reducing all variables to 1 or 2 characters. It worked, but it was unmaintainable (I didn't care as it was only a summer job).

DiskDestroyer executable size?

Uncle Slacky

How big is dd?

Fakir, n:
A psychologist whose charismatic data have inspired almost
religious devotion in his followers, even though the sources
seem to have shinnied up a rope and vanished.