I'm creating embedded Linux distribution from scratch that fits on a single floppy (1MB at the moment), runs latest kernel and can boot on a 486DX PC.

More info soon with an easy to understand tutorial!

@w84death @cypnk single floppy for both kernel and root filesystem, or split like SLS?

@th @cypnk Single. It's purpose is for running dedicated application straight form a live-fdd. When I learn more I want to have persistent storage also. It is not meant to install on host.

@w84death @th @cypnk Getting a current kernel down to that size is impressive!

@penguin42 @w84death @cypnk make tinyconfig for 5.10 produces a 449KB bzImage, although that is for a 32-bit kernel with literally no device drivers (not even a serial port). Adding in 64-bit, VGA and console drivers brings it up to ~650KB, which leaves a little space for a ramdisk.

@penguin42 @w84death @cypnk the kernel and initrd would easily fit in the per-thread L3 cache on my build server...

@penguin42 @w84death @cypnk need a libc to go with it... and ELF support. that's now 674KB for the kernel; static linked musl busybox compresses to 318KB, add in /proc and #! support for a few more KB... and the bootable image is probably smaller than this screenshot.

@th @penguin42 @cypnk I already have #! support but still don't get the /proc and /dev working. But I'm learning everything on the way :)

@penguin42 @th @cypnk It already have vi ;)
My goal is to make old-school Diskmag. I already have few articles for it. I probably end up with some cool script that will allow to list articles and read them (cat|less).

@w84death looking at the stuff all around my table with enough horsepower (surface, ryzen 5 desktop, 4k displays) to run more fat distros , i like your effort i tried to do this about a year and a half ago and was not successful. has the longstanding issue that caused a tty panic when booting the kernel from a floppy been fixed? or did you work around it?

@linear It works for me. I just started writing the article/tutorial with condensed, easy to understand instructions for anyone that want to recreate this.

There are still a few things I need/want to research. Expect it in a few days :) ah, that might explain it then. i was building mine without one to save space, so the kernel tries to mount root on the floppy directly, which hits a codepath that seems to have been broken for many years.

@w84death Nice to see this is still possible! I used a single-floppy system someone had made which was running linux 2.2(?) for my first steps in computering, reading manual and info pages on a 486-based laptop with a tiny grey LCD screen my dad didn't see any use for anymore. The machine was running DOS when I first got my hands on it, but not for long :flan_evil: I eventually managed to make use of the internal hard disk to overcome space limitations.

@ArnimRanthoron Not my language :) (looks like everything is in German). But my project is not for making yet another "awesome" distro but for me to learn the basics of Linux and for my embedded project (old-school disk magazine).

@w84death Super cool! I remember cycling around with this in the pocket of my baggy baggy early 2ks trousers.

@w84death do you realy run 5.x linux kernel from the floppy 1.44Mb sorage + latest BusyBox? What's the size of the particular components? Are you use initrd additional image?

@linuxoid bzImage 568KB (32bit) + rootfs.cpio.gz (BusyBox) 440KB

I change what tools I need in the rootfs - it goes from 400KB to 600KB depending on my needs. I still have 200-300KiB for my embedded project (enough!).

@w84death sounds good. back in times when I worked for embedded devices (routers, generally) I put 3.16.x kernel with busybox into 4Mb flash with 16 Mb RAM. but I had to significantly cut the code because network and cryptography parts were quite fat and the router had to have basic network utils and a simple web interface as well.
@w84death and the possibility to run the latest kernel for old hardware is good. I have a couple of old hardware machines. not 486, but pentiums. they still work. but I'm too lazy (and busy) to get into the latest kernel support for them. so they run on old 3.x kernels. it would be good to get the new protocols there.

@iron_bug I also do not have that old hardware but I think I will look for one just to prove it works. Also 486 was my first computer in the 90's so this will bring many memories :)

@w84death I started from 286 in 88. but my own first PC was 486 when I entered to Uni. and I gave it away to my ex-guitarist many years ago. I'm sure that man threw it away. he wasn't a programmer or something. this is sad.
but I think it's still possible to find a 486 PC around. I have some boxes with old hardware in my stash: ISA boards, floppy drives, modems and even 9-pin printer. I think the main problem would be to find a working IDE disk. I have some, but not sure they're still alive.

@iron_bug I got 9-pin printer working and use as my main (and only) printer! Those printers are build like tanks.

I search my local auction service and see there are few nice laptops with 486 processors available. Reasonably priced (~$100).

@w84death I think the printer is alive, but not sure how to dye the ribbon. there's no more inks for that old gizmo, I believe.

@iron_bug I have OKI a very popular model and still used in many places in Poland. Getting new ribbon for it is super easy and cheap in our country. You can dye it using any pen ink or use carbon paper ( i remember doing this as a kid).

@flancian Good idea! I can do that in the end - I have some experience in running Linux in a Docker container.

Sign in to participate in the conversation

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!