I wonder why it needs 20MB minimum. Back in the day linux 2.0.33 would boot happily into a GUI and everything on an 8MB machine.
Or maybe I misremember... I know my machine at the time got upgraded to 24MB so maybe it was that machine I was running.
Anyway it's neat this can still be done.
This floppy decompresses the entire initrd image into memory at boot, which "wastes" memory compared a proper install on a HDD. You can also lower memory requirements further by enabling swap.
A floppy distro (especially one relying on a compressed initrd) will inherently require more memory. And I suspect the maker of this distro is using a different definition of "minimum" than we would have used back in the 90s (closer to "recommended").
However, it looks like modern linux kernels just require more memory; The kernel binary is certainly larger, floppinux is spending an entire 888KB on it's very stripped down modern linux (doesn't even have networking enabled), while older floppy distros using 2.2/2.4 kernels keep it under 512KB (with networking, and a bunch of other features.
Confirming.
Also the goal was to run LATEST kernel with no changes - just config. With other compression algorithms it was impossible to fit everything into a floppy. And I really wanted to have nano and some space to save few files. Without this it would be totally not usable OS.
You could run X11 in 4Mb at one point, although I rather wished I didn't.
Yikes-- bringing back memories of frustration. X11 on my 486SX w/ 4MB was excruciating. It would swap like crazy. Adding 8MB more RAM made such a difference. Kernel compiles were much less swappy, too. (I can still the buy I bought the four 2MB 30-pin SIMMs secondhand from but I can't remember how much I gave for them in 1993 or 1994. I feel like it was more than $100, though...)
That's not even big enough to hold a single 1080p framebuffer.
The Compaq laptop I was using had a 486SX and 4 MB of RAM. It had a 640x480 (if I remember correctly) screen and I'm pretty sure the framebuffer was in a separate video RAM that was not counted in that 4 MB. Used to type a lot of LaTeX on that laptop and used X11 for previews - xfree86 even had a special driver for the specific video hardware that laptop had. Not sure if I used a window manager. I think I just pointed ghostscript at the X11 screen from a text-mode console.
Not at 24bpp, but maybe at 8bpp?
Indeed. So far as I recall I had a greyscale monitor that couldn't do more than 800x600. I think it was a 486sx and I probably still had a 32GB MFM hard disk at that point so it was a very underwhelming machine.
I think 1MB of RAM in a simm was about £100 at that point, but it's been a while!
Yes. Also X in 1bpp was not even rare (e.g. Sun bwtwo).
I'm going to guess from the size of the kernel, since for distribution it has to be a fairly 'generic' kernel with just about every driver built into it. If one were to compile a custom 6.14 kernel for a specific hardware target with only 1 model of NIC (3c509b for example), etc, it could be a lot smaller.
Why does the number of drivers compiled in affect memory use? Shouldn't the kernel just load what it needs and ignore the rest?
If it's compiled into the kernel it'll occupy memory regardless if it's being used. If it's built as a kernel module then it doesn't occupy memory until loaded.
I had 2.2.x running on my 386 last year in 4MB. Not enough for a full GUI though but enough to set up TCP/IP and Samba to image a drive over the network.
8MB, at least in an emulator, can run a basic Xterm but not a lot else (though it'll happily run as a remote X frontend for a more powerful machine over Ethernet, it was fun to see it try to render Gimp 3 running on my desktop lol)
My 16MB 486 had no issues with a full IceWM session (this was kind of my hacked version of BasicLinux which itself was built on a ~2000 version of Slackware)
if you have an X server running then maybe you can exploit Xorg/X11's network transparency and run heavier apps on a beefier machine.
I think you could run 2.0 + X11 in 4MB in a pinch. I know I ran 2.2 + X11 in 5MB on a cast-off i386SX; tight but useable. If I recall right, 2.0 & 2.2 would run in 2MB without X11 (but a GUI like MGR might fit). 8MB was pretty good and 16MB was positively spacious.
Edit: Add: 2MB/4MB boot with a stripped down kernel, not generic.
I got 2.2 with BusyBox to consume ~2200K at boot after a lot of fiddling. Left me plenty of user space for doing command line work on my 4MB 386; i mentioned in another comment though, X was only really useful as a remote terminal in 4MB, to run a local program via X pretty much required 8MB. But pretty sure i got Doom running in X on 8MB...
I did all these experiments a year or two ago. I lost most of my work due to a hard drive failure (the one in my workstation, not the 386 lol) but all the surviving work is on my github:
https://github.com/queenkjuul/basiclinux-lcars