The Latest Linux – On A Floppy In A 486!

If you have ever studied the early history  of the GNU/Linux operating system in its many forms, you’ll have read that [Linus Torvalds] developed his first kernel for his Intel 386-based computer. Though the 386 architecture is now ancient, the current Linux kernel can still be compiled for it and many distributions still maintain an i386 branch to provide broad compatibility for later machines able to run i386 code. But what if you were to take a current Linux kernel and stick it on a floppy in a machine from the early 1990s, with meagre RAM? [Fozztex] did just that, with not a 386 but a 486, sporting what would have been an impressive for the time 36MB of RAM. You can watch it in action in the video below the break.

A recent Linux kernel is rarely if ever compiled for something as small as a floppy disk, so getting one to boot from such ancient media appeared to be a challenge. It was possible though with the tinyconfig make option, and after finding a small enough root filesystem courtesy of Aboriginal Linux, a bootable floppy was created. It’s not entirely useful and its sole purpose was to see whether Linux could see a large hard drive on the 486, but it’s still a version 5.6 Linux kernel booting from floppy on an ancient computer. Never complain that your Raspberry Pi Zero is slow again, we’ve come a long way!

Header image — Afrank99 / CC BY-SA 2.0

94 thoughts on “The Latest Linux – On A Floppy In A 486!

  1. I remember booting my Linux box from a floppy for some reason for a while back in the 90s. I probably still have those old linux kernel floppies around actually. But 2.x kernels were a lot smaller, and had to support a lot less, back then.

    Also obligatory QNX Floppy Operating System Comment.

        1. I haven’t used it since 2012, so I couldn’t say. Upgraded to DD-WRT not too long after and never looked back..

          It sure was useful back then though when I had plenty of old computers lying around collecting dust.

    1. Well boot from CD or USB was not well supported until into the 2000s, so if you were doing an install or you messed up your linux partition, or something broke LILO then you needed to boot off floppy to install or rescue.

      Though there was also loadlin which you could do from a DOS session, but not sure that showed up until later 90s, didn’t help you if linux was not installed or needed more than the boot sector fixing.

    2. Yeah I had fun with toms rootboot and Damn Small Linux on my old boxxen (now ancient yikes) back in the day. Glad to see someone keeping the spirit alive.

  2. Hello
    Bravo,
    and
    Q : can you get REAL TIME features with low power mode, with USB 2 HS support ? to support dedicated dongle…

    I’m looking forward to test such an small OS with USB, please, let me know…
    Bravo
    Jp

        1. Hello,

          Hardware with USB 2 HS is available now, so getting Real-time Linux with USB 2 HS is ok on later hardware..
          Even Type C is now on notebook/smartphone..

          Small OS realtime and power management/reduction with USB 2 HS support for one or two Wifi/bluetooth/pendrive dongle maximum, not all of them !

          Looking for this and test..
          Br
          Jp

  3. I remember my first experience around linux : I was looking for a book aboud Unix I found one with “floppy unix offered” or similar … so I tested it … it was slakware 1.x or maybe 2.x already ? … whatever… it was my first gnu-linux experience it was 1994 autumn

    1. I remember downloading SLS off a BBS in ’93 or so. It was something like 30 floppies for the full distro. I dedicated 60MB of my 386’s 120MB HDD to it. It was my second experience with UNIX, after a dial-up shell account I had on the still-running public UNIX sdf.org (then sdf.lonestar.org).

      It’s been all downhill since.

  4. In those days it was common to compile a compressed kernel and write it out raw to a floppy device.
    There is even to this day a boot flag to prep a ram disk, pause, and prompt to change the floppy to one with a root file system. The good ole “boot and root install”

    Also re “If you have ever studied the early history” – we’re not that old yet!

    1. I too am someone who was around while that early history was being enacted :)
      But I spent all my time buried in analogue stuff, and trying to make the perfect hi-fi on a student budget.

  5. “Never complain that your Raspberry Pi Zero is slow again, we’ve come a long way!”

    …I mean, maybe time has distorted my perspective but I feel like we spend just as much time waiting on our computers now as we did back then. Modern computers are magnitudes faster hardware-wise than their counterparts of yesteryear, but today’s software is also infinitely more bloated than that of days past.

    Of course this is coming from a primarily Windows user whose experience with Linux consists of an installation of Raspbian on a RasPi.

    1. IDK, I’ve recently been having to do some stuff in XP, and on a box which was upper end of hardware for XP era, presler P4 3.2 Ghz, SATA HDD, 2GB DDR2, it is hair pullingly slow to boot, and annoyingly thrashy when you’re there.

      1. The P4 3.2 GHz was not upper end. It was dog slow despite its high clock rate. That was when 1.8 – 2.0 GHz AMDs would run circles around the P4 Intel processors, and why Intel had to make the Core series.

        You had P4 CPUs in cheap office machines and supermarket junk.

    2. Agreed. I have an almost two decade old HP notebook that runs a 10 year old linux distro, and it still go as fast as a new i7 with windows 10 (for tasks like office and internet). Of course, the old HP will give up its soul if you try CPU hungry programs, as it lacks power and memory.

      But I also believe that we are somewhat walking backwards with the “cpu/memory availability” and speeds. The more available power, the more garbage/bloat. It’s like programmers doesn’t have any concern anymore with hardware limitations, and the whole experience gets as slow as their ancient counterparts.

      I remember turning a tv on, it works instantly; push a VHS tape into the videocassete, instant play; turn on the Atari 2600 with the River Raid cartridge and instantly smashing a bridge.

      Now I turn on the smartv, and wait for WebOS loading; turn on the BluRay, and wait for it loading (just to wait a little more when the disc is read); turn on the XBox, and wait loading, then wait login, then wait game loading, then wait an update download, then wait the update installation, then it reboots…

      The blazing fast new processors makes us wait more.

    3. When I was at the Army Comp Sci School (1991/2) I was learning to sys admin on a tactical mainframe (dual Motorola 68030’s) and with it running AT&T Unix SVR4, you could get it to boot in 30 minutes. If you held its hand and coddled it.

    4. PCIe SSDs are a game changer, and hardware in general is ridiculously more capable than in the early Linux days. That said, waiting for tasks to complete is certainly not a thing of the past! It’s the software variant of Parkinson’s Law in action, software expands to consume available resources.

      I downloaded a very early Slackware release at work so I could install it on my PC at home. It occupied 16 2.5″ floppies, installation was tedious! There was also the trial-and-error joy of fiddling with video timing to get X-Windows working. It really makes me appreciate the modern Linux installation process.

    5. Oh, I’ll complain about the raspberry pi zero. Architectures older than that 2.2 kernel’s EOL. And hoo.. is that I/O sloooow.

      You can still make 8086 chips. Built yesterday doesn’t make them quick.

    6. I sort of agree with you, sort of not. Productivity software and OS boot times speed is AMAZING compared to what we used back in the day (SSDs are amazing) but games etc are just as slow to load now as they were back in the day etc.

      As for the real issue, I believe the internet is even slower than it used to be with no real benefit. It is a breath of fresh air going to a pure HTML/CSS website as opposed to all of the super slow JavaScript running on websites today. Common sites literally cannot be loaded at all in some areas due to the massive latency problems, while a pure html site would work eventually. The modern frameworks work poorly with accessibility options like screen readers, so it’s not just a speed inconvenience

      And since most computing has moved to the web….. “computers” feel slow today.

    7. Honestly, booting Linux off an SD card from even a Pi Zero is faster than booting Linux off of a 486 with a hard disk from the era, nevermind booting from floppy!

      Ack! I’m old enough to remember booting a Mac Plus from a floppy. An entire graphic OS booted from an 800KB, 3.5″ floppy disk.

    8. I once had a PC with some flavor of Windows 95 on it that was fully booted and ready to use in 45 seconds. Single core CPU, well under 1 Ghz,, RAM measured in megabytes, same for the hard drive.

      I’ve not timed how much slower my current 6 core, 3.5 Ghz box takes to boot Windows 10 x64 build 2004. I doubt it gets through the POST in 45 seconds.

      1. Wow, somethings up with that system. My three year old Ubuntu install laptop boots in about 6 seconds. Faster than CUPS can spin up.

        Windows on there’s more like 10 seconds. Plus mandatory updates. Then the mandatory Edge introduction. Then a wait as it steals data from firefox.

  6. Well, once you’d install it on the hard drive it wasn’t that bad loading the kernel and initrd. Back then, there wasn’t much daemons to load, most devices were supported through modules and userland utilities for them. Most the load time was starting X and a DE (remember KDE 1.2 and Gnome 0.9). You could even compile the framebuffer support in your kernel to get the pinguin logo when booting, and you could play some games in console (fbdoom anyone?).

  7. 1992-3
    I remember downloading Slackware or similar from wuarchive.wustl.edu or decwrl.dec.com as ~ 13 floppy images via ftp. You needed a boot floppy as well. Boot the boot floppy, then feed in the 13 floppies and create a system boot floppy.

    Yeah, it was a process. I was so happy when we started getting CDs from Walnut Creek. Boot the boot floppy, then point to the CD for the rest of the install. Still have a number of those CDs kicking around somewhere.

    The payoff? I had a 486 running Win3.1 at work. Brought in a second HDD, rigged the system to dual boot and ran Linux as an X-terminal off our one UNIX system. Even over 10BASE-T it was faster (and, of course, more reliable) than running the programs under Win3.1 That was what sold me on Linux — that a half-assed copy of UNIX by a bunch of students and hackers performed better than Microsoft’s flagship product. Surprisingly, to me, at least, it still does. Which is why it’s what I use at home.

    1. I remember using Linux as an Xterm for a headless SPARC 1 and SUN 3/80. :)
      Slackware was also the reason I bought my first 1x CDROM drive, had a shuttle and needed to buy a scsi card for it. :)

        1. I guess I’m a real old fart here – I ran Unix(tm) on DEC PDP/11’s at Bell Labs in 1979, booting from RK05 5 MByte hard drives. A few years later, I had a CP/M machine for which I bought a 10 MB hard drive for 10% of the price of my house.

  8. “Though the 386 architecture is now ancient, the current Linux kernel can still be compiled for it and many distributions still maintain an i386 branch to provide broad compatibility for later machines able to run i386 code.”

    Uuuh, kinda.

    They call it i386, but actual 386 support was dropped a while ago (A quick google search says they announced it in Dec 2012, with kernel 3.8).

    I just wanted to point that out if anyone was wondering if this could be done on a 386

    1. Apparently 386 support instantly vanished from everyone’s old disks when the change was checked into source control. Yes indeed I just checked my old Yggdrasil images and the 386 support is not there any more! How did that happen? Maybe someone snuck into my house and swapped out the disks?

    2. Yeah, I just remembered the same thing and googled it as well. Apparently ditching the old 386 code removed a lot of cruft. In the late 90’s I used to have an old “Leading Edge” (remember those?) 386 computer with a 10 MB hard drive with Linux installed. All I used it for was as a terminal to connect to my main Linux box in the other room. Even with no GUI it took it forever to boot.

    3. Even then most distributions with 32-bit support erroneously listed as i386 don’t support anything before the Pentium (i586), and others the Pentium pro/II (i686).

      The 486 is the oldest processor supported by the modern kernel, but most distributions do not support it for their software packages.

  9. I remember doing a zipslack install on my desktop pc in 97-98 took forever to download that over 56k, if you were lucky you could download 1mb in 6-7 minutes that 100mb ….. now if i can’t download a gb in 1minutes i’m complaining to my ISP

  10. Ahh, the memories.

    20 years ago I remember following the directions in the LDP boot-floppy page to make a custom Linux boot floppy. Remember the LDP? It had busybox and started up right into a script that mounted a CD-ROM, partitioned and formatted the hard drive and unpacked a tar file from the CD onto the hard drive. It even ran lilo. It was an auto-restore solution.

    The idea was always to make an image of that floppy and use it to make the CD itself bootable but for some reason I could never make that work.

    I’m not surprised that everything else needed to make this happen still exists but I am surprised that it was possible to make the kernel fit on a floppy. It must have been quite the cut down build!

    1. I think it was a tight fit in the mid 90s. Distributions tended to come with a few different kernels, and you used the right one for your CD support, like sbpcd or mitsumi, SCSI or regular IDE, because I guess they didn’t all fit, or argued with each other. Some of the interface standards were half-arsed SCSI or IDE which were incompatible with a standard implementation. It was recommended to compile your own kernel with the modules you needed to save space, particularly if you needed to support only one or two storage interfaces, but had a bunch of other stuff you needed compiled in.

      1. Panasonic, Mitsumi, and IDE all used the same 40 wire cable. Sony of course had to be their own kind of special with a cable with fewer wires. And the Panasonic and Mitsumi wiring was different from each other and IDE.

        The main thing that all did was make sound cards with support for the three proprietary or them plus IDE cost a lot more.

        Less common was a soundcard with SCSI. Some versions of the Media Vision Pro Audio Spectrum 16 had a Trantor 8 bit narrow SCSI controller with a transfer speed just capable of handling a 4x CD-ROM. One *could* connect a hard drive or any other SCSI devices just like any other SCSI controller. It didn’t support booting so along with the slow transfer speed it wasn’t practical to connect a hard drive. I did hook up a flatbed scanner to a PAS16 once, just to see if it’d work. No need for drivers, Windows 95 had support for the PAS16 SCSI controller.

  11. Cool. Getting modern Linux squeezed on the floppy must have been fun! Does bring back memories of downloading Slack onto a stack of floppies… Then hoping that you could get through loading them without an error…. Neat, but I really think I prefer installing from a USB stick now :) . And really my Linux systems boot really fast off of SSDs and M.2s… Once you get pass the BIOS configure/check delay.

  12. As an Australian, can’t say I’m supportive of the name. Having been living in the US for 4 years now and living through the BLM movement, as well as being happy to see HAD supportive of that, it’s a bit insensitive to be at least not calling out this name within the article.

    Quote from FAQ: The name “Aboriginal Linux” is based on a synonym for “native”, as in native compiling.

    I assume best intent for both the developer and HAD team, but for an international audience this is no different to renaming the Redskins or Indian sporting teams.

    1. Well, the definition of “aborigine” (lower case “a”) is “a person, animal, or plant that has been in a country or region from earliest times.” With upper case “A”, it specifically refers to the indigenous Australian people. I assume they used it in the lower case sense, even though it it upper cased as the proper name of the distribution.

    2. Maybe that criticism should be taken up with the author of that distribution? Neither Hackaday nor Fozztex I believe had any involvement with the selection of that name.

      If it’s any conciliation to you:

      April 30, 2017

      — End of Line —

      Development of Aboriginal Linux has ended, replaced by mkroot.

      (from the Aboriginal Linux front-page.)

    3. If you really cared about an international audience, you may quickly find yourself without words to use because each culture could have different words to forbid…

      What about renaming Australia to its “original” name used by the indigenous australians?

  13. I just realized I’ve never actually run Linux on a 386. When I got the n-floppy Slackware dist in fall 1994, I did try to, feeding floppy after floppy into the thing there in my dorm room, but once it tried to boot from the hard drive it would get as far as “LI” of LILO.

    After a number of other misadventures with that machine I eventually discovered there was a glitch in one of the RAM SIMMs — just enough to panic LILO or hash up a multi-disk zip file, but not enough to keep Win 3.1 from running. I promptly swapped it for a 486 and put Linux on _that_.

    1. Yeah, every one of those 13 disk images had to be perfect…I’d say about 80% of my download/install attempts worked. And not on all hardware. Linux has come a long way.

      It is still amazing to me, that a single CompSci grad student who wanted UNIX to play with, managed to bring us the Linux we have today (well, with an awful lot of “stone soup” style help). And that Linux, with its humble origins, is now a serious embedded OS, as well as on servers and desktops worldwide.

      1. I had a 386SX/33 with 2MB. I could get X to run, and it actually would run OK once everything was loaded and sorted, but it took a while. When I finally moved up to a 486/80 w/ 4 MB it felt like going from a Cessna to an SR-71 Blackbird.

  14. I used to use FloppyFW on a hard drive-less 386 as a firewall for an ISDN line. As an extra precaution, I’d pop the floppy out after boot and let the OS just run in memory.

    1. Sounds like me at the turn of the century; I used a “Linux Router Project” floppy in an old HD-less desktop with a dial-up modem to drive the home’s Ethernet wiring. Slow but convenient – and elegant in its way!

  15. Just before the turn of the century, we had our new house equipped with Ethernet wiring, but we had no broadband, so thanks to https://en.wikipedia.org/wiki/Linux_Router_Project I put an old desktop PC (no HDD, one floppy drive) and a dial-up modem to use providing a data connection. Yes it was slow, but with dialup the only option in many places it wasn’t so bad back then, and the ability of multiple computers to share the connection via Ethernet was really quite convenient.

  16. While I’ve got Puppies on PIIIs, and Focal Fossa running on relatively ancient Turions (Think it’s about the most ancient CPU it CAN run on) , the last time I tried a current at the time linux on a 386 was an effort in 2001 to build my own lightweight router from scratch, with an IBM PS/2 machine… one of the very slowest PS/2 386s, an SX16. Now this thing only had one ISA slot, and I picked up this card I thought was MCA, looked up the chipset, linux supported it, got way far deep into setting up the linux install, then realised A) I wanted more than the 80MB HDD and THAT was a microchannel special also and hard to find larger ones for cheap, and B) that the microchannel network card I had was NOT microchannel, derp, it was somebody elses circa 1990 or 1991 32 bit bus that never took off. I was looking at $100 for a decent NIC and $100 for a decent HDD which was a bit too much for a spare parts project. However, I had plenty of 486 stuff so threw together a 486 dx2/66 and put freesco on it and that served well for 5 years or so. Why the PS/2 insanity? Well it was a passively cooled CPU and from the era of IBM still overbuilding things, so I thought I could literally bury it somewhere and it would chug along regardless. I had to actually blow the dust out of the 486 every leap year, even had to reboot it twice.

    1. Probably was an EISA card. EISA slots had backward compatibility with ISA cards. Like plugging a USB 2 Type A cord into a USB 3 Type A port, but with a lot more pins. The slots used a similar trick with bi-level contacts. The 32 bit bus extension part was farther down into the slots.

      1. Yes I’ve seen those. Maybe have a motherboard still. There was another one that was ISA 16bit, plus another socket of same pitch contacts inline with it, that was nearly as long again. Like VLB in 0.1 pitch. Anyway that NIC remained unidentified, damn thing didn’t have anything on it to help, no FCC, nothing. I maybe don’t have that one still, have not seen it in 15 years. Which is actually odd come to think of it, it was chippy enough that I would have kept it to scavenge.

        1. Post-post postscript… ah yeah, I think the EISA board I’ve got is one for a 386DX and Weitek that I never came across the CPU (Or co-pro) for. That’s probably so far back in the deep and dark, that I might find that NIC keeping it company.

  17. I was hoping I misread, and this would be a Linux board *inside* the floppy case… (and bonus points for exporting data over a magnetic surface, so it could be read as a floppy of sorts… sort of like how those solid-state cassette tape emulators work)

    1. Find an old SmartMedia or Memory Stick or SD card FlashPath 3.5″ floppy adapter… With today’s technology it should be possible to build a fully functional computer to replace the adapter’s original electronics, including interfacing with the gizmo that magnetically transfers data to/from one or both heads, and can run (for a while) off the pair of CR2016 batteries.

  18. Ah the nostalgia and frustration of Zipslack.

    These people don’t know the meaning of slow. I ran that on a 386 laptop latish 1990s. You could compile the kernel on it. Can’t remember why I needed to, but I have distinct memories of using it while on a trip, having it (smartly!) hooked to a UPS, and then arriving. Having to carry laptop and UPS from a car to it, since it wasn’t done compiling, and I didn’t know how much longer. Then after doing that… It finished like 5 minutes later. Heh.

    Oh, yeah, that 386 had a whopping 16MB of RAM. (Maybe it was the ram, and some x86 addressing mode?) It beat the pants off the first machine (486) I installed Linux (w/KDE 1.x, or maybe pre 1) with 6 and 2/3 MB RAM. (Yes, we had fractional MB chips. That machine had 4x 1MB, and 4x 2/3 MB 30-pin SIMMs.)

    1. Never came across 2/3 MB SIMMs myself, or heard of them. Had (Probably still have) some 256kB ones. I can’t see how they would work, not being double banked or maxing an address boundary, there would be a gap in the memory map.

    2. 30-pin SIMMs are strictly only defined for (powers of 4) bytes in size – 64KiB, 256KiB, 1MiB, 4MiB, 16MiB. Unlike in 72-pin SIMMs, 30-pin SIMMs always used the same number of address lines on both RAS and CAS. Bytes could have parity.

      Could be some other funny non-standard SIMM.

      1. I could see someone in the mid 80s or a bit later sticking 640kB on a module for the lower memory, intending to sell 256 or 512 for the cheapskates before the full 640 became pretty much standard. However, I can’t see more than one of them working in a system.

  19. A friend gave me an old 386 SX 16 and I installed the 27 floppy Slackware distribution onto it. The first Slackware release was on 24 floppy disks, so I was not an early adopter.

    I bought a brand new Pentium 90 with a slightly odd IDE controller. The kernel on the default Slackware boot disk did not support that IDE controller. I had to configure and build a kernel on the 386 SX 16 so I could use the Pentium. It took on the order of 14 hours.

    The Pentium 90 with 32 MB of RAM was a vast upgrade from my Sun 3/50, even though the 3/50 had been upgraded to 12 MB with a complex set of mezzanine cards.

  20. Back in the day I would use the CentOS single disk (cd rom back in those days..) server install and start cutting from there. I had a lot of very little Linuxes for one trick pony projects. Now I turn to tinycore linux, http://tinycorelinux.net/. They have done an amazing job of thinking small.

  21. Awe I remember building computers back then. I couldn’t get internet back then but man it was fun building. And I LOVED jumpers and IRQ awareness. Sound Blaster cards, and oh I had a a VESA Stealth on my own machine. Ran the same way every time you started it up…….

      1. I called it Jumper and Stay! But Windows 95 often had its own ideas about what resources sound cards ought to use, requiring forcing manual configuration because if you pried loose whatever device it had incorrectly assigned to the sound card’s IRQ, DMA, port etc, it’d swap something else to the wrong resources.

        It was either install Windows 95 and the drivers and it *just worked*, or it was wrestling the bear to *force it to comply* with the hardware configuration. Much of the magic of a “just worked” Win 95 install was up to the authors of the driver installers knowing WTH they had to do to make Windows accept the correct settings, then not decide later it knew “better”.

        The process was additionally complicated (still is!) by forcing you to always have to go through all the steps of failure just to get to the “Have Disk” option that should have been available right at the beginning. But Microsoft managed to make it even more irritating to install drivers and other things with the MRU. Most Recently Used. The MRU lists in the Registry were not used by Winows at all. They were just history lists of locations for various drop lists, for the user’s convenience should he or she want to quickly re-select a recently used path.

        Microsoft just could never make the logical leap to having Windows recursively follow the MRU paths. Many were the times something was installing files from two or more paths and it was up to the user to hold its digital hand and select the right entry in the drop list every time it couldn’t find a file in the path it was currently copying files from.

        Yes, there were good reasons I called the “Install Wizard” the “Install Idiot”.

  22. Since when english (or many other languages where ‘aborigine’ exists) make a difference between lower case and upper case first letter?

    What about using the context around the words to figure out the meaning of a whole sentence?
    As opposed to the smokescreen of forbidding words around like if that would actually help.

  23. I think Linux on the platform is not the issue, it is the peripheral interface controllers like disk and USB availabilty. Whether you can find the correct device drivers to talk to the legacy hardware is the main issue. I guess with the availabilty of single board machines like the Pi my question is whether its worth the trouble to attempt it. I just cant come up with a good use case for the legacy platform.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.