
4MB Laptop How-To: How to put a “grown-up” Linux on a small-spec laptop (2000) - manaskarekar
http://www.tldp.org/HOWTO/4mb-Laptops.html
======
Yetanfou
I used Linux on a Toshiba T1900C (20Mhz 486SX, 4MB/170MB) [1]. I started with
SLS [2], later moved to Slackware 3.0. SLS was installed through floppies
which I pulled from tape on an RS/6000 7012-32T, marking the transition from
'real but expensive unix' to Linux in one fell swoop. X was a bit sluggish on
the thing but for the rest it was quite usable.

Using Linux in this early age had advantages but it also came with some risks.
Not risks to me as a Linux user but risks to those exposed to things I
produced. I managed to create a CD which was distributed with a magazine I was
editor for in that period. The CD worked fine on Linux, it worked fine on OS/2
- the other system I used when not on Linux - but it failed miserably on
Windows 3.1x due to the use of lower-case filenames. This was...
unfortunate... as that CD had already been pressed, what to do? I ended up
solving the conundrum by distributing a tailored version of MSCDEX [3] which
could handle these files, affected users could order a floppy free of charge.

[1]
[http://www.computinghistory.org.uk/det/13145/Toshiba-T1900C/](http://www.computinghistory.org.uk/det/13145/Toshiba-T1900C/)

[2] [https://github.com/rdebath/SLS-1.02](https://github.com/rdebath/SLS-1.02)

[3]
[https://en.wikipedia.org/wiki/MSCDEX](https://en.wikipedia.org/wiki/MSCDEX)

~~~
mmjaa
Interesting story, thanks for sharing! I too started off with Linux back in
the day - I'd been on minix-list for a few weeks after just getting a 386 and
wanting something decent to run on it, replacing the Desqview configuration
I'd been using previously. So I was quite happy to download Linus' little
kernel and see what it could do .. one floppy at a time from funet.fi, lol.
What a great impression it made - a real unix on a 386! Of course, the fact
that it took a week to compile X/Windows wasn't that big a deal. :)

Then I moved on from building everything from scratch - a great learning
experience back in the day - to Yggdrasil, which was simply a great distro for
the time. Ah, good ol' days .. I really wonder what I'd do different if I had
a time machine and could go back and tell myself all the things Linux would be
used for in the decades ahead, it would have really blown my mind .. Still
does!

~~~
doubleplusgood
I still have fond memories of building a kernel in winter on a P4. No heater
needed. Make menuconfig, because the TCL part was too heavy...

~~~
mmjaa
Its kind of balls that those moments are so far away, yet so near. I mean, we
could if we wanted to, 'make menuconfig', I'm quite sure, even still.

But .. nah.

;)

~~~
anoother
You mean there's something fancier than `menuconfig`??

~~~
mmjaa
Not really. I just don't bother building my own kernel any more - the distro I
use (Ubuntu Studio) comes with one that works great out of the box. Nice to
know I still could, though .. ;)

------
klez
If you're into running GNU/Linux on older hardware, I can't recommend
kmandla's blog[0] (abandoned since 2015, also skip the last post to go to the
juicy bits) and Inconsolation[1] (by the same guy, abandoned since 2015 too)
enough.

[0] [https://kmandla.wordpress.com/](https://kmandla.wordpress.com/)

[1]
[https://inconsolation.wordpress.com/](https://inconsolation.wordpress.com/)

~~~
anoother
The kmandla blog is exactly what I thought of when I saw this post.

I can heartily second the recommendation, and I'd love to know what the author
is up to nowadays.

------
pjc50
I installed Debian on my Libretto 30 (
[https://en.wikipedia.org/wiki/Toshiba_Libretto](https://en.wikipedia.org/wiki/Toshiba_Libretto)
\- AMD 586 DX4 100 MHz, 8 MB RAM) some time in 2000. It worked pretty well -
PCMCIA networking, X11 and so on. I think I used the installation technique of
removing the hard disk and pre-loading Linux onto it. The machine was of
course far too small to have a floppy or CD drive, and predated USB.

(I also kept the Win95 partition)

Given sufficient interest I'm sure I could produce pictures.

~~~
amiga-workbench
I did the same with my ThinkPad 380ED. I've got a pile of Librettos still
running win98, as long as mIRC works I guess.

~~~
isostatic
My 380ED was my last awesome thinkpad, I think I had potato on it. After that
they went to "good" then "ok" then where they are now.

I recall trying to compile a 2.4ish kernel with support for my pcmcia network
card on an old 486 sx25 (dx?) laptop. Never got it to work. The desktop was
fine from redhat 6 onwards (under 5.2 my sis graphics card wouldn't work in
graphics mode, so no X)

~~~
Yetanfou
Hm, not much wrong with the T42p I'm using right now. Superb screen with the
correct (4:3, 1600x1200) geometry, good keyboard, trackpoint+trackpad, still
works as a daily machine even though it is 13 years old. I'd move the Thinkpad
line's demise to the point where they moved away from stolid, solid working
machines to follow current styles - flat keyboards, etc.

------
voltagex_
[https://sourceforge.net/projects/mulinux/](https://sourceforge.net/projects/mulinux/)
is still around, but was last updated in 2014.

~~~
leeoniya
2004, actually

[https://sourceforge.net/projects/mulinux/files/iso/](https://sourceforge.net/projects/mulinux/files/iso/)

~~~
voltagex_
You're right, but I wonder what "Last Update: 2014-06-27" is referring to.

~~~
duskwuff
I've seen inexplicable dates show up on dead SourceForge projects before. My
guess is that some of the "update" dates may represent internal changes within
SourceForge, rather than intentional changes by project owners.

~~~
leeoniya
they include comments, wiki, reviews, etc.

[https://sourceforge.net/p/mulinux/wiki/browse_pages/](https://sourceforge.net/p/mulinux/wiki/browse_pages/)

[https://sourceforge.net/projects/mulinux/reviews](https://sourceforge.net/projects/mulinux/reviews)

it's pretty stupid.

------
avian
Circa 2000 I was using a Compaq Contura 4/25cx laptop with Debian Slink,
2.0.36 kernel. It had a 486 at 25 MHz and 4 MB RAM. I also got a parallel port
Ethernet adapter from the same dumpster dive. Even with Slink installing with
4 MB RAM required some special care. My notes from the time say it took one
and a half minutes to boot.

There existed a driver in XFree86 for the funky Compaq AVGA graphics so I
could use X, but the limited RAM made it impossibly slow to run any kind of
desktop environment or even a window manager.

The setup I used on it was the zed text editor in one text console, shell for
running LaTeX in another console and the gv Postscript viewer without a window
manager running on a X screen. I wrote quite a lot of lab reports that way.

Documentation about that setup was one of the first web pages I made:

[https://www.tablix.org/~avian/contura/](https://www.tablix.org/~avian/contura/)

~~~
UncleSlacky
I installed Slackware 3.9 or 4.0 on a Contura 4/25C via floppy around the same
time, but as I had 8Mb to play with I managed to get a browser running in X
(though without a window manager).

------
walrus01
this is cool and all, for historical purposes. But for modern "small spec" the
i386 distribution of debian, no xorg or desktop manager is probably the
smallest usable distribution that has a full set of packages and will run on
an ancient machine. Any old laptop that has 128MB of RAM should be capable.
One of the issues you might run into is that the only way to do the install is
via a burned 700MB CD-R of the ISO, and very few people actually keep CD-R
media around or CD burners anymore.

~~~
bdcravens
At the time of course prices were at a different scale than today. My first
Linux was on a 486 with I think 4 or 8mb of RAM (Slackware, install by floppy,
1998)

~~~
acidburn1995
My first install was slackware 3.0 on 4mb. You had to manually partition the
disk and setup swap space before you could even launch the installer.

This was a minor inconvenience compared to swapping the 40 1.44mb disks needed
to install it because I couldn't get it to use my pre-atapi cdrom drive
correctly. Using the cdrom drive it would work for a little bit, and then
everything would start timing out. And, a network install was some science
fiction as far as I and my 9600bps modem were concerned.

Then once you got it all installed you could start trying to get X11 and ppp
to work...

~~~
glandium
My first install was probably Slackware 3.0 too (considering the dates, it
could have been 2.3, but I don't think I've used a kernel older than the
famously stable 1.2.13), but it was not on my own machine. Did that with two
friends on one of them's Pentium. We had downloaded a set of 40 floppies at
university and brought the whole thing to his place (because we also didn't
have either access to a modem and/or a cdrom drive).

We had bought 40 floppy disks in a bundle, and it turns out one of them was
crappy and ended corrupted. It also turned out it was the last of the set of
disks for the X11 package. So we had a shiny Slackware install... without X.

Fortunately, iirc, Doom was there intact, and we could run it with the
"console" svga backend (that was outside X, but before Linux had the
framebuffer, I don't remember how that worked exactly)

Had to wait for the next day to re-download the corrupted image on a different
floppy, and install the X11 package.

~~~
andybest
That must have been frustrating to say the least. I have many memories of
transporting essays to school on a floppy, only to have it be corrupted by the
time I got there.

~~~
KGIII
Marginally off topic, but this sub-thread reminds me of the many times I have
seen/heard people pining for ye olden days of computing. For whatever reason,
people remember them through rose colored glasses.

They will say computers were better then. I disagree entirely. They were
horrible and had much less capacity.

I see the same thing for the Internet. People will say they miss the time when
it wasn't open for commercial activity. Hogwash... I know, I was there.
Content was lacking, speeds were horrible, discoverability was an arcane art,
and the costs were obscene.

I'm guessing, not my domain, there is some sort of psychological reason for
this sort of thing. Computers were giant, more limited, and expensive. The
'net was no better.

~~~
acidburn1995
A while ago I tried installing Slackware 3.0 on Virtual Box out of nostalgia,
and it was everything I remembered and worse. I only managed to get XFree86 to
start up in some 300x200 mode that would pan around the 'virtual' size.
Getting networking working required a kernel recompilation.

Even after all that, there wasn't much it could do. I'm not sure why I
insisted on running that instead of Windows 95.

~~~
KGIII
Yeah. I have fallen into the VM hole. I even have images for Plan9. I am not
proud of this, no... No, no I am not.

My only defense is that I didn't do so out of a fake memory of a glorious
past. I just like tinkering.

------
c3833174
Reminds me of using loadlin to boostrap linux from DOS because the internal
CDROM didn't support boot and I didn't have the external floppy drive, and
since DOS would be overwritten it would have required removing the HDD if the
installation failed.

The trickiest part was getting DOS/Windows back with a custom bootable CD
after I realized how slow it was with a full linux distribution.

------
emersonrsantos
My Pentium 100 MHz and 16MB RAM running Slackware Linux was the envy of the
lab in 1995.

~~~
krylon
Huh. My first PC was a Cyrix "P166+" (running at 133 MHz) with 16 MB of RAM
and a 1.2 GB hard drive. It was not really a high end machine at the time. The
hard drive was quite big for the time, but the CPU became a liability once
Quake came out. :-/

~~~
agentgt
Quake ran just fine on P133. I know because I owned one at the time. Even
though that game hardly did any video card magic IIRC it still was one of the
major bottle necks so probably not having a good video card was your problem
(I had Number 9 something or another).

I remember when winquake/opengl quake or whatever it was called came out that
allowed use of the DRX/opengl drivers. It was a major improvement speed wise
(as well as not having to boot into DOS and it allowed higher resolutions
reliably).

However Linux Quake network wise (and startup speed) was absolutely faster
than both winquake and the DOS TCP/IP stack version. A lot of people/clans
that played competitively would use Linux because of this reason (as well of
course the server version).

Quake was one of the things that kept me on Linux most of the time (highschool
circa 1997-1999).

~~~
krylon
> Quake ran just fine on P133. I know because I owned one at the time.

In the absence of hardware acceleration, the Pentium 133 outperformed the
Cyrix CPU by a wide margin when running Quake. You are correct that _with_
hardware acceleration, the CPU was far less of an issue. But all I had was a
crummy ATI Mach 64, which was not even a good 2D card. So for me, the CPU was
the bottle neck.

Ironically, on integer workloads, the Cyrix was a lot faster than the
counterparts made by Intel. But their FPU performance was rather
underwhelming. On top of that, Quake had hand-rolled assembly code that took
advantage of the Pentium's architecture.

I never knew that people used Linux primarily to play Quake. ;-)

------
itomato
Today I use Buildroot for all my tiny Linux needs.

Still, it's tough to fit in 256MB with a modern kernel and Xorg.

------
LukeShu
Wow, this is from a different world! When this was published, the 2.4 kernel
was just a twinkle in Linus' eye--the 2.4 kernel that Damn Small Linux would
later stake itself to when it boldly declared that it would never switch to
2.6 because it was just too big.

------
cr0sh
While not smaller than this, the smallest (and my first distro) linux install
I ever did was on a Compaq 386/SLT laptop (luggable?) that had 6 MB of RAM...

...why such a weird amount of RAM? Well, when I bought the laptop used its
battery (NiCad) was dead, dead, dead - and I didn't have the money to have it
properly re-built. So instead, I built my own. I scrounged a bunch of old but
usable AA cell NiCad packs from cordless phones (remember those?) and soldered
up my own pack, and wrapped it in a bunch of layers of electrical tape.
Unfortunately, it didn't fit into the battery compartment completely...

One end was being blocked by the memory! I found that by cutting the battery
pack area larger, and removing one stick of RAM (the laptop had 8 MB of RAM
originally - 4 x 2 MB SIMMs) - it would fit and still boot - so that's what I
did.

The laptop originally ran DOS. My first mod was to install Caldera's OpenDOS
(a great version of DOS for the time, btw). Then I found and
installed...Monkey Linux. This was an interesting "cut down" but fairly full-
feature linux distro. It's crazy claim to fame was using the DOS filesystem
for itself, instead of it having its own filesystem:

[http://projectdevolve.tripod.com/](http://projectdevolve.tripod.com/)

------
baobrien
The kernel alone on my laptop is larger than 4mb, and that doesn't include the
initrd (though the article talks about that)

-rw------- 1 root root 7.3M May 17 16:13 vmlinuz-4.10.0-22-generic

~~~
glandium
And that's a compressed image... it is even larger in memory.

On my machine:

    
    
      $ stat -c %s /boot/vmlinuz-4.9.0-3-amd64
      4204320
      $ extract-vmlinux /boot/vmlinuz-4.9.0-3-amd64 > vmlinux
      $ stat -c %s vmlinux
      20110308
    

The script to uncompress the kernel comes from the kernel source:
[https://raw.githubusercontent.com/torvalds/linux/master/scri...](https://raw.githubusercontent.com/torvalds/linux/master/scripts/extract-
vmlinux)

Arguably, not everything in that vmlinux is actually loaded:

    
    
      $ readelf -Wl vmlinux | awk '$1 == "LOAD" { tot += strtonum($5); } END { print tot }'
      13935704
    

Counting BSS:

    
    
      $ readelf -Wl vmlinux | awk '$1 == "LOAD" { tot += strtonum($6); } END { print tot }'
      14824536

~~~
baobrien
I wonder how small a minimal bootable kernel, with all the drivers in modules,
would be.

~~~
isostatic
Does anyone else remember toms root and boot? Fully functioning Linux machine
on a floppy.

~~~
DanBC
Yes, I was surprised Tomsrtbt hadn't been mentioned yet.

[https://en.wikipedia.org/wiki/Tomsrtbt](https://en.wikipedia.org/wiki/Tomsrtbt)

The website is dead now. Here's the wayback machine link:
[https://web.archive.org/web/20160120122627/http://www.toms.n...](https://web.archive.org/web/20160120122627/http://www.toms.net/rb)

------
andreiw
Good old days. I remember trying to shoehorn Slackware onto an IBM PS/2 m55
with 2.9mb RAM. Unluckily for me, it was an MCA system with an ESDI disk, with
the MCA support very experimental, and I ended using a parport ZIP100 to help
with a minimal install. One day I got back from school and some dude from one
of the Usenet groups called me on my land line asking for the steps.

~~~
coupdejarnac
Argh, in college I had an old Microchannel IBM that I installed linux on. I
could never get the (coax) ethernet working properly. Pretty sure I used a
parallel port zip drive to install, too. Ah, the good old days of having seven
computers in one tiny dorm room.

------
tluyben2
For my museum I have Linux (and Minix) running on some pretty old stuff.
Workstations & servers (Sun/SGI/HP) still run fine with Linux/Unix on them;
those laptops are quite painful if you use X.

I was running Slackware mid '90s and I remember beating my head on the table
how slow it was compared to the Sun machines I used in uni with running X. But
it beat Win3.1/95 already in my humble opinion so I stuck with it until now
(although changed to Debian and then Ubuntu recently). Still allows me to, for
most dev, to use laptops from 6-7 years old (my goto dev laptop is a Lenovo
X220 from 2011 ; I bought a big stack for almost nothing last year and they
are excellent).

~~~
xtf
Our laptops (have a T520) got 8MB of BIOS Flash-ROM alone

[https://www.coreboot.org/Board:lenovo/x220#Flashing](https://www.coreboot.org/Board:lenovo/x220#Flashing)

------
eschaton
If it was built for 486SX, you could probably run stock NetBSD decently on
this system with performance not much different from when the system was new.

Edit: Looks like you would be able to do a customized low-memory/disk install
of NetBSD 7.1 on these systems if they had an FPU (either a full 80486 or an
80487 coprocessor). With 32MB RAM and 250MB disk in addition to the FPU, you
wouldn't even need to do a customized install.

------
kronos29296
To think that the RAM in the smallest system I have used in my life is 256MB
(somewhere in 2005 and in Windows 98 and 40GB HD) and that people used to run
entire PCs in less. Feels unreal (just like people talking about 4K memory as
state of the art decades ago). Nowadays people are indifferent to Memory sizes
as they just keep increasing every year.

~~~
Tepix
The Commodore VC-20 came with 5kb of RAM and was a "real computer". Nowadays
if you play around with Arduinos, the AVR ATmega328P on an Arduino Uno board
has 2KB SRAM.

~~~
cr0sh
You can't really compare the ATmega328 and the VIC-20 accurately, mainly
because the former is (arguably) a Harvard Architecture device.

For the most part, the cpu in the 328 doesn't have general read-write access
to the 32k flash memory (used for program storage), outside of some basic
functionality mainly limited to bootloader usage (at a machine code level, and
IIRC only for the first block of memory), and read-only capability otherwise
(so you can store data prior to loading it into flash to be read later by the
code).

The 2k static RAM (SRAM) is read-write always and anywhere, anytime - and so
it used mainly for variable storage. There's also a small amount of general
purpose flash memory available, which is also read-write capable (but has a
limited lifespan just like any flash memory - though from testing, in general
you won't reach the lifespan unless you do something really stupid) that is
typically used to store configuration settings and whatnot between reboots.

Whereas on the VIC-20, the CPU had complete access to all of the RAM and ROM,
and full control over the address and data lines of the bus.

Each architecture has its pluses and minuses, but in general the Harvard
scheme is used when you don't want the code to be able to alter itself (either
intentionally or accidentally due to a buffer overrun or something), which
might cause a problem that could have consequences; for an embedded
microcontroller, this makes sense, as you just want the thing to run
continuously and reliably on every reboot or restart, without worry that the
code will corrupt itself and lead to problems.

------
iuguy
I went to check the *BSDs and even OpenBSD needs 32mb of RAM for the 386 port.
FreeBSD needs a whopping 96mb!

~~~
eschaton
NetBSD will install & run in less, but you need to manually customize the
installation and it requires a full 486 (with FPU) at minimum. It doesn't seem
like it would be _that_ hard for someone to bring back support for no-FPU
Intel again, and also to support installation with less RAM.

------
NoGravitas
In 2000, someone gave me an old 386 laptop, 640x480 grayscale VGA screen,
probably 100MB HD, don't remember the RAM (2 or 4 MB), no ethernet. I had to
find an old-for-the-time Slackware to run on it, but I got it set up, with a
null-modem cable to the serial port on my desktop, and was able to use it as
an X terminal. Mostly only simple Xlib apps like XTerm and XClock, but I think
I may have displayed Netscape remotely on it a few times.

------
squarefoot
4MB is overkill. What about 640K RAM on a 8088?
[http://elks.sourceforge.net/](http://elks.sourceforge.net/)

~~~
minxomat
Too many bits. Try 8:
[http://dmitry.gr/index.php?r=05.Projects&proj=07.%20Linux%20...](http://dmitry.gr/index.php?r=05.Projects&proj=07.%20Linux%20on%208bit)

------
oregontechninja
I recently switched to openSUSE from a Debian based background. I gotta say
I've never been happier. My hardware (HP x360 2-in-1 with intel i3-6100u) is
supported where I had to fiddle with some configurations in Ubuntu just to get
the wifi going. It's so much faster than Windows and Ubuntu, and easy on
development. Highly recommend for users looking for something slightly more
advanced than Ubuntu or Debian.

------
icedchai
My first Linux box was a 386SX laptop with 3 megs of RAM and a 50 meg HD, back
in 1993 or so. I started with SLS Linux, running kernel 0.99.10. Later, I got
a 486DX (100 mhz) and moved up to Slackware. Fun times!

------
agumonkey
While we're at it, I grabbed a grid laptop (not the compass), an actual 386
based machine, is there anything recent I can run on that ? or should I just
write a asm monitor and bootstrap emacs from there ?

~~~
Narishma
There are DOS versions of emacs.

------
dmoo
Just for comparison os/2 v2.1 requires 386sx 4mb ram and 20-40mb disk space
according to the box.

------
jankotek
I ran Delphi 1 IDE on such thing, long long time ago :)

------
watertorock
Oh the good old days

------
gcb0
why bother? by the time you get it running the way you want you will be hit by
the 2038 bug. /rimshot

