20 ms·
4MB Laptop How-To: How to put a “grown-up” Linux on a small-spec laptop (2000)
- baobrien 9y agoThe 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 9y agoAnd 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/scripts/extract-vmlinux https://raw.githubusercontent.com/torvalds/linux/master/scri... 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 9y agoI wonder how small a minimal bootable kernel, with all the drivers in modules, would be.
- voltagex_ 9y agoDoesn't directly answer your question but https://tiny.wiki.kernel.org/ https://tiny.wiki.kernel.org/
- isostatic 9y agoDoes anyone else remember toms root and boot? Fully functioning Linux machine on a floppy.
- DanBC 9y agoYes, 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.net/rb https://web.archive.org/web/20160120122627/http://www.toms.n...
- khedoros1 9y agoA friend and I used to compete on kernel size. Research the kernel features we actually used, which would be necessary during boot, etc. This was either late 2.4 kernels or early 2.6 ones. I don't remember for sure, but I think we hit about 800KB, and would've had to start adding more modules into the initrd to get smaller.
- voltagex_ 9y agohttps://sourceforge.net/projects/mulinux/ https://sourceforge.net/projects/mulinux/ is still around, but was last updated in 2014.
- leeoniya 9y ago2004, actually https://sourceforge.net/projects/mulinux/files/iso/ https://sourceforge.net/projects/mulinux/files/iso/
- voltagex_ 9y agoYou're right, but I wonder what "Last Update: 2014-06-27" is referring to.
- duskwuff 9y agoI'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 9y agothey 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.
- walrus01 9y agothis 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 9y agoAt 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)
- walrus01 9y agoa little bit later than that, but I remember installing OpenBSD by 1.44MB boot floppy and then bringing up the network, retrieving the rest by the ftp tool built into the installer.
- acidburn1995 9y agoMy 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 9y agoMy 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.
- itomato 9y agoToday I use Buildroot for all my tiny Linux needs. Still, it's tough to fit in 256MB with a modern kernel and Xorg.
- gcb0 9y agowhy bother? by the time you get it running the way you want you will be hit by the 2038 bug. /rimshot
- andreiw 9y agoGood 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 9y agoArgh, 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.
- isostatic 9y agoNowadays if you said "this random stranger got in touch on the internet then fingered me" the response would be somewhat different.
- watertorock 9y agoOh the good old days
- LukeShu 9y agoWow, 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.
- emersonrsantos 9y agoMy Pentium 100 MHz and 16MB RAM running Slackware Linux was the envy of the lab in 1995.
- krylon 9y agoHuh. 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 9y agoQuake 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 9y ago> 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. ;-)
- iuguy 9y agoI went to check the *BSDs and even OpenBSD needs 32mb of RAM for the 386 port. FreeBSD needs a whopping 96mb!
- pjmlp 9y agoThe first PC where I installed Slackware 2.0 was a Pentium 75 MMX with 8MB and 512 MB HDD.
- deleted 9y ago[deleted]
- eschaton 9y agoNetBSD 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.
- klez 9y agoIf 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 9y agoThe 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.
- squarefoot 9y ago4MB is overkill. What about 640K RAM on a 8088? http://elks.sourceforge.net/ http://elks.sourceforge.net/
- minxomat 9y agoToo many bits. Try 8: http://dmitry.gr/index.php?r=05.Projects&proj=07.%20Linux%20on%208bit http://dmitry.gr/index.php?r=05.Projects&proj=07.%20Linux%20...
- Jaruzel 9y agoElks looks fun. I'm thinking it results in a basic OS layer that provides access to the 'standard' I/O (parallel, serial, vga, hdd) ? Much like a box that only has Dos 6.22 on it ?
- eschaton 9y agoIf 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.
- agumonkey 9y agoWhile 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 9y agoThere are DOS versions of emacs.
- avian 9y agoCirca 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 9y agoI 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).
- jankotek 9y agoI ran Delphi 1 IDE on such thing, long long time ago :)
- Yetanfou 9y agoI 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 9y agoInteresting 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 9y agoI 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...
- pjc50 9y agoI 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 9y agoI 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 9y agoMy 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)
- amiga-workbench 9y agoI don't suppose you saw Lenovo's announcement regarding their "retro" anniversary ThinkPad. Its going to be dire.
- Yetanfou 9y agoHm, 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.
- aninteger 9y ago
- tluyben2 9y agoFor 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 9y agoOur 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
- c3833174 9y agoReminds 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.
- NoGravitas 9y agoIn 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.
- dmoo 9y agoJust for comparison os/2 v2.1 requires 386sx 4mb ram and 20-40mb disk space according to the box.
- kronos29296 9y agoTo 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 9y agoThe 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 9y agoYou 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.
- dodo6502 9y ago
- oregontechninja 9y agoI 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.
- cr0sh 9y agoWhile 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/
- icedchai 9y agoMy 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!