Skip to content

tcsullivan/linux-486

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7b687fc · Jan 1, 2023

History

8 Commits
Nov 1, 2022
Apr 30, 2022
Apr 30, 2022
Apr 30, 2022
Apr 30, 2022
Apr 21, 2022
Jan 1, 2023
Nov 1, 2022
Apr 30, 2022
Nov 1, 2022
Apr 30, 2022
Apr 30, 2022
Apr 30, 2022
Apr 30, 2022
Apr 30, 2022
Apr 30, 2022

Repository files navigation

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.