I think running a vintage DOS system is popular because there is a lot of DOS games. Linux doesn't have as much hardware/OS-dependent nostalgic software.
Few months ago, somebody did a series of live streaming events on bringing up a 486-based tablet PC (which happened to be an old voting machine) with modern linux. Kernel turned out to be the easy part. Booting grub from BIOS that doesn't support LBA addressing (CHS only) - a bit harder. Running X11 on hardware without PCI - ridiculously hard:
Indeed, Slackware still defaults to LILO/eLILO and it works perfectly fine on modern hardware, older hardware from LILO's heyday should be no issue at all.
I still hang on to a PIII based Dell Latitude laptop from 2001 and Slackware -current runs surprisingly well on it (along with BeOS 5.1 from my original disc, QNX RTOS, OpenBSD, NetBSD, and a few other obscure OSes from its generation to today).
Swapping hard drives, yes. Slackware boots on the original Windows 98 hard drive alongside Windows, and I have two other drives. One has BeOS 5.1, the other is my test drive I use to try out other OSes (NetBSD is on it right now if I remember correctly, but it hangs during boot sometimes). PATA laptop drives are getting scarce but I do have a PATA-SD adapter lying about that works in a few OSes and I have no shortage of SD cards due to my Raspberry Pi addiction.
Yes, eLILO was made for this purpose. I still prefer it to GRUB, though EFISTUB is an option as well for those who don't want or need either, as long as your particular UEFI supports it.
To add a fun story where Linux saved my live. Back in the 90‘ we had a Clipper / dBASE based DOS app used for capturing orders in a call center after TV commercials. In this case a prime TV show to generate donations. Full house with >100 agents busy. Then the Novell Netware server crashed, and was unable to mount the disks.
We managed to switch the users to an older server so they could continue to work.
But it first seemed the HDD and files got corrupted and unrecoverable by disk tools from Netware. We thought of using a commercial recovery service, but this would cause delay and cost $$$$.
So I removed the disks from Netware, fired up a Linux PC, connected the HDD to the Adaptec SCSI (Luckily install prior for a CD drive).
The file system was not mountable, but something like dd /dev/sdb1 |strings „JJJJMMDD“ discovered lots of salvage records.
Sure. It is disconnected from power 99.9% of the time. I only fire it up when required. For convenience I used a dedicated external network print server (you know, the printer is centronics only, and centronics long ago vanished for thevsake of usb on PCs). This print server consumed about 10-20 watt, much more than the printer which was actually one of the first with power saving / standby.
The print server has been replaced by an usb-2-centronics dongle recently to reduce energy consumption further.
An about 25 year old laser printer running almost flawlessly mechanically, with latest MacOS and Windows 10 OS, supporting PCL6 and PS is a thing. He is on the 3rd toner cartridge (at least 5 years old).
Only needed for rare cases of government mandated written docs like passenger locator forms.
Paper transport has been unreliable almost from day 1 based on dried up rolls and paper.
About the same era I was working on my industry year at a UK computer company. I was mostly working with the spiffy new Pentiums, but had a spare 486 machine to play with Linux. The complete SLS (I think, though it may have been Slackware) fitted nicely onto a box of 3.5" disks (50 in total?)
Downloading it was a nightmare though - there was no TCP/IP connection available to me, but I could use the X.25 based email package. Attachments weren't an option, but you could send email to a file hosting server (funet.fi perhaps?) and it would split the requested file into as many 64K UUEncoded emails as necessary in response. Reassembling them (given the clunky email software I was working with) was a distressingly manual process... but I eventually collated and copied the complete set of disk images to floppy and installed them on the lavish 100Mb drive of the 486.
I also recall the fun (?) of trying to get the right monitor sync info for the XConfig file, and the superstition of `sync; sync; sync` that must have been long out-dated by the time I actually got my hands on this machine (though I did play around a little with the boot/root disk combination before that).
I sometimes feel a pang of nostalgia for all that stuff, but you can take my 1Gb network connection, hidpi monitor, and multi-terrabyte SSDs out of my cold dead hands!
Edit: Afterthought to give a little extra perspective on when this was: Around the same time I signed up for a Beta program on some Microsoft projects and boxed copies (with manuals) of "Daytona" and "Chicago" turned up in the post!
I also ran Slackware on a 486DX. I remember it taking hours to compile a kernel.
I upgraded around 98' to a Pentium II and was blown away when I could compile a kernel in 2 minutes!
Yep, I clearly remember it took just about 8 hours to compile a kernel on a 486 with 4MB of RAM. Upgrading to 16GB was a $400 proposition at the time, but when I finally got new hardware, I was shocked to realize this whole kernel-compiling thing was supposed to take minutes.
In 1996, as a teenager, I had a ThinkPad laptop with a 486SX, 4 MB of RAM, and a 3.5" floppy drive. There was something weird about the floppy drive in that laptop that prevented stock Linux of that time from being able to work with it. But I was determined to get Slackware installed. Back then, Linux had the UMSDOS filesystem, which implemented a POSIX-capable filesystem on top of a directory tree on a DOS partition. And there was a DOS program called loadlinn that could boot into Linux from DOS. So I first installed Slackware using UMSDOS onto the DOS partition on my mother's PC, then transferred the linux directory tree from her PC to my laptop. I don't remember if I did that transfer using floppies or a null modem cable. Finally I removed the linux directory from my mother's PC. I did all of this while the rest of my family was away from home, so they never knew.
I later learned that I could add "floppy=thinkpad" to the kernel command line to enable support for the floppy drive in my ThinkPad model. Then I got brave and resized my DOS partition, using one of the free DOS-based partitioning tools available at the time, so I could have a real Linux filesystem.
I went that route on a school PC in 1998. There was no floppy drive, so I installed a Linux distro (also Slackware, iirc) onto the Windows partition, then resized the Windows partition with Partition Magic and used the existing Linux as a bootstrap for a fresh install on its own partition. It was so incredibly magical. No one had any idea I was doing it, and I felt part of the hacker culture :) I tinkered with it for a few of months at least, and eventually was compiling my own kernels, playing with boot/swap partitions, etc. Never got X to work, though.
Ah, those were the days. There is a long list of dmesg outputs from linux on many old systems, while not as old as the 486, there is an AMD K6/2... and sparcs!
In ~2006 I was gifted a 486 desktop by my neighbour, it was a Mitac 486 running Windows 3.1 and DOS. It came with a matching VGA monitor. It had a floppy drive, 160MB hard disk and DIN keyboard. The mouse was fitted to a serial port. There was no sound card; sound was achieved by a driver that somehow bunged PCM through the PC speaker.
Unfortunately it didn't survive a household clear out 3 years later, and that fills me with regret. Maybe I could've been trying my own projects on it now. I always liked the relative simplicity of the OS and hardware.
A 486 can handle X just fine. 486's were our main X11 desktop machines at the office in the mid 90's (it has been the year of Linux on the desktop for me since 1995). The challenge is more that most modern X clients won't play well with a slow, memory constrained machine.
> A 486 can handle X just fine. 486's were our main X11 desktop machines at the office in the mid 90's (it has been the year of Linux on the desktop for me since 1995). The challenge is more that most modern X clients won't play well with a slow, memory constrained machine.
I remember when X switched from monolithic server to modular one. I had to buy new GPU because S3 I had wasn't supported. I have bought ATI.
It's pretty cool to get an up-to-date Linux working on such old hardware but I get the impression this kind of thing is going to get harder to do with the major distributions dropping support for 32 bit x86. I've been using NetBSD with older hardware.
Most distributions already don't support a 486 anymore. For example, Debian dropped support for Pentium with Stretch (2017). And support for 486 was dropped in Jessie (2015). 386 support was dropped with Sarge (2005).
As far as i know slackware will not boot on a 486 since some time (14.0 ?) because the kernel or glibc is compiled using instructions for later processors.
It's more about whether the kernel retains support for 486. I wonder how many people are still using the platform actively? Or is it just hobbyists at this stage. If no-one is using it I think the kernel devs would drop support. Though perhaps Linus has a soft spot for old x86s specifically :-)
AIUI, the Linux kernel only dropped 386 because it was getting unworkable to maintain the SMP code for it. Perhaps support could be reintroduced, limited to single-core machines (no SMP support in the kernel configuration) only. Of course it would mostly be useful as a proof of concept, but the 386 is a very well-understood architecture nowadays so that would definitely have some merit.
This is one of the major reasons why I love Hacker News because of small side passion projects like this. At Hacker News we don't ask why, we ask why not!
I get real nervous about posting personal retrocomputing projects here to be honest :)
I just spent most of my free time in the last week trying to get the Rust compiler to run on a K6-2/500. Had a bunch of trouble because one of the newer x86 extensions (CET) chose opcodes which decode as NOPs, and therefore are considered safe to include in binaries for older processors. Unfortunately, they're only NOPs on i686 or newer, and the K6s are i586 processors. It was mind-numbing because even if you explicitly tell the compiler to output/optimize for a K6-2 or Pentium (-march=k6-2 or -march=pentium) it's still outputting the CET opcodes. You have to pass -fcf-protection=none for them to go away. Super annoying.
Benchmarking it was pretty funny, because compiling one of my personal Rust projects is about 500 times slower than my TR 1950X desktop. Compiles in 7.5 seconds on the Threadripper but takes 67 minutes on the K6-2/500. So much progress in 18 years (K6-2/500 in 1999 -> TR 1950X (4 GHz) in 2017).
This is really cool, even if you didn't post I'm glad you mentioned it in a comment. :)
I remember compiling Linux kernel on my Cyrix 486SX 25MHz (the one with a disabled-by-default L1 cache!) and it took an hour. Got it on a P60 and it was like 5 minutes.
Another one of my silly retro computing projects: https://github.com/teknoman117/m68k-fpga-bridge. I wanted to try and make an MMU for it, hence the 68010 specifically (which added some additional data to the bus error exception to allow restarting the failed instruction).
I also managed to get someone on utsource to sell me a tray of 386EX33s for like $2 a pop so eventually I can make some 386 systems. I managed to track down a few of the old IIT 3C87 FPUs that had the hardware matrix by vector multiply so I'm going to try to make some 3D renderer if I ever get around to putting it together.
I wanted to make a cycle-accurate 286 system once, just because it was such an interesting architecture. Protected mode, but 16 bit, and 16MB max RAM, but with segment:offset addressing. What's not to love about all of that?
Hardware multitasking and context switch on interrupt as well.
Admittedly I didn't live through that time period, but reading about them, they are quite interesting. It seems that the main reason they were considered "brain-dead" was because you couldn't run 8086 native and 286 native software at the same time, and backwards compatibility and interoperability started becoming something people considered very important.
Interesting enough that I went and bought a static core 286 (the 25 MHz Harris one) to play with. Since it's a static core I can run it at whatever frequency I want, even if that is only a few hertz.
I really need to get into the habit of writing about the side projects I do. It probably would help me get over documentation-block at work as well. I write it obviously, but it always feels like pulling teeth...
That’s how I started out running Linux! Downloading a bunch of floppies from a BBS over a 16.8k USR HST modem. It was like a magical world when I first installed it. I also had a giant paper book that explained how to use it. For some reason the vi instructions in the book baffled me, but emacs seemed normal.
Six months later I finally got the disks for X11. My mind was blown. Real multitasking - not like DESQView or OS/2.
os/2 was preemptive but had that single message queue so some people shrug it off - pretty common issue with computers prior to multi core systems.
i ran a bbs on os2 and it was awesome. IBM sponsored my bbs as teamos2 and mustang software sent me wildcat! and i was the first bbs in houston to offer linux for download
Even though I was installing from HDD (dual boot, as I recall), I had to download disksets at 14.4kbps. I remember setting a kitchen timer for 14 minutes for each ZModem xfer.
The paper book you had reminds me of the very thick stack of printed papers that is the Gentoo installation guide circa 2005. It was my first foray into Linux and I, for macho reasons, went with Gentoo.
I think I gave up after a day, tried Fedora, and settled on Ubuntu.
I remember when Linux finally got "good enough" in the early 90s and I switched from SCO Xenix and SCO Unix to Linux. Many people ran Linux on 486 machines. Other than the nostalgia of seeing the old boot loaders and boot screens, there's nothing special about this "feat"
> Many people ran Linux on 486 machines. Other than the nostalgia of seeing the old boot loaders and boot screens, there's nothing special about this "feat"
Many people ran Windows on 486. But it was Windows 3.x, or 95 at most. If you managed to get Windows 10 to boot on one, surely that would be a feat...
I had a 486DX laptop that I ran Linux on from about 1995-1999, I probably tossed it around 2001 when the battery was pretty dead and the HDD was dying.
In some ways that was some of the best times for Linux on the desktop in my experience. Windows and Mac were such an unreliable mess at that point that Linux seemed very competitive at the time. A lot of the advanced hardware integration in Win/Mac hadn’t happened yet and Linux was very lean and mean and reliable. Both KDE and Gnome appeared in 1997 IIRC and the desktop was decent even if some apps weren’t as good.
My machine was 75mhz, 12MB RAM, 250mb HDD, 800x600 color LCD that had poor refresh. It got me through most of my college CS programming projects, though I eventually built a Linux tower too. X was good on that laptop the first few years but was really slow by 1998.
I was reading a bunch of these comments thinking "winmodems were terrible". Thanks for that.
I remember carefully selecting modems. Most of the PCI modems in popular retail shops were winmodems so getting one that used the ISA bus was the first step. But even that was not the safest bet. Online shopping was nothing like it is today, so getting a known good model was more difficult.
Back in the day, I specifically chose an external serial (RS232, not USB) modem precisely to avoid Winmodems. I still have my V.92 Zoom somewhere, though I no longer even have a landline to use it. Somehow, I don't think anything fancier than 1200 bps would work over a VoIP connection, and even that would probably be unusable without error correction.
The safest bet was to use external serial modems. Which usually meant Zyxel or USR, hence $$$. I remember having to settle on 28.8k USR Sportster (as opposed to the then already-common 33.6k - USR wouldn't fit the budget then).
I had a USR 56K V90 non-voice external modem. That thing was reliable as a tank. Never powered off, never dropped when connected. Remember guessing the download speed by looking at the blinking speed of lights on it.
I just remembered compiling an early 2.0.xx kernel on an old 386DX AT&T server that was given to me when I was a teenager in the 90s. It spent hours doing it and I loved watching gcc take several seconds to compile each file! I also recall that the hard drive in that thing must have weighed at least 40lbs. Those were fun days!
Yeach. Yeah I had two of those when they were being thrown out. MCA was a really horrible bus between ISA and PCI. I recall it not wanting to boot unless you installed drivers for all your cards into the BIOS, or something.
So not only did your OS need drivers, but your BIOS did too.
I may misremember.
Compiling the kernel was basically an overnight operation, IIRC.
But yeah they were built like tanks. Even the power switch felt like you were turning the power back on to the fences in Jurassic Park.
For me, on my 386DX 24Mhz with 8MiB RAM, it took about 20minutes late 92 or early 93 (SLS 1.0 -- pre 1.0 kernel), but I had to leave X11, as otherwise the machine would swap to death.
That may have been later, thus with a bigger kernel, but on older hardware. It was probably 386 and 486s back in maybe 2.0/2.2 kernel era.
For the specific machines in question I set up some sort of RAID0 between two 60MB SCSI drives, to be able to do much.
The reason I say overnight may be because I had machines with specs like that a few years later than you. I did run Linux to some extent since 1994 (Slackware 2.0), but don't remember the kernel compiling aspects of back then at all.
But it's a good point. I was not comparing latest kernel to latest (or even necessarily median) kernel at the time.
That Gotek looks like gold. I hadn't heard of it before. The CF-IDE and SCSI-SD are super useful on their own, but the Gotek looks like it works in some places that really lack for options.
Compact Flash cards are indeed pretty useful in old PCs. One just needs to be careful to buy the "industrial" variants that present themselves as a fixed disk to the system. Some operating systems won't install to common consumer CF cards believing them to be removable disks.
A handy tool for booting from CD-ROM is Plop Boot Manager. It installs itself into the boot sector and can manage booting from the disk, CD drive, and even USB on systems that ordinarily wouldn't support it. Plus it can be configured to have a cool animated starfield background...
CF cards can operate in three modes: memory mode, PC Card/IO mode, and IDE/fixed disk mode. Since CF cards were originally a type of portable storage for cameras, etc., it makes sense for them to be treated as removable devices. One would plug it into a computer, download the files, then eject the card. The OS would like to know its removable so it can make any writes immediately and not buffer or cache them like it might do for a fixed disk.
Some cards, usually marketed as "industrial", support a fixed disk mode. This one for example can be set to fixed disk by grounding pin 9 (output enable):
+1, this has been keeping my old Thinkpad T42 running in silence for years. Great write-up about testing different CF cards on a Thinkpad X40 in 2013: https://www.daniel-boehmer.de/thinkpad-cf/
Dating myself here ... I ran Linux on my 386SX black and white LCD laptop (including X windows!) back in the early Slackware days 1992-1994.
It was easier to do that back then than now... :)
Oh,and a grad student friend of mine warned me in 93... "That Web stuff is addictive"... so I avoided it for another 3-6 months and stuck to FTP sites and a bit of gopher/WAIS. :)
Same, and I remember it was solid as a rock. Took a little while to get the Hayes modem working so it could act as dial-up ISP, but once I did, it never failed. I left it running headless in a server closet - I like to believe it's still running to this day.
Running X in 8 bits with colormap switching was fun. Now everything is 24 bits. Fractint was much cooler in 8 bits ( color cycling). Now obtaining a fractal with a limited number of distinct colors is a challenge.
I set up a SLIP (later replaced by PPP) gateway on a 386SX running Slackware, connected to a 14K4 modem back in 1993. It served as our company's main internet gateway until late 1995.
The title of this post really had me do a double-take. "Of course Linux can run on a 486, it's fine on a 386". Just need the right version.
Of course it can, 486s were common in Linux's early heyday. During my senior year of high school and freshman year of college ('97-'99) I ran Debian Slink on an IBM 486SX. X ran a little slow on it so I used it in console only mode. I mostly used it to do compsci homework. Before I settled on Debian full-time (still using it to this day) I used Red Hat, I think v5 (the original numbering, before RHEL). And before that probably Slackware on floppies. I eventually got an AMD K6-2 which ran a lot faster...
Of course, this article is about running modern Linux, but Debian Slink is still there to download and install and I'm sure it works just peachy.
The section on configuring the kernel really gives me nostalgia as I used to build my own kernels back then, something I haven't done in years.
I ran a 486 as an internal web server in the law office I worked at in the early 2000s. Don't remember any of the system details, but it ran very nicely until at least 2006.
By the time I got into installing Linux (1996+), I always seemed to be able to find salvageable pentium machines 166Mhz and above. But, my sister ended up returning my old AMD 486 DX4 120Mhz after they bought a new computer. I threw FreeBSD on it for a bit. It ran really well! I'll forever miss this era of computing. The internet was brand new, machines were often Frankensteins built out of spare parts. Computer Shopper was 2 inches thick with a thousand ads for parts from places like Dirt Cheap Drives.
In 1995, I was stationed at an Army base about 10 miles from the DMZ in Korea, and for the first time in my life I saved up enough money to build a computer from modern parts instead of scavenging them from thrift stores and dumpsters. So I went AWOL for a day and went down to a place in Seoul called the Yongsan Electronics Market. To my young American mind, this was a place straight out of a William Gibson novel. Imagine a multi-storey sprawling mall covering about three blocks, with modern stores selling the latest LG stuff at the center, but in the alleys and passageways you might run into a pile of cases being scrapped, or an old man pulling a cart full of dead hard drives, or turn a corner and find someone hand building 20 video cards on a plastic table. But I knew what I was there for, and I bought the parts for a 486DX4/100mhz, plus a used monitor and keyboard, and brought them back on the train. Somewhere I acquired a Slackware Linux CD, and when I got it all put together it was like a dream. I count that era as when CPUs got powerful enough that we just had extra processing power for the little details. But I digress. On the first night I had it, I decided to leave it running overnight and set up a cron job to wake me up for morning formation. Of course, it froze up in the middle of the night and I woke up late and got yelled at.
I really wish cities in the US had those kind of sprawling electronics markets. So cool and useful. Like if you just need a single SPDT switch instead of a 20 pack on Amazon… you can’t do that right now.
eBay is a far better source for electronic components than Amazon. You can source single switches. The cheapest are direct from China with 1mo shipping times, but there are US sellers as well.
We used to have a monthly computer show and sale in the DC area. It was like this but in tents at the fair grounds. It was heaven. What an incredible time to come of age alongside modern technology coming of age. I still have bins of computer bits just in case. Like 3.5”IDE to 2.5”IDE ribbon cable adaptors and shit like that.
Fry's was the closest thing we had, and it was thinly spread at the best of times (particularly outside of California). It didn't really even make it into the pandemic; I remember walking into the Downers Grove, IL store in the Christmas 2019 season and feeling strange at how few cars there were in the parking lot. I walked in, and was shocked at the state of what was an obviously failing store that gave me the willies. I half-expected to run into zombies. Looking back, I'd have to call it a portent of 2020.
Between the implosion of Fry's, and Radio Shack not quite lasting long enough to capitalize on the maker movement, it's pretty well online ordering or nothing.
I visited silicon valley in the mid-nineties from Australia, Fry's was like a magical wonderland compared to the pathetic offerings we had. I went a little nuts and bought enough parts to build a machine just out of their bargain bins.
I've often wondered why those places disappeared but then you remember nobody really builds PCs or other electronic stuff except as a hobby and most people are running laptops that can't be upgraded anyway.
Shipping kills the deal, especially with used stuff that isn't worth much. An old workstation may cost $50 but the shipping is another $50 on top when you buy it on Ebay. At the same time, people are throwing out record amounts of ewaste that is higher-end than the gear I currently have on my desk. Really wish there was a local market here similar to those Asian ones.
For me it was the MIT swapfest[0], every 3rd sunday of the month april-october. I don't know what happened to it since the pandemic & also I moved out of the area, but it was amazing for getting fantastic little odds&ends and components. Since it grew out of ham radio, it generally had parts and tools you needed for fixing electronics.
Thing with Linux as much as I used it over the years, it's still no where near as compatible with weird hardware as windows. Windows just seems to be able to handle whatever hardware I've ever thrown at it.
> Windows just seems to be able to handle whatever hardware I've ever thrown at it.
Other than the very first few versions of Windows, the true reality is most probably the opposite: whatever hardware you've thrown at it is able to handle Windows. That is, both the hardware and its software (driver, firmware) have been designed for and tested with Windows.
You had better "salvage" options in 96 than I did. The Pentium 166 was newly released in 1996. 486SX33 was easy to come by in 96 for me, though, and it was easy to get slackware running on, too. Though I did let the smoke out of one monitor with a bad X modeline.
You're right. The first machine I installed Linux on wasn't my own. It was a friend's Pentium, and he had partitioned a drive. It was 98/99 before I was regularly trying out distros from Cheapbytes, Linux Mall, etc. My dad's company closed their doors in 99/2000ish so that would have been when I was finding those Pentiums.
makes me remember when i installed slackware 1.0 on the family's 386 when my dad bought a fresh 486dx. ah the joy of getting an X server running and recompiling kernel!!
Technically Linux could once upon a time run on a 386, but because the kernel is a non-modular spaghetti-code mess, they had to deprecate 386 support to fix something else. It's only a matter of time before 486 is gone too.
I like the potential your comment has even though it's wrong on every point, it is interesting to go back and understand why 386 support was removed.
Since the days of 386 support, the kernel has only become much more modular and portable. It quite possibly supports more platforms and CPU architectures and families than any other OS ever written. Almost certainly true if you restrict it to a multitasking >= 32-bit OS with memory protection and virtual memory.
Many architectures and ports that have been removed or not merged were not due to being technically incapable of supporting the port but due to lack of interest.
If 486 support goes away, it won't be because suddenly the code has become unmaintainable after being fine for 25 years since the 486 was obsolete! It will because nobody has a machine to test or verify fixes on (although QEMU has improved this situation), or because the kernel or the x86 port decides to adopt a new feature which is more difficult to implement older CPUs (cmpxchg8b as another post mentioned).
So your post is totally misinformed and wrong. So with that out of the way here is the 386 removal changeset:
Net code change is fewer than 400 lines removed, much of it in boilerplate and config options changing.
"This tree removes ancient-386-CPUs support [which] plagued us with extra work whenever we wanted to change SMP primitives, for years."
There were no issues with spaghetti. They can and did maintain it just fine for many years. It was not removed to fix a bug, it was removed for lack of interest in doing the work to maintain it. And the extra work was not because of spaghetti it was because it required independent implementations of SMP primitives. As you see from the code change it was likely not the code itself that was the headache, but the testing of it.
> Technically Linux could once upon a time run on a 386
That's a really strange way to phrase it too. A 386 was the very first thing Linux was written to run on. There is no "technically" about it.
Ah I see, my instincts were wrong. Usually the complexity of the kernel is the root cause of problems. In this case, the rate of churn is the problem. Kernel devs want to change SMP primitives frequently, and having to go back and think about the 386 paradigm is a barrier to that goal. CPU manufacturers want to ensure that Linux uses their CPUs at maximum efficiency, so SMT primitive tweaking is a fact of life.
My first job at computer store in high school I worked without pay initially just to get parts to build a 486-DX with it wonderful floating point unit so I could finally play Falcon 3.0 properly.
That same job taught me networking (Novell) and got me programming business apps in MS Access and the rest is history.
Unfortunately I didn't get into Linux until much later.
I did something similar with a Compaq Contura 4/25c about 15-20 years ago. It had 8 Mb RAM so I was able to install Slackware 3.9 (IIRC) via floppies with a standalone X session running Netscape. Later I put Win 95c on it (again, via floppies) which ran fairly well.
I still have my Contura in a box in a closet. Along with a PCMCIA network card, the docking station and the 20MB RAM upgrade. Used it up until ~2010 when I got a similarly tiny and inexpensive EeePC. Was a nice small, cheap system that worked well enough as a dumb serial/telnet/ssh terminal for network management tasks. It was only a little bit slow to start an SSH session. Even started up fast with Linux or FreeBSD. OpenBSD was rather slow to boot.
I didn't have much reason to bother with X11. Text utilities always got the job done, including for web browsing needs thanks to links.
Apparently they meant to say "modern Linux on a 486SX" as, obviously, Linux ran just fine on a 486 back when all this stuff was new. (Mine was a 486DX/33, but with 4GB of RAM. Compiling a kernel took 8 hours, but I digress.)
150 comments
[ 1.1 ms ] story [ 226 ms ] threadWith Linux, you can just keep your ancient programs and hardware running on modern systems.
https://diode.zone/w/kMhja4oBUvP6CScsiDZP38
I still hang on to a PIII based Dell Latitude laptop from 2001 and Slackware -current runs surprisingly well on it (along with BeOS 5.1 from my original disc, QNX RTOS, OpenBSD, NetBSD, and a few other obscure OSes from its generation to today).
But then (U)EFI is an OS in itself, you can boot Linux directly from it, no bootloader needed:
https://wiki.archlinux.org/title/EFISTUB
Would it be accurate to describe (U)EFI as being like MS-DOS (i.e. single-tasking), but running in protected mode?
Had running Linux as web proxy until about 2001. Interesting to see that what was quite normal at that time has become to a topic of interest again.
We managed to switch the users to an older server so they could continue to work. But it first seemed the HDD and files got corrupted and unrecoverable by disk tools from Netware. We thought of using a commercial recovery service, but this would cause delay and cost $$$$.
So I removed the disks from Netware, fired up a Linux PC, connected the HDD to the Adaptec SCSI (Luckily install prior for a CD drive). The file system was not mountable, but something like dd /dev/sdb1 |strings „JJJJMMDD“ discovered lots of salvage records.
This literally saved my ass and the company.
The print server has been replaced by an usb-2-centronics dongle recently to reduce energy consumption further.
An about 25 year old laser printer running almost flawlessly mechanically, with latest MacOS and Windows 10 OS, supporting PCL6 and PS is a thing. He is on the 3rd toner cartridge (at least 5 years old).
Only needed for rare cases of government mandated written docs like passenger locator forms.
Paper transport has been unreliable almost from day 1 based on dried up rolls and paper.
Downloading it was a nightmare though - there was no TCP/IP connection available to me, but I could use the X.25 based email package. Attachments weren't an option, but you could send email to a file hosting server (funet.fi perhaps?) and it would split the requested file into as many 64K UUEncoded emails as necessary in response. Reassembling them (given the clunky email software I was working with) was a distressingly manual process... but I eventually collated and copied the complete set of disk images to floppy and installed them on the lavish 100Mb drive of the 486.
I also recall the fun (?) of trying to get the right monitor sync info for the XConfig file, and the superstition of `sync; sync; sync` that must have been long out-dated by the time I actually got my hands on this machine (though I did play around a little with the boot/root disk combination before that).
I sometimes feel a pang of nostalgia for all that stuff, but you can take my 1Gb network connection, hidpi monitor, and multi-terrabyte SSDs out of my cold dead hands!
Edit: Afterthought to give a little extra perspective on when this was: Around the same time I signed up for a Beta program on some Microsoft projects and boxed copies (with manuals) of "Daytona" and "Chicago" turned up in the post!
I later learned that I could add "floppy=thinkpad" to the kernel command line to enable support for the floppy drive in my ThinkPad model. Then I got brave and resized my DOS partition, using one of the free DOS-based partitioning tools available at the time, so I could have a real Linux filesystem.
Loadlin.exe wasn't even a terrible solution for dual boot with win9x... I may have even scripted a boot menu in autoexec.bat at some point.
http://www.dimlight.org/number9/dmesg_index.html
The TRI-m in that list was a 486, although not modern linux. http://www.dimlight.org/number9/dmesg/dmesg_machz.html
Unfortunately it didn't survive a household clear out 3 years later, and that fills me with regret. Maybe I could've been trying my own projects on it now. I always liked the relative simplicity of the OS and hardware.
The 36 pin connector on the sound card was probably a scsi cd-rom connector. They used to put them with the sound card :)
I remember when X switched from monolithic server to modular one. I had to buy new GPU because S3 I had wasn't supported. I have bought ATI.
http://www.slackware.com/install/sysreq.php
I just spent most of my free time in the last week trying to get the Rust compiler to run on a K6-2/500. Had a bunch of trouble because one of the newer x86 extensions (CET) chose opcodes which decode as NOPs, and therefore are considered safe to include in binaries for older processors. Unfortunately, they're only NOPs on i686 or newer, and the K6s are i586 processors. It was mind-numbing because even if you explicitly tell the compiler to output/optimize for a K6-2 or Pentium (-march=k6-2 or -march=pentium) it's still outputting the CET opcodes. You have to pass -fcf-protection=none for them to go away. Super annoying.
Benchmarking it was pretty funny, because compiling one of my personal Rust projects is about 500 times slower than my TR 1950X desktop. Compiles in 7.5 seconds on the Threadripper but takes 67 minutes on the K6-2/500. So much progress in 18 years (K6-2/500 in 1999 -> TR 1950X (4 GHz) in 2017).
I remember compiling Linux kernel on my Cyrix 486SX 25MHz (the one with a disabled-by-default L1 cache!) and it took an hour. Got it on a P60 and it was like 5 minutes.
Good times.
I also managed to get someone on utsource to sell me a tray of 386EX33s for like $2 a pop so eventually I can make some 386 systems. I managed to track down a few of the old IIT 3C87 FPUs that had the hardware matrix by vector multiply so I'm going to try to make some 3D renderer if I ever get around to putting it together.
I like retrocomputing too, but more virtually: https://jexer.sourceforge.io/evolution.html
I wanted to make a cycle-accurate 286 system once, just because it was such an interesting architecture. Protected mode, but 16 bit, and 16MB max RAM, but with segment:offset addressing. What's not to love about all of that?
Admittedly I didn't live through that time period, but reading about them, they are quite interesting. It seems that the main reason they were considered "brain-dead" was because you couldn't run 8086 native and 286 native software at the same time, and backwards compatibility and interoperability started becoming something people considered very important.
Interesting enough that I went and bought a static core 286 (the 25 MHz Harris one) to play with. Since it's a static core I can run it at whatever frequency I want, even if that is only a few hertz.
https://imgur.com/gallery/LKAh7fB https://gist.github.com/teknoman117/342b43db8b79652c1c91e78e...
Things to keep me sane during the pandemic isolation :)
I remember compiling Linux kernel on my AMD 386SX 25MHz. It took a whole day (only awake hours, so probably around 12 hours or so).
Six months later I finally got the disks for X11. My mind was blown. Real multitasking - not like DESQView or OS/2.
i ran a bbs on os2 and it was awesome. IBM sponsored my bbs as teamos2 and mustang software sent me wildcat! and i was the first bbs in houston to offer linux for download
I think I gave up after a day, tried Fedora, and settled on Ubuntu.
Many people ran Windows on 486. But it was Windows 3.x, or 95 at most. If you managed to get Windows 10 to boot on one, surely that would be a feat...
In some ways that was some of the best times for Linux on the desktop in my experience. Windows and Mac were such an unreliable mess at that point that Linux seemed very competitive at the time. A lot of the advanced hardware integration in Win/Mac hadn’t happened yet and Linux was very lean and mean and reliable. Both KDE and Gnome appeared in 1997 IIRC and the desktop was decent even if some apps weren’t as good.
My machine was 75mhz, 12MB RAM, 250mb HDD, 800x600 color LCD that had poor refresh. It got me through most of my college CS programming projects, though I eventually built a Linux tower too. X was good on that laptop the first few years but was really slow by 1998.
Hard not to be nostalgic over that time but things are so much better now. One command with AWS CLI and I can spin up a Linux box in 3 seconds today.
I remember carefully selecting modems. Most of the PCI modems in popular retail shops were winmodems so getting one that used the ISA bus was the first step. But even that was not the safest bet. Online shopping was nothing like it is today, so getting a known good model was more difficult.
Google images on those external ones from USR took me back a bit though. I didn't have one of those but I saw them.
Here's an eBay item that is pretty much exactly what I had back then: https://www.ebay.com/itm/294597619526?mkevt=1&mkcid=1&mkrid=...
Yeach. Yeah I had two of those when they were being thrown out. MCA was a really horrible bus between ISA and PCI. I recall it not wanting to boot unless you installed drivers for all your cards into the BIOS, or something.
So not only did your OS need drivers, but your BIOS did too.
I may misremember.
Compiling the kernel was basically an overnight operation, IIRC.
But yeah they were built like tanks. Even the power switch felt like you were turning the power back on to the fences in Jurassic Park.
Yeah, I think you do.
> Compiling the kernel was basically an overnight operation, IIRC.
When, on what hardware?
Who was it who complained that compiling the Linux kernel took always ten minutes, regardless of hardware generation? (which of course, isn't entirely true: https://openbenchmarking.org/test/pts/build-linux-kernel)
For me, on my 386DX 24Mhz with 8MiB RAM, it took about 20minutes late 92 or early 93 (SLS 1.0 -- pre 1.0 kernel), but I had to leave X11, as otherwise the machine would swap to death.
That may have been later, thus with a bigger kernel, but on older hardware. It was probably 386 and 486s back in maybe 2.0/2.2 kernel era.
For the specific machines in question I set up some sort of RAID0 between two 60MB SCSI drives, to be able to do much.
The reason I say overnight may be because I had machines with specs like that a few years later than you. I did run Linux to some extent since 1994 (Slackware 2.0), but don't remember the kernel compiling aspects of back then at all.
But it's a good point. I was not comparing latest kernel to latest (or even necessarily median) kernel at the time.
Booting from CDROM was still iffy and some BIOS might not like some drives and so on as i recall.
1. The aforementioned IDE/CF adapter. It helps that it's a dumb PCB since CF speaks IDE natively.
2. A Gotek Floppy Emulator (With the FlashFloppy firmware)
3. A SCSI2SD SCSI emulator.
A handy tool for booting from CD-ROM is Plop Boot Manager. It installs itself into the boot sector and can manage booting from the disk, CD drive, and even USB on systems that ordinarily wouldn't support it. Plus it can be configured to have a cool animated starfield background...
https://www.plop.at/en/bootmanager/download.html
Some cards, usually marketed as "industrial", support a fixed disk mode. This one for example can be set to fixed disk by grounding pin 9 (output enable):
[PDF] https://resources.winsystems.com/datasheets/cflash-g-xxxm-i-...
It was easier to do that back then than now... :)
Oh,and a grad student friend of mine warned me in 93... "That Web stuff is addictive"... so I avoided it for another 3-6 months and stuck to FTP sites and a bit of gopher/WAIS. :)
Prophetic declaration of the day. I'm envisioning a great hacker t-shirt: "That Web stuff is addictive... stick to FTP (a friend, 1993)"
The title of this post really had me do a double-take. "Of course Linux can run on a 486, it's fine on a 386". Just need the right version.
Of course it can, 486s were common in Linux's early heyday. During my senior year of high school and freshman year of college ('97-'99) I ran Debian Slink on an IBM 486SX. X ran a little slow on it so I used it in console only mode. I mostly used it to do compsci homework. Before I settled on Debian full-time (still using it to this day) I used Red Hat, I think v5 (the original numbering, before RHEL). And before that probably Slackware on floppies. I eventually got an AMD K6-2 which ran a lot faster...
Of course, this article is about running modern Linux, but Debian Slink is still there to download and install and I'm sure it works just peachy.
The section on configuring the kernel really gives me nostalgia as I used to build my own kernels back then, something I haven't done in years.
Between the implosion of Fry's, and Radio Shack not quite lasting long enough to capitalize on the maker movement, it's pretty well online ordering or nothing.
I've often wondered why those places disappeared but then you remember nobody really builds PCs or other electronic stuff except as a hobby and most people are running laptops that can't be upgraded anyway.
[0] http://w1mx.mit.edu/flea-at-mit/
Thing with Linux as much as I used it over the years, it's still no where near as compatible with weird hardware as windows. Windows just seems to be able to handle whatever hardware I've ever thrown at it.
Other than the very first few versions of Windows, the true reality is most probably the opposite: whatever hardware you've thrown at it is able to handle Windows. That is, both the hardware and its software (driver, firmware) have been designed for and tested with Windows.
I miss Dirt Cheap Drives.
Laughs in Tanenbaum
Since the days of 386 support, the kernel has only become much more modular and portable. It quite possibly supports more platforms and CPU architectures and families than any other OS ever written. Almost certainly true if you restrict it to a multitasking >= 32-bit OS with memory protection and virtual memory.
Many architectures and ports that have been removed or not merged were not due to being technically incapable of supporting the port but due to lack of interest.
If 486 support goes away, it won't be because suddenly the code has become unmaintainable after being fine for 25 years since the 486 was obsolete! It will because nobody has a machine to test or verify fixes on (although QEMU has improved this situation), or because the kernel or the x86 port decides to adopt a new feature which is more difficult to implement older CPUs (cmpxchg8b as another post mentioned).
So your post is totally misinformed and wrong. So with that out of the way here is the 386 removal changeset:
http://lkml.iu.edu/hypermail/linux/kernel/1212.1/01152.html
Net code change is fewer than 400 lines removed, much of it in boilerplate and config options changing.
"This tree removes ancient-386-CPUs support [which] plagued us with extra work whenever we wanted to change SMP primitives, for years."
There were no issues with spaghetti. They can and did maintain it just fine for many years. It was not removed to fix a bug, it was removed for lack of interest in doing the work to maintain it. And the extra work was not because of spaghetti it was because it required independent implementations of SMP primitives. As you see from the code change it was likely not the code itself that was the headache, but the testing of it.
> Technically Linux could once upon a time run on a 386
That's a really strange way to phrase it too. A 386 was the very first thing Linux was written to run on. There is no "technically" about it.
That same job taught me networking (Novell) and got me programming business apps in MS Access and the rest is history.
Unfortunately I didn't get into Linux until much later.
I didn't have much reason to bother with X11. Text utilities always got the job done, including for web browsing needs thanks to links.
Wonder how long it took to sequentially scan 4GB of RAM