MC68020 suggested you build your own Linux system by cross-compiling
from sources. I do not know whether this is the best solution for you
but, if you are going to explore this route, I suggest you take a look
at the Buildroot project. Buildroot is a Linux distribution for
embedded systems. Or rather, it could be described as a toolbox for
building your own custom system. The basic usage is:
cd buildroot
make menuconfig
make
and Buildroot takes care of downloading, building, and integrating all
the components into a ready-to-use disk image.
The default configuration (if you don't make menuconfig
) builds only a
root file system for i586. Thus, at the configuration stage, you should
at least:
- select i486 (menu: Target options → Target Architecture Variant)
- opt-in for a Linux kernel (menu: Kernel)
- choose a bootloader (menu: Bootloaders)
The defaults build a system based on uClibc-ng and Busybox,
including the Busybox init system. But you have the choice to use
musl or glibc instead of uClibc; the GNU coreutils instead of
Busybox; systemV, OpenRC or systemd instead of the Busybox init system;
and install a selection of packages. For a truly minimal system, you can
trim the kernel (make linux-menuconfig
), the libc (make uclibc-menuconfig
) and Busybox (make busybox-menuconfig
).
As an example, here is Buildroot on an embedded board running the
dropbear ssh server, the nginx Web server and the htop process viewer:

Note that this configuration has not been optimized for a small RAM
footprint. It uses the defaults from Linux and Buildroot, and adds a few
extra packages (notably dropbear, nginx and htop).
Edit: After stopping the Web server and dropbear, and logging in on
the serial console, htop reports the memory usage as “7.53M/498M”, with
htop itself being the biggest process, memory-wise.