[HN Gopher] Floppinux - An Embedded Linux on a Single Floppy
       ___________________________________________________________________
        
       Floppinux - An Embedded Linux on a Single Floppy
        
       Author : todsacerdoti
       Score  : 91 points
       Date   : 2021-05-22 15:46 UTC (7 hours ago)
        
 (HTM) web link (bits.p1x.in)
 (TXT) w3m dump (bits.p1x.in)
        
       | raflemakt wrote:
       | That's awesome. I recently ran
       | [ELKS](https://github.com/jbruchon/elks) (Embedded Linux Kernel
       | Subset) on a Toshiba T1200 laptop from 1987 with an 8086
       | processor. Booting into a unix-like system from a floppy with
       | recently developed software is just surreal.
        
       | sigzero wrote:
       | I remember putting in a single floppy of QNX. That was awesome.
        
       | shimonabi wrote:
       | I remember running QNX from a single floppy in the 90's.
       | 
       | http://toastytech.com/guis/qnxdemo.html
        
         | alblue wrote:
         | You can get the qnx do floppy from archive.org:
         | 
         | https://archive.org/details/qnx303
        
         | w84death wrote:
         | This blow my mind back then.It is still super impressive.
        
       | anigbrowl wrote:
       | The very first version of Linux was bootable from a floppy and
       | required 4 x 1.44" FDs to install.
        
       | antongribok wrote:
       | This reminded me of DSL [0]. I used to use it as my router 15
       | years ago.
       | 
       | The box was loud while booting (because of the floppy), but once
       | booted was completely silent as everything ran from RAM. The
       | Pentium CPU had just a heatsink with no fan, and no fan on the
       | power supply.
       | 
       | [0] http://www.damnsmalllinux.org/
        
       | gnampolo wrote:
       | Its not linux, but I remember also this OS working on a floppy.
       | And still maintained: http://menuetos.net/
        
         | heavyset_go wrote:
         | What's impressive about this is that it's entirely written in
         | assembly, and has a full GUI and network support that fits on a
         | single floppy.
        
       | williesleg wrote:
       | You mean Minix?
        
       | redshirtrob wrote:
       | As a sysadmin in the 90's it was considered malpractice to not
       | have a copy of tomsrtbt[1] available at all times. The idea was,
       | in a pinch, if you brick your internet gateway you'd have a
       | chance of recovery by booting from tomsrtbt. It had just enough
       | tools crammed onto the disk to fix configurations, fsck a disk,
       | and rewrite the bootloader.
       | 
       | [1] http://www.toms.net/rb/
        
       | themadsens wrote:
       | Nice write-up.
       | 
       | Back in the day, there was also LOAF (Linux On A Floppy). [1]
       | 
       | I had a go at it, until I realized someone beat me to the name.
       | 
       | [1] https://linux-center.org/en/distributions/mini-
       | distributions... (Only the index still remains)
        
         | w84death wrote:
         | Thanks!
        
         | herewulf wrote:
         | I downloaded LOAF and tried it on a 386 circa '98, not really
         | knowing what Linux was. Sadly it didn't boot for some reason
         | because I could have started my enlightenment about four years
         | earlier. Instead I spent the late years of my adolescence
         | struggling to make "terminal" apps with Microsoft compilers.
         | GCC would have been really nice.
        
         | purerandomness wrote:
         | There is also Floppix, and their FAQ lists a few more [1]
         | 
         | [1] https://www.floppix.com/faq.html
        
           | themadsens wrote:
           | Ah yes, tomsrtbt. I completely forgot about it. It even looks
           | it's still going. Used to have that as a grub boot target,
           | and it has saved my cheese more than once ..
        
       | pdenton wrote:
       | Funny how the website for this is over 4MiB.
        
         | Zenst wrote:
         | Funny, but does give deep meaning too the saying "A picture is
         | worth a thousand words"; Or in this case - Three Operating
         | Systems.
        
       | swiley wrote:
       | Does Linux still fit on a floppy? Last few times I tried I
       | couldn't get the kernel below 1.7mb (without throwing out stuff
       | like block devices.)
        
         | heavyset_go wrote:
         | OpenWRT needs to compile and run on devices with only 4MB of
         | flash storage, and they have a guide for slimming down the
         | kernel here: https://openwrt.org/docs/guide-user/additional-
         | software/savi...
         | 
         | I would be surprised if the resulting kernel is any bigger than
         | a floppy disk.
        
       | aae42 wrote:
       | little known fact, Alpine linux was originally designed to run
       | from floppy
        
       | squarefoot wrote:
       | Kudos to the creator! Fitting a bootable Linux on a single floppy
       | was already doable some 20 years ago, my firewall back then was
       | in fact floppyfw (0) running on a 486 board, but in the meantime
       | the kernel grew a lot, despite being much more modular than old
       | ones. Userland utilities and libraries also grew in size, so the
       | accomplishment is not trivial. Thumbs up!
       | 
       | 0: https://www.zelow.no/floppyfw/
        
         | bombcar wrote:
         | I saw this and said "eh, been done" - but that it's the latest
         | kernel and busybox is surprising.
         | 
         | This could be useful for other embedded systems - as 2MB of
         | storage could be fit into ROM pretty easily.
        
           | w84death wrote:
           | Yeah, I just wanted to learn Linux. It worked as I learned a
           | lot doing this project :)
        
       | geocrasher wrote:
       | I seem to remember a distro for turning an old PC into a router
       | called "Coyote Linux". It fit on a 1.44mb 3.5" floppy. There was
       | another too that I'm not remembering currently. I find it amazing
       | what can be done with simple computers and advanced software.
        
       | marcodiego wrote:
       | This one doesn't includes GNU, but it is required for building
       | it. I like the idea that knowing GNU/Linux like this allows for
       | some makeshift tools to salvage or recover from situations that
       | would be lost without it.
       | 
       | Needs a server or router and all you have is an old computer with
       | some NIC's? All you have is a pendrive and needs to recover some
       | files from an unbootable machine? Do not have msword but can use
       | gzip and grep and wants to extract text or images from a docx?
       | Got an old computer without harddisk but working floppy drive and
       | needs linux running on it? Need to send an SOS AM signal and all
       | you have in an old CRT? A modern linux distro with a few dev
       | packages and system tools is like a digital swiss army knife on
       | these situations.
       | 
       | Some of these scenarios are stretching the reality, but some are
       | not. These skills are the modern IT equivalent to MacGyverisms.
        
       | luke2m wrote:
       | KolibriOS [1], an os with a GUI, networking, and a bunch of games
       | is amazing. And it fits on a floppy. http://www.kolibrios.org/en/
        
       | grioghar wrote:
       | Ahhh, brings back memories of the LRP back in the day.
        
       | the-dude wrote:
       | Just because : _Don 't copy that floppy_
       | https://en.wikipedia.org/wiki/Don%27t_Copy_That_Floppy
       | 
       | Video : https://www.youtube.com/watch?v=up863eQKGUI
        
       | yosito wrote:
       | Can someone define the term "embedded" in this context? I had
       | always assumed that "embedded" meant that the OS was written onto
       | non-removable read-only storage. But I'm realizing that I don't
       | actually know what the definition is.
        
         | loa_in_ wrote:
         | Embedded is any low resource, cost-efficient computer system
         | designed with a specific class of tasks in mind, as opposed to
         | general computing devices like mobile phones (which aren't
         | embedded) or PCs or servers. On the other hand, mobile phones
         | actually contain one or more embedded systems as their
         | components. See, pinephone gsm modem documentation for example.
        
         | w84death wrote:
         | It is read only and will run one particular application in a
         | kind of KIOSK mode. I'm using floppy just for fun.
        
       | w84death wrote:
       | I can't believe I see a link to my work on HN! :)
        
       | [deleted]
        
       | znpy wrote:
       | iirc one of the first distros i tried to install was Coyote
       | Linux, which also was a "floppy-distro" (it definitely was a
       | thing).
       | 
       | the reasoning was that I had an already old for the time 486dx
       | and the floppydistro was the logical choice.
       | 
       | of course starting using gnu/linux using a small floppydistro
       | with no graphical tool and little help was a dumb idea lol.
        
       | walrus01 wrote:
       | Not exactly floppy sized, but this claims to be a 12MB total size
       | desktop GUI linux:
       | 
       | https://en.wikipedia.org/wiki/Tiny_Core_Linux
        
       | compsciphd wrote:
       | I built a linux on a floppy about 20 years ago, with a number of
       | ethernet drivers built in (the common ones of the day, some 3com,
       | tulip and a few others), X11 (tinyx with vesa fb, so close to
       | universal support then, just not accelerated) with vnc and
       | rdesktop. i.e. a thin client on a floppy.
       | 
       | it was a demonstration on how one dynamically compile (for
       | smallest binaries), but then "reassemble" libc to only include
       | the symbols needed for the actual applications. I demonstrated
       | doing this with uclibc which didnt need the help as much as well
       | as glibc (which if my memory serves me correct was basically
       | close to the size of the floppy by itself). if all the binaries
       | were statically linked, they would have been too big (because of
       | duplication of symbols between them), but by essentially
       | stripping libc of unneeded symbols, was able to create an
       | embedded system that worked perfectly.
       | 
       | It might be a bit harder today for the same reason its hard to
       | actually statically link glibc today. glibc at runtime can do
       | dynamic loading itself, even if statically linked into the
       | binary.
        
         | a1369209993 wrote:
         | > if all the binaries were statically linked, they would have
         | been too big (because of duplication of symbols between them)
         | 
         | Apropos of this, another solution I've seen (more of a dirty
         | trick, but also greater space savings) is to build libc as a
         | fixed chunk of page-aligned memory, and then de-duplicate the
         | underlying disk sectors between different executable files.
         | Works pretty well, assuming a read-only or cooperative
         | filesystem.
        
       | axiolite wrote:
       | I'm disappointed there are no links to binaries/disk images to
       | download. Building it all is overkill for the average reader to
       | just try it out and see if it's at all useful.
        
         | w84death wrote:
         | I was thinking of publishing those. Not a problem. I will
         | update the post in a moment.
         | 
         | EDiT: done :)
        
         | [deleted]
        
       ___________________________________________________________________
       (page generated 2021-05-22 23:00 UTC)