A floppy-disk-sized Linux system for i486
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Clyne 7b687fca34
add note on linux versions
2 years ago
busybox linux: force our config, busybox: don't link m/crypt 2 years ago
floppy/boot add complete build system 3 years ago
linux add complete build system 3 years ago
preinit add complete build system 3 years ago
.gitignore add complete build system 3 years ago
LICENSE Initial commit 3 years ago
README.md add note on linux versions 2 years ago
build-busybox.sh linux: force our config, busybox: don't link m/crypt 2 years ago
build-floppy.sh add complete build system 3 years ago
build-linux.sh linux: force our config, busybox: don't link m/crypt 2 years ago
build-modules.sh add complete build system 3 years ago
build-toolchain.sh add complete build system 3 years ago
config-5.17.2tiny add complete build system 3 years ago
config-buildroot-2022.02.1 add complete build system 3 years ago
config-busybox-1.20.0 add complete build system 3 years ago
config-uclibc add complete build system 3 years ago

README.md

linux-486

This repo provides the files necessary to build a modern Linux-based "operating system" for old i486 systems with at least 8MB of RAM. Build scripts for all components of the system are provided. An i486-linux toolchain is also built, enabling you to compile other programs for use with the system.

The generated boot floppy disk provides you with a Busybox system that is kept entirely in memory. uClibc's shared library files are also loaded into memory, allowing other programs to save on memory (as opposed to using static binaries).

A second floppy containing additional kernel modules can also be generated. Both floppies are ext2 formatted.

Build requirements

  • building tools (make, gcc, linux kernel's requirements, etc.)
  • bash
  • wget
  • tar, xz, bzip2
  • Around 6GB of available disk space

Build steps

Run the build scripts in this order:

  1. build-toolchain.sh (after this script, add ~/i486-linux/bin to your PATH)
  2. build-linux.sh
  3. build-busybox.sh
  4. build-floppy.sh
  5. build-modules.sh

On my machine (Ryzen 1700x, 16GB RAM), building the toolchain takes around ten minutes; building Linux takes around a minute, and the remaining steps take less than a minute each.

After successful execution of all scripts, you should have floppy.img (boot image) and modules.img (modules). These can be dd'd to a 1.44M 3.5" floppy disk.

Booting the system

The system requires an i486 or better processor, a 3.5" floppy drive, and at least 8MB of RAM (8320K for QEMU).

Notes:

  • Current Linux is v5.17.2. Older Linux (v2.x) uses less RAM for the kernel, and may be added later as a build option. Newer Linux (v6.x) appears to require well over 8MB of RAM to boot, so targeting newer kernels will be unlikely.
  • Once the system is booted, the boot floppy can be removed.
  • root's password is toor.
  • Mount the modules floppy to /lib/modules; then, use modprobe for loading and unloading.