23

I recently acquired an old Packard Bell machine with 8 MB of RAM and an Intel 486SX. I need to put an OS on that hardware. I know that FreeDOS might run on this system, but naturally, I am not nearly as familiar with the C-prompt as with bash.

So, I'm wondering if there are any Unix-like operating systems still maintained that would run on this hardware?

3

7 Answers 7

22

Provided you get the possibility to cross-compile on whatever other system, the only solution I know is to… do it yourself from sources, you will need :

  • The linux kernel. the 5.4 version should fit. And provided you take extreme care to select only the drivers you need, it should happily fit into 2 M

  • Busybox ( many common UNIX utilities into a single small executable ) which should fit into ~ 1 M

  • Choose your init system (I'd go with openrc, but, as suggested in comments busybox' init might well fulfill your needs) and configure it with the minimal number of services.

Then consider what you can do with the remaining ~4 M

Of course you'll have to forget everything running behind an X server.

If semi-graphical is enough for you, then ncurses is IMHO the way to follow, I've even heard about ncurses based desktop environments but never tried.

12
  • 10
    In other words, build a custom Linux distribution. That might work. Feb 13 at 14:51
  • 2
    X should be able to run on that. Maybe not well, but it should run. If modern X.org versions are too memory-hungry, a version of XFree86 from the mid to late 90s should solve the problem. The X protocol has been stable for literally 3+ decades and new clients will just work. Feb 14 at 22:04
  • 2
    I would not go with openrc; you'll be wasting ram and disk space on useless functionality. Use either busybox init or a minimal init that does nothing but run a flat startup script with no runlevels, service management, etc. Feb 14 at 22:06
  • 2
    Is there a reason that the ncurses link is in French?
    – MJ713
    Feb 14 at 22:49
  • 1
    @MJ713 : Yes ! There is one reason ! :-P However, there is no reason for keeping it as is as part of my answer. I correct at once, thank you for noticing. ;-)
    – MC68020
    Feb 15 at 1:00
16

You may need to do some tweak to use sf.

Update: Read this Retrocomputing SE question

1
  • It is very unlikely that a modenr distro kernel will boot on an 8MB machine (64MB might be a stretch). At the very minimum, a custom kernel is needed. Feb 15 at 11:54
10

Abdullah Ibn Fulan’s answer gives pointers to BSDs and Linux distributions which support your CPU, but you’ll find that 8MiB of RAM is too little to do anything useful with a modern system.

Another possibility is to run Unix-style programs (including Bash) on top of FreeDOS. For example, the DJGPP project provides ports of many GNU programs, including Bash 4.1.

The main limitation will be the lack of multitasking; you can run a multitasker as well (Windows 3.1, DESQview etc.) if necessary.

9

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:

htop running on Buildroot

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.

4
  • 1
    Using 8MB out of ½GB, I see. I guess there won't be much headroom for user processes on the 8MB target system, then? Feb 14 at 17:25
  • 3
    @TobySpeight: If using the same config (adjusted for i486), indeed, the RAM would be quite full. But I did no attempt to optimize for small RAM, as the board has plenty. Feb 14 at 18:06
  • I think it would also be possible to replace the hard drive with an SSD (I replaced a HDD in an old laptop with an SD card in an IDE enclosure) and just swap a lot, then the memory would not be such a big problem. It would still be slow, but it would run large applications if needed.
    – JohnEye
    Feb 15 at 15:20
  • 8MB is plenty, swap will handle the rest.
    – vhu
    Feb 16 at 16:39
7

Here's a nice overview of "light" Linux distros: https://en.wikipedia.org/wiki/Light-weight_Linux_distribution

I've just tried Damn Small Linux and unfortunately it only works when you have 12MB of RAM. It never boots with 8MB of RAM even with expert vga=normal at least in my VM. Maybe you'll be luckier.

5
  • And DSL was last released in 2008, so I doubt it qualifies as “modern”... Feb 13 at 12:49
  • 2
    The question is - with no need for any "modern" drivers, and no X11, anyway, which difference will a user notice between a 15 year old system and a current one? Basic shell commands and ncurses haven't evolved that much. Of course, Internet is more or less out of the question with no TLS, but without a GUI, which kind of Internet service are you going to use? Feb 13 at 20:51
  • 6
    @GuntramBlohm That machine probably had Windows 3.1, Trumpet Winsock and Mosaic or Netscape at some point. Funny if it's limited to command line now.
    – JollyJoker
    Feb 14 at 13:06
  • @GuntramBlohm, 15 years ago gets you (just barely) TLS 1.1, which is still good enough for many websites. Lynx is a text-only web browser, and Wikipedia works just fine in text mode.
    – Mark
    Feb 15 at 0:36
  • Unfortunately DSL (Damn Small Linux) seems to be optimized to reduce disk space usage and not so much emphasis is on reduced RAM and CPU use. Apr 6 at 0:41
1

I had essentially the computer you describe running in my home network up until November of 2021 (i.e., continuously for more than 20 years). It operated as a router/firewall running Coyote Linux. That machine had one moving part -- the 3.5 in. floppy drive it booted from. (It's power supply fan had seized years ago, but as a router/firewall, that wasn't an issue. The 486 was passively cooled. There was no storage at all, except for the floppy drive.) I had upgraded it to 16 MB, which may be a necessary step for you. (I recall the computer specs didn't say it would work with the larger ram sticks, so I was pleasantly surprised when it did.)

You say "put an OS on that hardware" and the above example meets that specification. I note that current Wifi routers have better specs than the machine you want to use, so you may have to lower your expectations. Additionally, you may have endless trouble with driving hardware in Packard-Hells from this time period. However, if you are serious about trying to do more, you might look at this question and its answers from 2015 (and you may have to be willing to run old, unmaintained versions of software).

1

linux from scratch says that you can get a system down to 5 megs!

1
  • It says 5MB of disk space usage, but that must correspond to a maximum of a similar amount of RAM usage as well! Apr 6 at 0:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.