Fun. I started using Linux at 0.98 (forgot the patch level), in 1992.
Had a modem and connected to a lot of bulletin boards. I felt very much a like "WarGames" hero, calling phone numbers and all :)
I still remember the day when I used ppp to connect to the actual Internet for the first time. After a lot of trial and error, I finally pinged www.linux.org, and it resolved the hostname and returned the ping. I was silent first, and all I could say then was "whoa".
My first net connection was using slirp via a shell account. Slirp was a CSLIP emulator that ran in user space on the shell box on the remote side.
Back in those days multi user shell machines were quite common and some of the first ISPs offered Internet access that way.
Mine was an ISP called Internet Access Cincinnati that gave each user shell on a Sun Sparc 10 running SunOS (pre-Solaris). You also got POP e-mail and a -username home folder accessible via web.
Ha, Running slirp in the ISP shell box was also how I first got beyond bbs'ed onto the wild west of the internet.
Also getting online was one of my first motivations for using Linux, as the Trumpet winsock networking library for Windows 3.1 was terrible and crashed the entire computer all the time.
It's odd how Linux has become the only stable thing in this world. You turn it on and you know that over time it will only become better without any bad intentions.
This is so important to me on this day and age. Most new technology and OS seem to have an agenda. They want to "push" me to do things: buy an iPhone, buy an office subscription , etc. Using Linux is a breath of fresh air in that respect for me. I just want my toaster tu toast bread. I don't want it to tell me what bread should I buy.
I do remember there was some point in the mid/late 90s where I had to do a lot of research before buying [desktop] computers and hardware - would this specific network card be supported? Would this graphics card work with X11? etc. Maybe it was trauma and paranoia from the WinModems of the day, that were never going to work.
But by the early 2000s we seemed to switch to a world where I just assumed Linux would support my new hardware, be it a used Zip-drive, a web-cam, or whatever.
These days I'm the same. I fearlessly buy random motherboards, and hardware toys, and just assume they work. So far I've been lucky, but it is a real testament to the driver-developers. The lone developer who makes one pull-request against the kernel solely to add the magic numbers to recognize yet another kind of SD-card, or similar. Really benefits us all, even if they never do another thing.
Around that same era Windows wasn’t exactly problem free with device drivers either. A fresh install on random hardware would often require hunting down Windows drivers online. Though of course those drivers did always existed because of Windows’ market share.
I spent many years using 10BaseT and then later wired ethernet, which meant I avoided WiFi for the longest time.
Now you reminded me that I bought a wifi dongle around 2012/2013 and ended up having to return it because I couldn't get it to work. But the very next one I bought as a replacement worked first time. So perhaps I'm having rose-tinted memories!
LinModem for me! I got my US Robotics 33.6 (with X2 software upgrade-ability) working and was so amazed. Then my dad's ISP got rid of a bunch of external serial 56k modems and I was in heaven. Those "just worked". Oddly, it was probably 6 months later that DSL started making a splash and I was trying to figure out ways to use my Alcatel USB "stingray" model with Linux. I ended up buying an external "gateway" that required me to set the MTU to 1492 instead of 1500. It screwed up my Redhat 7.2 downloads so badly. The checksum would never match so the install would always fail.
Somehow I still refer to these as "the good old days".
Oh, the dreaded WinModems! And other Linux-incompatible hardware. To help with this research of which hardware would work there were several dedicates sites that attempted to collect info from Linux users on which drivers to use, etc. It's all so much easier now.
I've had multiple Nvidia cards across multiple installs of Linux, never had an issue once. Just install the Nvidia driver and it works. IMO the supposed problems of using Nvidia on Linux are wildly overblown.
I used NVIDIA on sway/hyprland on Wayland on NixOS with a variety of driver versions last year and still had awful flickering that made it basically unusable. After much consternation, I fixed it by buying an AMD card, and it's worked smoothly since.
The author of nouveau is working for NVIDIA now. And redhat is writing their nova driver to the mainstream. I really wish this would mean using NVIDIA is going to be a breeze in the near future.
"The lone developer who makes one pull-request against the kernel solely to add the magic numbers to recognize yet another kind of SD-card, or similar. Really benefits us all, even if they never do another thing."
The kernel is only a small part of the overall Linux ecosystem.
These days even GNU is a small part.
systemd, Wayland, Xorg, PulseAudio, CUPS, KDE, Gnome, etc are all maintained outside of Linus and GNUs governance.
What FOSS operating systems (and not even Linux specifically) offers is freedom to choose. But the effort of using some alternatives can be significant.
So I wouldn’t say Linux is immune to having its “well poisoned” because if Linus.
> What FOSS operating systems (and not even Linux specifically) offers is freedom to choose. But the effort of using some alternatives can be significant.
True. On the other hand, Linux (the kernel) does provide the foundation. You can replace most of components above it and you will still have hardware support for a wide range of hardware. Even if you were to develop an entirely new kernel, the Linux kernel can serve as a proxy for documentation for undocumented or poorly documented hardware.
I realize that places a disproportionate amount of emphasis on the device drivers when the kernel offers so much more and an incredible amount of effort goes into the ecosystem outside of the kernel, but the reality is that most alternative operating systems grow beyond the academic toy phase. Part of the reason is the difficulty in attracting potential users, including developers, if those users have to use said operating system in a virtual machine.
Linux isn’t a unicorn here. Sure FreeBSD has pretty good driver support. In fact back in the 00s I had fewer problems with FreeBSD WiFi drivers than Linux.
I don’t know what the driver story is like for all of the other main BSDs but DragonflyBSD is a really interesting platform with some real innovations in the kernel.
Technically XNU, the macOS kernel, is open source too. Though there doesn’t seem to be much community effort behind that.
There’s also OpenIndiana. Which itself has some really novel ideas.
Then you have smaller projects that have compatibility layers, for example Haiku can run some Linux and FreeBSD systems. ReactOS and Windows driver support. But even if you exclude them in favour of larger, more stable projects, there’s still plenty of options out there.
I do also think you’re placing far too much emphasis on the kernel here. For example some platforms don’t guarantee ABI compatibility between releases, instead requiring their standard libraries being used as the kernel entry point (eg Darwin instead of XNU, or libc on some UNIXes). This is why people often talk about GNU/Linux, Darwin or NT as more than just a kernel.
And that’s before we address the massive elephant in the room that is all the abstractions that sit on top of the userland. For example how so many applications these days are basically running inside a virtual machine called a “web browser”. These days a modern browser is almost like an OS in its own right.
Don’t get me wrong, I’m not taking anything away from Linux nor the Linux kernel. But its main strength is its momentum rather than it being unique.
That's true, but I agree, why would anyone make a XNU-based OS? Upstream wouldn't accept your forked changes and if you wanted to implement any of the upstream changes over time, that would get difficult as the fork diverged. I really don't think there's anything special in XNU. What exactly does it do well vs. BSD, Illumos, or NT?
100% agreed on BSD, though I'd opt for OpenBSD myself. Either way works!
All of us aren't going to stay forever on the planet, and whoever replaces Linus and the core committee has their own set of values, and goals for the project, there are zero garantees that everything stays the same no matter what.
Thankfully most of the corporate interests that have already seeped into Linux have been a net positive. If corporations remember the lessons of the 1990's, it will remain that way.
(In the 1990's businesses either had to develop and maintain their own operating system, or license it from someone else. Both routes are expensive. There were also collaborative efforts for larger operating systems, none of which seemed to reach positive conclusions since the businesses who owned the rights to the operating systems were ultimately in direct competition with each other. For whatever reason, the open source collaborative model used by Linux has been successful. In all probability it is because nobody "owns" Linux in the conventional sense.)
Corporate interests are not bad per se, you would have to point to something nefarious that it has led to. Most people seem to think corporate interest in Linux has made it better by raising the level of investment to the extent that we can use it on most commodity hardware.
On the minus side of the equation, large controversial changes, more often outside the kernel but still important nevertheless, do get pushed through by people who are employed at important companies.
If your fulltime job is Linux it does give you an ability to influence what happens that others who are earning their daily bread some other way lack. You can use that ability to ride over some objections.
For some people the goal of Linux is to become the world's OS. I used to think this but I realise now that if it did, then it would become static and conformist. This is because the experience of using it would have to be stable and common so that all the users who don't care about Linux per se wouldn't have to keep relearning how to use it or at least would only need to relearn 1 way. So there would have to be the world linux distro, probably run by some bullying company that would keep app developers, hardware vendors in line.
We'd be complaining about it like we might about MS or Apple. I like Linux for the wrong reason - I like it because there's so much choice. Simplicity is about eliminating choice.
> For some people the goal of Linux is to become the world's OS.
This is extremely worrying. There already is enough linux monoculture in critical network infrastructure due every manufacturer except Juniper seemingly putting their penguin eggs into one basket. I can only hope there will be some common sense brewing for the future before linux experiences major failure and Pluto's Kiss starts to feel a bit too real for comfort.
I worry that it's a Linus thing - he still has to step in and call for order now and again. I don't know for sure if it will remain on the trajectory of always getting better when he retires.
I think there was a discussion regarding this last year where linus was saying that they are already thinking of who will call shots after him so I think even though right now it's very much a linus thing, I think they are already prepared for the next person to lead it in case we ever need it
It’s the right mix of open source but with so many huge well resourced users that it’s in everyone’s interest to improve it. It’s like in this specific case the tragedy of the commons works backward.
We should study the social and economic dynamics and game theory of this and try to replicate it. Someone should do a whole game theory Ph.D thesis on Linux and how it manifests an un-tragedy of the commons.
It’s a weird feeling to be young enough to never have experienced a world without Linux, but be close enough in time to its creation that many of the people involved are still around. My entire professional career has mostly revolved around it in some capacity. My entire life even since age like 12? It’s pretty crazy to think about the impact it has had on my life
I feel similar for Computer Science as a whole field. It's weird to think that many of its founding fathers were still during a significant portion of my life.
Claude Shannon 2001
Edsger Dijkstra 2012
John McCarthy 2011
Niklaus Wirth 2024
Konrad Zuse 1995
Alonzo Church 1995
Jim Gray 2007/2012
Grace Hopper 1992
Even Alan Turing could still have been alive during my lifetime hadn't he been murdered.
Friedrich L. Baur, who died in 2015, still had an office at my university when I studied there and I often passed by, saw his name plate, and wondered if this was all real.
No, words mean things. If they didn't actually pull the trigger, it wasn't murder. That isn't to say it was ok to treat Turing the way they did, because it wasn't ok. But it's important to not pollute the meaning of words by misusing them for greater rhetorical impact.
I remember the early days of Linux well. There was quite a bit of interest for it at the University of Waterloo in the mid 90s, but there was also a lot of talk of issues getting it to install, or getting it to run stably on certain systems (albeit not uncommon for any OS at the time). Those were the days of having to know how to compile your own kernel and fight with XFree86.
Linux distributions like Red Hat really squashed those concerns within a short time and made things much easier on all fronts. Their documentation was also excellent.
By the late 1990s, Red Hat was as common as Solaris, AIX, and IRIX at the university, but most still considered it inferior to Solaris. And now, RHEL is the main *nix system used there (a few use Debian).
Tried installing Solaris in a VM recently, and the installer immediately and starkly brought back memories of the one from a Red Hat derivative I didn’t realize I even remembered. I’m not old enough to have been involved with commercial Unices at the time, but even looking back it appears that Red Hat knew very clearly who they were aiming at.
I think this is consistent with big universities at the time. I remember when Alpha was becoming discontinued, reinstalling RedHat on those did give Linux a boost as a daily driver for researchers.
Linux definitely breathed life into that great platform. I still have an Alpha Personal Workstation 600au in my basement running Red Hat from that time period.
I had a Jensen (DECpc AXP 150) and an Alpha Multia; there were the first targets for Windows NT 3.51 on Alpha, but I had early Alpha Linux running on them. These might still be buried in the basement of my parents' house. Not as cool as the OSF/1-based DECserver 2100 "Sable" at work. I loved that machine.
For the biggest part of my life it seemed that all these technical accomplishments were the work of untouchable geniuses, but reading this story is also very telling about the value of long-term friendship and financial/societal stability to support each other's explorations.
Yeah. Speaking swedish especially in the coastal area of Finland is quite common. My father in law mixes both languages together in a funny way in his talk. It's kind of funny, but also pretty common among the Finnish-Swedes...
Nope! Slipped me by and I'm a language nerd who literally worked for Nokia (only one trip to the mothership though) and spent my teens deep in the Finnish demoscene and the rest of the 90s knee-deep in Linux.
classic, was on the search for it. I can remember, there was a file on the ftp sites called linus.au (the original I presume, since .ogg hasn't been invented at the time), there was a non-english version as well (finnish?). glad it survived somehow. thank you for the link
> The first Linux distribution was also started in 1992: Softlanding Linux System or SLS. The next year, SLS morphed into Slackware, which inspired Ian Murdock to start Debian in 1993, in order to explore a more community-based development structure. A few other distributions would follow in the years to come.
One thing I often think about in the early days of Linux is it's competitors. The article mentions "commercial Unix was so expensive it was easier to write your own". Which is largely true.
However there is also Coherent Unix. I remember adverts for it as the full back page of so many magazines of the day, for $99. I always was on the fence about buying it. One of the big drawbacks of Coherent was that it didn't have any networking.
Then, Linux came out, and it was shockingly shortly after that that Linux surpassed Coherent, and Coherent vanished seemingly overnight.
Reading a review from Dec 1990[1], it doesn't seem that brilliant:
"Coherent remains true to Unix's roots and eschews local area networking, graphical user interfaces, menus, mice, and many of the other amenities that present-day DOS users and Unix users have come to expect of modern software."
It goes on to describe that "learning Unix from Coherent would be a bumpy road" and "nor could you realistically use Coherent to automate a small business".
Coherent was closed-source, so you couldn't take an imperfect incomplete system like Linux and help improve it. Linux attracted contributors early on not because Linux at the time was so great, but because people liked to work on this kind of thing.
$99 is ~$230 today. I know software used to be a lot more expensive in general (e.g. $25 for PKZIP in the late 80s), but $230 for a bare-bones OS for playing around is only "cheap" relative to Enterprise Unix™® pricing.
Did it not have some kind of ncurses functionality? So much of what I see about software from the eighties (mostly via movies) seems operable with just an unnetworked unix terminal.
I was a customer and it was very good, I use to use kermit to dial into a Sun System at work and it would call me back so I would avoid charges. That was to get USENET and general Internet access. Fun times. It is too bad they had to fold, be to be honest by 1995 the writting was on the wall,
When they folded, I went to Slackware, which I still use. Back then, Linux was changing almost daily.
Coherent had one thing that Linux could not do, but via USENET I asked and someone supplied a patch for me within days. It would allow me to use 2 monitors with 2 cards on my 386sx, a BW and a VGA just like what Coherent was able to do.
People were far more accessible back then until the fortune 500 companies got involved in the 2000s.
Yes, people were really accessible when the community was small. I remember calling, by phone, some (also German) guy about a printer problem - my Samsung printer's Epson emulation apparently wasn't good enough for my distro's Epson driver. It must have been in '98 or '99. He was either the printer guy at S.u.S.E. (name at the time) or maintaining a relevant driver. We chatted for about an hour and I remember being impressed by how willing to engage he was and by his collection of workstation-class computers. But my printer problem remained unsolved :D
As a burnt out contributor, my first couple chats debugging for users were beautiful. But then they just kept coming and coming in droves upon droves and I had to set up a wall to let me focus on the work, which soured my relationship with users, which became an ever-increasing stress...
Bless those contributors who were able to keep it up. They're the ones who should have Big Tech salaries, not those of us who gave up and sold our souls to Ad tech.
Also, the BSDs were emerging around the same time, in particular 386BSD [1]. Linus was famously quoted as saying that if it had been available in the early days, he would probably never have made Linux [2].
The first release of 386BSD was in 1992, so we are talking about a short time window of 1-2 years here. And of course FreeBSD and NetBSD forked from it shortly after that.
I remember installing FreeBSD in 1994. Ot was soooo cool to me as a 13 year old to startx and have a Unix like environment in my computer. I feel freebsd was superior to Linux,but as with other things, apps availability made the win
Indeed, this is really interesting question about Linux and Linus in the early days - it obviously wasn't just the price of the alternatives or the overall concept of ~Unix-on-x86 - there was something different about Linus Torvalds' approach even early on, and one can see glimpses of it in these early stories.
ahh yes, coherent. where i cut my teeth on unix style systems. it supported memory protection on 286 cpus (true segmentation!) but had no ip stack (uucp was supported though). no x or graphics.
pretty good documentation in a big doorstop they called "the lexicon.", a decent c tool chain, a custom port of emacs (microemacs they called it).
only other unix i played with before that was some port on the atari st, which incidentally was a first class platform for the mark williams c compiler (mwc was the company behind coherent).
it fit on two disks. where i had a massive stack of floppies for slackware (kernel 0.99pl2). linux was more fun- it was open source by and of the internet.
This is assuming that many of the folks who put their time and effort into the Linux kernel would have instead worked on Hurd. The thing is, nothing was stopping them from making that choice - other than maybe the popularity of Linux. I would love to see that timeline though.
I had the minimum machine to run Linux 0.95 on: a 386sx16 with 4mb of memory and a 40mb drive. I actually had only 2mb but I recall Linux installed but barely ran. I upgraded it with SIPPs so I could run Linux properly. It was incredibly fun to have a Unix box on my desk in high school. But actually, I’ve built a 30 year career on that experience. A heartfelt thanks to Linus and all the contributors who have (so far!) supported this project.
Was used to using pdp11/vax based systems moving to Suns and other workstations, and for a number of reasons the initial launch floppies of linux felt "under cooked" compared to the BSD systems also being released for larger Intel chips with MMU. But, the killer side of this was the linux code ran on smaller Intel boxes, probably a little better than Minix did.
when 386BSD got it's act together, it became less apparent but very quickly impetus got behind the distro "scene" and Linux took off like a rocket.
Those first early days, no real network stack, minimal desktop support, it was line-and-ball. Mainly, I think the BSD lawsuit/licence issues was the negative energy source in BSD occupying the ground.
I had an IBM PC/RT at the time running the 4.3bsd port which was just lovely. But such clunky hardware. PCs were coming into their own and IBM didn't want to keep playing in multiple OS and had AIX coming through and the ROMP chip was getting old. Once graphics display cards on PCI emerged along with decent cheap ethernet cards, and then ethernet on the motherboard I think it was game over. (although for obvious reasons most people's experience of network was modem on serial)
That's how you start. It's also important to recognize that much of the UNIX and eventually POSIX framework was laid out. They were filling in a small gap and making it free. Which is really the most amazing part to me.
[2023], but that doesn't matter much. Fantastic article! Great to see what development was like at the start - I'd always heard anecdotes, like its humble beginnings and the MINIX argument, but I'd never had context for them before.
I knew the very basics of the story, but did not know/hadn't put it together in my mind that kernel 1.0 appeared in mid-1994, and not somewhere in the 1991-1993 timeframe as I had vaguely assumed. Certainly, the Red Hat Linux 2.1 (kernel 1.2.13) I installed in December 1995 (making my home 100% Microsoft-free ever since) felt pretty feature-complete.
Great read. My first Linux distro was, I think, Slackware, around kernel version 2.2 - 2.4. I played with a _lot_ of distros; I think Sorcerer was the most esoteric. I settled on Gentoo, as one does, and spent more time compiling / breaking / fixing than I did using anything. I eventually valued stability over bleeding-edge, and have happily been using Debian ever since.
From the linked Wikipedia article on Tannenbaum x Torvalds debate:
> but 5 years from now everyone will be running free GNU on their 200 MIPS, 64M SPARCstation-5
I find it interesting how academic circles back then were really not betting on the longevity of x86.
It was not believed UNIX workstations were to be disrupted as they were with Google plans of cheap PC hardware running GNU/Linux on x86.
Maybe had BSD not be fighting AT&T, or Microsoft bothered with providing a proper POSIX experience in Windows NT insteaf of making the minimum for goverment contracts, and Linux history would have been much different, including its impact on cheap UNIX servers.
It's amazing how good and stable it got really fast. I was able to install it and use it with X and for everything in 1994 while still in high school. It's been my only OS ever since and set the path for my career and life.
Oh, I thought it's still the early days considering that just the other day the whole system went into a death spiral where everything graphical slowly ground to a halt and then froze completely and I had to pull the power cord. Or considering that building my project in debug (yes, bog standard CMake debug build with GCC) causes a complete kernel hang about half the time and I have to pull the power cord again.
Linux (as in the kernel + whatever user space you choose) is about 90% done. Now it just needs the other 90% to be taken care of to move beyond alpha....
"The year of the Linux desktop is always 10 years from now" ;-)
Slackware 11 was all I had in PC as univ student circa 2006-2008 (yep, just said goodbye to Win XP). All the tools I need to do assignments were provided in 3 CDs. At that time, fast internet connection was considered a bit expensive.
I disagree with the notion that Microsoft is sabotaging the Linux desktop via WSL. In my opinion, I believe it’s the Sisyphean development churn of the FOSS desktop ecosystem that held the Linux desktop back. However, the industry-wide move away from native apps toward Web apps, combined with growing dissatisfaction with Windows in some circles and with the high cost of switching to a Mac (especially for those who need more RAM than what Apple sells by default), has provided a large lifeline for the Linux desktop.
The Linux desktop has had a rough history. The original problem was the original KDE using a non-FOSS Qt, which led to the development of GNOME, splintering the FOSS desktop ecosystem into two competing desktops, spreading already-thin resources. Granted, things were good in the mid-2000s, when GNOME 2 and KDE 3 were current, and when it appeared that the Linux desktop would be poised to make significant inroads against Windows XP, just like how Firefox in 2005 formed a formidable challenge to Internet Explorer. Even OpenOffice appeared to seriously challenge Microsoft Office at the time.
In my opinion, there have been many setbacks since the late 2000s. GNOME 3’s very controversial changes led to the splintering of the GNOME/Gtk community (Cinnamon and MATE). KDE 4 was not well received, though KDE 5 is widely praised. GNOME and other projects (though not KDE) was heavily influenced by mobile computing paradigms led by a misguided belief that desktops will become obsolete. The transition from X11 to Wayland has been quite rocky, to say the least.
Interestingly enough, what has improved the competitiveness of the Linux desktop these days has been the shift away from native apps and toward both the Web and Electron apps. While as a long-time former Mac user I lament the decline of native apps and the loss of consistency, apps built on Web technologies are cross-platform or even platform-agnostic. If one doesn’t need native Windows and macOS apps, then the barrier to switching to a Linux desktop is much lower. Even the gaming situation has dramatically improved on Linux.
Without Steam's built in Proton compatibility layer no gamer would realistically use Linux.
Outside of work I'm probably 70% Linux and 30% Windows. Music production is much better on Windows, but software development is miles easier on Linux. Messing around with Ubuntu during my teenage years was a key part of my later career!
Such an inspiring read! Thanks for writing and/or sharing. One of my many future hermit projects is to hack on an early version of Linux.
------------ Please ignore just jotting down for future myself ---------------
(Actually I want to study Win NT more than Linux as it brought me good memories, but Win NT was designed as a mature product from the beginning, and even the leaked 3.5 source code is way too much for me.)
I checked the version history and 0.11 seems to be a good start. Reasons:
- 0.11 doesn't have a virtual memory or a virtual terminal, and they are among the software I'd like to implement;
- 0.11 does have the basic stuffs so I assume it is not too difficult to set it up with QEMU and QEMU-gdb;
The list of software to implement in mind:
- a Debugger (I'll probably use QEMU-gdb, but if I can write a simple step-in debugger maybe it makes it a bit easier to dogfood? Still too early though as there is no compiler on it)
- a Virtual Memory system (following the MIT xv6 lab, maybe a bit more advanced as I will complete the MIT xv6 labs before pursuing this venture);
- a Virtual terminal (not sure how much I can implement, maybe just a basic one with limited control sequence support);
- a USB driver (not sure if it's possible for 0.11, I have never written a driver before);
- a mouse driver (again probably too difficult for me);
- a LOT of CLI programs as warm-up. Basically simpler versions of modern ones (less switches);
- a text editor. I never liked the key layout of emacs or vim so this is going to be my own thing. I care a lot about moving caret around without using a mouse;
- a very basic GUI system. Nothing fancy, just something that can show windows and some widgets. Maybe don't even care about multiple windows. Showing one window with a menu and some buttons probably needs a lot of effort;
- a compiler/linker of a simple language (can't dogfood without an editor, a compiler, a linker and a debugger I think)
Preparations:
- I need to complete all MIT RISC xv6 labs;
- I need to figure out how to write drivers for USB and mice;
- I want to investigate how X11 and Win32 GUI were implemented and figure out the architecture;
- I need to figure out how to write terminals and text editors. There are tons of tutorials online so shouldn't be too tough;
- I need to study compiler theory, just continue reading Crafting Interpreters should be good enough;
- I need to figure out a comfortable development and debugging environment;
Can probably find it on a shadow library. Getting something to boot on x86 is a little tricky, because IIRC the CPU comes up in real mode, so you have to create your own boot sector and bootloader before you can even execute your kernel.
That book + Linux inspired me to write my own OS in 1995. My goal was to have an OS that booted directly into a modern GUI and fitted (with basic tools) onto a single 1.4Mb floppy, which I did manage.
Thanks for the introduction to this book. AFAIK Linux 0.11 does have its own bootloader in the form of `bootsect.S` but I'm not an OS guy so definitely could be wrong.
Now that I think more about the project, probably the first obstacle is how do I compile the thing...someone must have tried that, or the book must have a section about that. But I'll study xv6 first, just to give me some practices.
And I'm sure you've picked up a copy of Windows Internals. Right now I'm waiting for a copy of Inside Windows NT which is the first edition of that series as well as Inside the Windows NT File System, both by Helen Custer.
Thanks man. I do have a copy of "Inside Windows NT", but I decided to study XV6 first because of its pedagogical value. It's hard even to compile the leaked NT 3.X source code.
early 90s, i286 story reminded me purchasing my i386 SX (4 MBs RAM, perhaps 20 MB HD), running DOS 5, then DOS 6 could not afford the DX edition for some reason. i286s were just phasing out then.
amazing how linux started. thanks for sharing!
It's fascinating that the name 'Linux' was actually chosen by Ari Lemmke, not Linus himself. Details like this highlight the role of community and serendipity in the history of open-source software.
Quoting Wikipedia [1], which provides a bit more details (as of 2025-03-03):
Linus Torvalds had wanted to call his invention Freax, a portmanteau of "free", "freak", and "x" (as an allusion to Unix). During the start of his work on the system, he stored the files under the name "Freax" for about half of a year. Torvalds had already considered the name "Linux", but initially dismissed it as too egotistical. [2]
In order to facilitate development, the files were uploaded to the FTP server (ftp.funet.fi) of FUNET in September 1991. Ari Lemmke at Helsinki University of Technology (HUT), who was one of the volunteer administrators for the FTP server at the time, did not think that "Freax" was a good name. Therefore, he named the project "Linux" on the server without consulting Torvalds. [2] Later, however, Torvalds consented to "Linux".
To demonstrate how the word "Linux" should be pronounced ([ˈliːnɵks]), Torvalds included an audio guide with the kernel source code. [3]
[2] Torvalds, Linus; Diamond, David (2001). Just For Fun - The Story Of An Accidental Revolutionary. New York: HarperBusiness. p. 84. ISBN 0-06-662072-4.
I was 22 years old, hacking away in Progress 4GL, maintaining data centers across the country using a combination of Quarterdesk DesqView and "Remote Control", which gave a way to control a keyboard/mouse/monitor over a modem connection.
Every field office had 2 or 3 PC's dedicated to the task of providing a "remote terminal" to our development team, so that we could dial in remotely and do administrative things to the Progress 4GL database server that was running on another dedicated system for the task, usually a fat Novell Netware server with 4 or 8 "huge" disks of 640Megabytes dedicated to the databases.
It was my job to monitor the rows and rows of PC's on our side of things, that were used for remote admin.
Honestly, I despised this job.
I'd spent most of the 80's learning C and Unix programming - my first Unix machine was a MIPS Computing Magnum pizzabox running risc/OS. $15,000 worth of machine, sitting on my desk - but yet I still had to walk down the corridor and hack around on cheap DOS PC's just to get things fixed across the country in some hellish New Hampshire closet.
At least it paid me well.
Well enough that I could go to the regular PC Computer swap meets out in Pasadena every weekend or so, and buy myself the parts needed to build a "decent computer for home" - a 486 with 8Megabytes of RAM, a few hundred megabytes of disk space. A CD-ROM drive, maybe a high-end video card and monitor capable of 1025x768 and 256 colours. A modem, so I could work from home, run my own DesqView instance, have my own multiple-terminal connections to all those troublesome field offices.
I'd also make regular (weekly) jaunts to The Opamp Bookstore, in Hollywood - one of my favourite places in all the world. It was there I'd wandered into the "Unix" section and seen some magazines and books on the MINIX operating system, and it was there that I learned about the rise of Usenet as a place to get to meet other hackers, C programmers, Unix nerds. It was also where I'd get my 2600 Magazine fix, monthly.
One day, I got my home PC finally built, booted, and running. I connected to my mailserver, wnsnews.com .. checked my mail. A fellow operator had sent me a message "Check out the minix-list, they're talking about a new unix-like kernel you might be interested in..."
So I subscribe, and lo and behold, there it was - the link to ftp.funet.fi, Linux in its very early stages. It took me about a day to download it, about a week to figure out all the various floppy disks I'd have to make to get the drivers for everything set up, and a whole weekend of faffing around to get things installed alongside my Desqview setup, on a brand new hard drive.
I was hooked. It didn't have everything - X11 wasn't ported yet - but it had just enough for me to port some of my own C code, see that things could actually work like my MIPS pizzabox, albeit on my cheaper 486, and .. maybe .. someday .. someone would port "Remote Control" or even the Desqview terminals, to this brand new 'Linux' thing.
Some months later, in the middle of being shut down entirely by my fellow grey-beard programmers, who wanted me to stop fiddling about with all the spare parts in our "Remote Control" room, I learned about this brand new Linux 'distribution', Yggdrasil.
A trip to OpAmp book shop, and there it was: the bootable floppy and the full Linux filesystem, included on CD, to turn any of our machines into a working Linux system - with X11 onboard! And, probably working, if I chose our SVGA card settings right! What a revelation! I could use my home 486 as a decent terminal for my pizzabox! I could use telnet to get into the Novell servers across the other side of the country! I could endlessly annoy my grey-beard associates with the idea that "Linux is the Future, man!", over and over again, until they finally lock me out of the Novell server and decide I was only good for Unix things, as punishment, because as they knew full well "Unix is Dead, man!"
Well, the decades have rolled by, and what a death it is. Linux is everywhere. I have used it every day since that first post on the minix-list I noticed, the one about funet.fi. I've made a living with it, and I've done amazing things, boring things, mundane things, and normal things. "Netware is Dead, Man! Desqview is Dead, Man! DOS is long gone, man!"
Well, alright, MIPS Computing didn't last long, and that pizzabox was well and truly (sadly) de-commissioned. But, with the profits I made in SoCal during the 90's, putting Linux to work from my own little consulting office in One Wilshire, I bought all the SGI toys I could want .. and I still have them.
Curious, though, that I mostly use Apples' Unix as a front-end to access them all, heheh ..
Fun. I started using Linux at 0.98 (forgot the patch level), in 1992.
Had a modem and connected to a lot of bulletin boards. I felt very much a like "WarGames" hero, calling phone numbers and all :)
I still remember the day when I used ppp to connect to the actual Internet for the first time. After a lot of trial and error, I finally pinged www.linux.org, and it resolved the hostname and returned the ping. I was silent first, and all I could say then was "whoa".
Oh fun times. :)
My first net connection was using slirp via a shell account. Slirp was a CSLIP emulator that ran in user space on the shell box on the remote side.
Back in those days multi user shell machines were quite common and some of the first ISPs offered Internet access that way.
Mine was an ISP called Internet Access Cincinnati that gave each user shell on a Sun Sparc 10 running SunOS (pre-Solaris). You also got POP e-mail and a -username home folder accessible via web.
Slirp lives on in QEMU and container engines: https://github.com/rootless-containers/slirp4netns
Ha, Running slirp in the ISP shell box was also how I first got beyond bbs'ed onto the wild west of the internet.
Also getting online was one of my first motivations for using Linux, as the Trumpet winsock networking library for Windows 3.1 was terrible and crashed the entire computer all the time.
It's odd how Linux has become the only stable thing in this world. You turn it on and you know that over time it will only become better without any bad intentions.
This is so important to me on this day and age. Most new technology and OS seem to have an agenda. They want to "push" me to do things: buy an iPhone, buy an office subscription , etc. Using Linux is a breath of fresh air in that respect for me. I just want my toaster tu toast bread. I don't want it to tell me what bread should I buy.
This is why I dislike Ubuntu – I don't like Snaps, and I don't want them to be considered the default.
Wouldn't want to toast unauthorized bread.
You wouldn’t steal heat from a toaster.
>I just want my toaster
I think I heard the NetBSD toaster is out of support :(
But we ALL want our toasters to ask us if we want any toast
I do remember there was some point in the mid/late 90s where I had to do a lot of research before buying [desktop] computers and hardware - would this specific network card be supported? Would this graphics card work with X11? etc. Maybe it was trauma and paranoia from the WinModems of the day, that were never going to work.
But by the early 2000s we seemed to switch to a world where I just assumed Linux would support my new hardware, be it a used Zip-drive, a web-cam, or whatever.
These days I'm the same. I fearlessly buy random motherboards, and hardware toys, and just assume they work. So far I've been lucky, but it is a real testament to the driver-developers. The lone developer who makes one pull-request against the kernel solely to add the magic numbers to recognize yet another kind of SD-card, or similar. Really benefits us all, even if they never do another thing.
Even in the mid--late '00s I had to make careful purchases of things like wifi, or be stuck manually patching and compiling half-working drivers.
Bluetooth was another pain point.
But by and large, thing did still just work.
Around that same era Windows wasn’t exactly problem free with device drivers either. A fresh install on random hardware would often require hunting down Windows drivers online. Though of course those drivers did always existed because of Windows’ market share.
I spent many years using 10BaseT and then later wired ethernet, which meant I avoided WiFi for the longest time.
Now you reminded me that I bought a wifi dongle around 2012/2013 and ended up having to return it because I couldn't get it to work. But the very next one I bought as a replacement worked first time. So perhaps I'm having rose-tinted memories!
ndiswrapper anyone?
LinModem for me! I got my US Robotics 33.6 (with X2 software upgrade-ability) working and was so amazed. Then my dad's ISP got rid of a bunch of external serial 56k modems and I was in heaven. Those "just worked". Oddly, it was probably 6 months later that DSL started making a splash and I was trying to figure out ways to use my Alcatel USB "stingray" model with Linux. I ended up buying an external "gateway" that required me to set the MTU to 1492 instead of 1500. It screwed up my Redhat 7.2 downloads so badly. The checksum would never match so the install would always fail.
Somehow I still refer to these as "the good old days".
Oh, the dreaded WinModems! And other Linux-incompatible hardware. To help with this research of which hardware would work there were several dedicates sites that attempted to collect info from Linux users on which drivers to use, etc. It's all so much easier now.
Oh that softmodem that only worked on windows.
Just as long as you don't buy NVIDIA for your Linux desktop!
I've had multiple Nvidia cards across multiple installs of Linux, never had an issue once. Just install the Nvidia driver and it works. IMO the supposed problems of using Nvidia on Linux are wildly overblown.
I used NVIDIA on sway/hyprland on Wayland on NixOS with a variety of driver versions last year and still had awful flickering that made it basically unusable. After much consternation, I fixed it by buying an AMD card, and it's worked smoothly since.
The author of nouveau is working for NVIDIA now. And redhat is writing their nova driver to the mainstream. I really wish this would mean using NVIDIA is going to be a breeze in the near future.
Until that I'll buy AMD.
"The lone developer who makes one pull-request against the kernel solely to add the magic numbers to recognize yet another kind of SD-card, or similar. Really benefits us all, even if they never do another thing."
Very much so -- many drops form a torrent.
Every well can be poisoned. Linux relies on people's values and people's skills. Neither of which are immune to degradation over time.
Much like the post world war civil society, economic and diplomatic development was an exception in Human history.
Assuming the reality we have will remain forever without protection or constant maintenance effort is dangerous.
> Every well can be poisoned. Linux relies on people's values and people's skills. Neither of which are immune to degradation over time.
It's rather the opposite, combined with moral stance of Linus and it's core committee itself that has managed to kept Linux on this track so far.
The kernel is only a small part of the overall Linux ecosystem.
These days even GNU is a small part.
systemd, Wayland, Xorg, PulseAudio, CUPS, KDE, Gnome, etc are all maintained outside of Linus and GNUs governance.
What FOSS operating systems (and not even Linux specifically) offers is freedom to choose. But the effort of using some alternatives can be significant.
So I wouldn’t say Linux is immune to having its “well poisoned” because if Linus.
> What FOSS operating systems (and not even Linux specifically) offers is freedom to choose. But the effort of using some alternatives can be significant.
True. On the other hand, Linux (the kernel) does provide the foundation. You can replace most of components above it and you will still have hardware support for a wide range of hardware. Even if you were to develop an entirely new kernel, the Linux kernel can serve as a proxy for documentation for undocumented or poorly documented hardware.
I realize that places a disproportionate amount of emphasis on the device drivers when the kernel offers so much more and an incredible amount of effort goes into the ecosystem outside of the kernel, but the reality is that most alternative operating systems grow beyond the academic toy phase. Part of the reason is the difficulty in attracting potential users, including developers, if those users have to use said operating system in a virtual machine.
Linux isn’t a unicorn here. Sure FreeBSD has pretty good driver support. In fact back in the 00s I had fewer problems with FreeBSD WiFi drivers than Linux.
I don’t know what the driver story is like for all of the other main BSDs but DragonflyBSD is a really interesting platform with some real innovations in the kernel.
Technically XNU, the macOS kernel, is open source too. Though there doesn’t seem to be much community effort behind that.
There’s also OpenIndiana. Which itself has some really novel ideas.
Then you have smaller projects that have compatibility layers, for example Haiku can run some Linux and FreeBSD systems. ReactOS and Windows driver support. But even if you exclude them in favour of larger, more stable projects, there’s still plenty of options out there.
I do also think you’re placing far too much emphasis on the kernel here. For example some platforms don’t guarantee ABI compatibility between releases, instead requiring their standard libraries being used as the kernel entry point (eg Darwin instead of XNU, or libc on some UNIXes). This is why people often talk about GNU/Linux, Darwin or NT as more than just a kernel.
And that’s before we address the massive elephant in the room that is all the abstractions that sit on top of the userland. For example how so many applications these days are basically running inside a virtual machine called a “web browser”. These days a modern browser is almost like an OS in its own right.
Don’t get me wrong, I’m not taking anything away from Linux nor the Linux kernel. But its main strength is its momentum rather than it being unique.
Unfortunately Apple doesn't accept pull requests for XNU. They're more "source available", to put it under the old .NET Framework terms.
Unless I’m mistaken, XNU’s license (APSL) doesn’t forbid it being forked and reused in other projects (FOSS license compatibilities aside).
For example like how OpenIndina was forked from OpenSolaris (CDDL) when Oracle dropped OpenSolaris development and support.
APSL has been approved by the FSF which other “Source Available” type licenses aren’t.
Personally though, I’d still rather people supported (for example) FreeBSD rather than Darwin/XNU.
That's true, but I agree, why would anyone make a XNU-based OS? Upstream wouldn't accept your forked changes and if you wanted to implement any of the upstream changes over time, that would get difficult as the fork diverged. I really don't think there's anything special in XNU. What exactly does it do well vs. BSD, Illumos, or NT?
100% agreed on BSD, though I'd opt for OpenBSD myself. Either way works!
Linus isn't a renewable resource unfortunately.
> Linus isn't a renewable resource unfortunately.
The main issue i see is that we aren't really "cultivating" the next Linuses
All of us aren't going to stay forever on the planet, and whoever replaces Linus and the core committee has their own set of values, and goals for the project, there are zero garantees that everything stays the same no matter what.
Corporate interests have already seeped into Linux.
Thankfully most of the corporate interests that have already seeped into Linux have been a net positive. If corporations remember the lessons of the 1990's, it will remain that way.
(In the 1990's businesses either had to develop and maintain their own operating system, or license it from someone else. Both routes are expensive. There were also collaborative efforts for larger operating systems, none of which seemed to reach positive conclusions since the businesses who owned the rights to the operating systems were ultimately in direct competition with each other. For whatever reason, the open source collaborative model used by Linux has been successful. In all probability it is because nobody "owns" Linux in the conventional sense.)
Corporate interests are not bad per se, you would have to point to something nefarious that it has led to. Most people seem to think corporate interest in Linux has made it better by raising the level of investment to the extent that we can use it on most commodity hardware.
On the minus side of the equation, large controversial changes, more often outside the kernel but still important nevertheless, do get pushed through by people who are employed at important companies.
If your fulltime job is Linux it does give you an ability to influence what happens that others who are earning their daily bread some other way lack. You can use that ability to ride over some objections.
For some people the goal of Linux is to become the world's OS. I used to think this but I realise now that if it did, then it would become static and conformist. This is because the experience of using it would have to be stable and common so that all the users who don't care about Linux per se wouldn't have to keep relearning how to use it or at least would only need to relearn 1 way. So there would have to be the world linux distro, probably run by some bullying company that would keep app developers, hardware vendors in line.
We'd be complaining about it like we might about MS or Apple. I like Linux for the wrong reason - I like it because there's so much choice. Simplicity is about eliminating choice.
> For some people the goal of Linux is to become the world's OS.
This is extremely worrying. There already is enough linux monoculture in critical network infrastructure due every manufacturer except Juniper seemingly putting their penguin eggs into one basket. I can only hope there will be some common sense brewing for the future before linux experiences major failure and Pluto's Kiss starts to feel a bit too real for comfort.
And after every update there's something new that is broken. I suppose you mean "stable" as in "you can count on something always breaking".
I worry that it's a Linus thing - he still has to step in and call for order now and again. I don't know for sure if it will remain on the trajectory of always getting better when he retires.
I think there was a discussion regarding this last year where linus was saying that they are already thinking of who will call shots after him so I think even though right now it's very much a linus thing, I think they are already prepared for the next person to lead it in case we ever need it
It’s the right mix of open source but with so many huge well resourced users that it’s in everyone’s interest to improve it. It’s like in this specific case the tragedy of the commons works backward.
We should study the social and economic dynamics and game theory of this and try to replicate it. Someone should do a whole game theory Ph.D thesis on Linux and how it manifests an un-tragedy of the commons.
It’s a weird feeling to be young enough to never have experienced a world without Linux, but be close enough in time to its creation that many of the people involved are still around. My entire professional career has mostly revolved around it in some capacity. My entire life even since age like 12? It’s pretty crazy to think about the impact it has had on my life
I feel similar for Computer Science as a whole field. It's weird to think that many of its founding fathers were still during a significant portion of my life.
Claude Shannon 2001
Edsger Dijkstra 2012
John McCarthy 2011
Niklaus Wirth 2024
Konrad Zuse 1995
Alonzo Church 1995
Jim Gray 2007/2012
Grace Hopper 1992
Even Alan Turing could still have been alive during my lifetime hadn't he been murdered.
Friedrich L. Baur, who died in 2015, still had an office at my university when I studied there and I often passed by, saw his name plate, and wondered if this was all real.
Luckily Donald Knuth is still around.
Alan Turing took his own life on purpose or by accident, he wasn't murdered
Many believe his “chemical castration” (forced hormone therapy) caused depression first, suicide later.
Some also believe he was poisoned.
I assume that is where the “murder” comes from.
If you read up on how the UK government treated him after the war, it was essentially murder even if they didn't outright execute him.
No, words mean things. If they didn't actually pull the trigger, it wasn't murder. That isn't to say it was ok to treat Turing the way they did, because it wasn't ok. But it's important to not pollute the meaning of words by misusing them for greater rhetorical impact.
https://en.wikipedia.org/wiki/Social_murder
And what led him to take his own life?
Note the classic "Linux is a 10 year old boy" ad https://www.youtube.com/watch?v=x7ozaFbqg00
I know why you mean. It’s hard to imagine a world without the iPhone.
> More importantly for the future success of Linux was that the X11 system was ported to it, making 1992 the year of the Linux desktop.
I'm glad that's finally settled. :)
Great read!
I remember the early days of Linux well. There was quite a bit of interest for it at the University of Waterloo in the mid 90s, but there was also a lot of talk of issues getting it to install, or getting it to run stably on certain systems (albeit not uncommon for any OS at the time). Those were the days of having to know how to compile your own kernel and fight with XFree86.
Linux distributions like Red Hat really squashed those concerns within a short time and made things much easier on all fronts. Their documentation was also excellent.
By the late 1990s, Red Hat was as common as Solaris, AIX, and IRIX at the university, but most still considered it inferior to Solaris. And now, RHEL is the main *nix system used there (a few use Debian).
Tried installing Solaris in a VM recently, and the installer immediately and starkly brought back memories of the one from a Red Hat derivative I didn’t realize I even remembered. I’m not old enough to have been involved with commercial Unices at the time, but even looking back it appears that Red Hat knew very clearly who they were aiming at.
I think this is consistent with big universities at the time. I remember when Alpha was becoming discontinued, reinstalling RedHat on those did give Linux a boost as a daily driver for researchers.
Linux definitely breathed life into that great platform. I still have an Alpha Personal Workstation 600au in my basement running Red Hat from that time period.
I had a Jensen (DECpc AXP 150) and an Alpha Multia; there were the first targets for Windows NT 3.51 on Alpha, but I had early Alpha Linux running on them. These might still be buried in the basement of my parents' house. Not as cool as the OSF/1-based DECserver 2100 "Sable" at work. I loved that machine.
> Those were the days of having to know how to compile your own kernel and fight with XFree86.
It was the XF86Config modeline HOWTO that taught me how a CRT controller works.
For the biggest part of my life it seemed that all these technical accomplishments were the work of untouchable geniuses, but reading this story is also very telling about the value of long-term friendship and financial/societal stability to support each other's explorations.
TIL: Linus is a Swedish speaking Finn; and those are a thing.
This sound has lived rent-free in my head since 1994:
https://en.wikipedia.org/wiki/File:Linus-linux.ogg
Indeed, he is part of the Swedish minority in Finland... I thought everyone (on HN) already knew that?
Many Fins can speak Swedish. Around 10pc? It is an official language.
When I met Linus T in 1994/5 I asked why he spoke Swedish and not Finnish and he rolled his eyes. Was so sick of the question even then.
https://linuxjournal.rubdos.be/ljarchive/LJ/008/2867.html
Yeah. Speaking swedish especially in the coastal area of Finland is quite common. My father in law mixes both languages together in a funny way in his talk. It's kind of funny, but also pretty common among the Finnish-Swedes...
Transcoding
Nope! Slipped me by and I'm a language nerd who literally worked for Nokia (only one trip to the mothership though) and spent my teens deep in the Finnish demoscene and the rest of the 90s knee-deep in Linux.
Wow! I think he got different in his English diction much later in his life?
classic, was on the search for it. I can remember, there was a file on the ftp sites called linus.au (the original I presume, since .ogg hasn't been invented at the time), there was a non-english version as well (finnish?). glad it survived somehow. thank you for the link
You might like to see https://www.kernel.org/pub/linux/kernel/SillySounds/
Also worth a read: Just for Fun
https://www.amazon.com/Just-Fun-Story-Accidental-Revolutiona...
Read this about ten years ago. Pretty short read but highly recommended.
> The first Linux distribution was also started in 1992: Softlanding Linux System or SLS. The next year, SLS morphed into Slackware, which inspired Ian Murdock to start Debian in 1993, in order to explore a more community-based development structure. A few other distributions would follow in the years to come.
And follow they did! The Great Linux Distribution Timeline at <https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Di...> presents an impressive graph of the countless distributions that descended from Slackware, Debian, etc. This graph is still actively maintained by the community here: <https://github.com/FabioLolix/LinuxTimeline>.
One thing I often think about in the early days of Linux is it's competitors. The article mentions "commercial Unix was so expensive it was easier to write your own". Which is largely true.
However there is also Coherent Unix. I remember adverts for it as the full back page of so many magazines of the day, for $99. I always was on the fence about buying it. One of the big drawbacks of Coherent was that it didn't have any networking.
Then, Linux came out, and it was shockingly shortly after that that Linux surpassed Coherent, and Coherent vanished seemingly overnight.
https://en.wikipedia.org/wiki/Coherent_(operating_system)
Reading a review from Dec 1990[1], it doesn't seem that brilliant:
"Coherent remains true to Unix's roots and eschews local area networking, graphical user interfaces, menus, mice, and many of the other amenities that present-day DOS users and Unix users have come to expect of modern software."
It goes on to describe that "learning Unix from Coherent would be a bumpy road" and "nor could you realistically use Coherent to automate a small business".
Coherent was closed-source, so you couldn't take an imperfect incomplete system like Linux and help improve it. Linux attracted contributors early on not because Linux at the time was so great, but because people liked to work on this kind of thing.
$99 is ~$230 today. I know software used to be a lot more expensive in general (e.g. $25 for PKZIP in the late 80s), but $230 for a bare-bones OS for playing around is only "cheap" relative to Enterprise Unix™® pricing.
[1]: https://books.google.ie/books?id=JZxkO0PpksUC&pg=PT61&redir_...
Did it not have some kind of ncurses functionality? So much of what I see about software from the eighties (mostly via movies) seems operable with just an unnetworked unix terminal.
>However there is also Coherent Unix.
I was a customer and it was very good, I use to use kermit to dial into a Sun System at work and it would call me back so I would avoid charges. That was to get USENET and general Internet access. Fun times. It is too bad they had to fold, be to be honest by 1995 the writting was on the wall,
When they folded, I went to Slackware, which I still use. Back then, Linux was changing almost daily.
Coherent had one thing that Linux could not do, but via USENET I asked and someone supplied a patch for me within days. It would allow me to use 2 monitors with 2 cards on my 386sx, a BW and a VGA just like what Coherent was able to do.
People were far more accessible back then until the fortune 500 companies got involved in the 2000s.
Yes, people were really accessible when the community was small. I remember calling, by phone, some (also German) guy about a printer problem - my Samsung printer's Epson emulation apparently wasn't good enough for my distro's Epson driver. It must have been in '98 or '99. He was either the printer guy at S.u.S.E. (name at the time) or maintaining a relevant driver. We chatted for about an hour and I remember being impressed by how willing to engage he was and by his collection of workstation-class computers. But my printer problem remained unsolved :D
As a burnt out contributor, my first couple chats debugging for users were beautiful. But then they just kept coming and coming in droves upon droves and I had to set up a wall to let me focus on the work, which soured my relationship with users, which became an ever-increasing stress...
Bless those contributors who were able to keep it up. They're the ones who should have Big Tech salaries, not those of us who gave up and sold our souls to Ad tech.
This is a really important difference
Also, the BSDs were emerging around the same time, in particular 386BSD [1]. Linus was famously quoted as saying that if it had been available in the early days, he would probably never have made Linux [2].
The first release of 386BSD was in 1992, so we are talking about a short time window of 1-2 years here. And of course FreeBSD and NetBSD forked from it shortly after that.
[1] https://en.wikipedia.org/wiki/386BSD
[2] https://www.antman.se/abc-klubben/linux/linuxdoc/linus.html
I ran 386/ix [1] on a i386 PC from 1987, switched to 386BSD 0.1 in late 1992, then FreeBSD sometime in 1993.
[1] https://en.wikipedia.org/wiki/Interactive_Systems_Corporatio...
I remember installing FreeBSD in 1994. Ot was soooo cool to me as a 13 year old to startx and have a Unix like environment in my computer. I feel freebsd was superior to Linux,but as with other things, apps availability made the win
Indeed, this is really interesting question about Linux and Linus in the early days - it obviously wasn't just the price of the alternatives or the overall concept of ~Unix-on-x86 - there was something different about Linus Torvalds' approach even early on, and one can see glimpses of it in these early stories.
Hate to say but Microsoft's Xenix was so fast on a i386. Did a lot of scientific programming on it in 1991/2.
Yep! I remember that time. I ran Coherent briefly (1991 - 1992 or so) before getting into early Linux distros like SLS.
ahh yes, coherent. where i cut my teeth on unix style systems. it supported memory protection on 286 cpus (true segmentation!) but had no ip stack (uucp was supported though). no x or graphics.
pretty good documentation in a big doorstop they called "the lexicon.", a decent c tool chain, a custom port of emacs (microemacs they called it).
only other unix i played with before that was some port on the atari st, which incidentally was a first class platform for the mark williams c compiler (mwc was the company behind coherent).
it fit on two disks. where i had a massive stack of floppies for slackware (kernel 0.99pl2). linux was more fun- it was open source by and of the internet.
fun times!
It's interesting to ponder whether we would all be using GNU Hurd if Linux didn't exist.
More likely we’d all be using FreeBSD
This is assuming that many of the folks who put their time and effort into the Linux kernel would have instead worked on Hurd. The thing is, nothing was stopping them from making that choice - other than maybe the popularity of Linux. I would love to see that timeline though.
There's this amazing documentary on linux, from 2003. It's called Revolution OS. Highly recommended! https://www.youtube.com/watch?v=k0RYQVkQmWU
I second that. The best documentary I've ever seen about Linux and GNU.
I had the minimum machine to run Linux 0.95 on: a 386sx16 with 4mb of memory and a 40mb drive. I actually had only 2mb but I recall Linux installed but barely ran. I upgraded it with SIPPs so I could run Linux properly. It was incredibly fun to have a Unix box on my desk in high school. But actually, I’ve built a 30 year career on that experience. A heartfelt thanks to Linus and all the contributors who have (so far!) supported this project.
Discussed at the time (of the article):
The early days of Linux - https://news.ycombinator.com/item?id=35557848 - April 2023 (224 comments)
Was used to using pdp11/vax based systems moving to Suns and other workstations, and for a number of reasons the initial launch floppies of linux felt "under cooked" compared to the BSD systems also being released for larger Intel chips with MMU. But, the killer side of this was the linux code ran on smaller Intel boxes, probably a little better than Minix did.
when 386BSD got it's act together, it became less apparent but very quickly impetus got behind the distro "scene" and Linux took off like a rocket.
Those first early days, no real network stack, minimal desktop support, it was line-and-ball. Mainly, I think the BSD lawsuit/licence issues was the negative energy source in BSD occupying the ground.
I had an IBM PC/RT at the time running the 4.3bsd port which was just lovely. But such clunky hardware. PCs were coming into their own and IBM didn't want to keep playing in multiple OS and had AIX coming through and the ROMP chip was getting old. Once graphics display cards on PCI emerged along with decent cheap ethernet cards, and then ethernet on the motherboard I think it was game over. (although for obvious reasons most people's experience of network was modem on serial)
“ We had all the overconfidence of 20-year-old second-year university students.” - and this is how you change the world
That's how you start. It's also important to recognize that much of the UNIX and eventually POSIX framework was laid out. They were filling in a small gap and making it free. Which is really the most amazing part to me.
lwn.net - Such a beautiful website, just kind of perfect on mobile. Anyone know if it's using a commonly known CMS? builtwith doesn't glean much..
It’s a custom CMS built using Quixote.
Joe Brockmeier. Well there's a name I haven't heard in a very long time. Sean Reifschneider here, if you remember.
> The term "open source" was coined and IBM invested a ton of money in Linux development.
A relevant key point regarding why Linux actually took off, versus other UNIX clones.
And how that eventually came around with Red-Hat's acquision and its influence on GCC, GNOME, Wayland, RPM,... contributions.
[2023], but that doesn't matter much. Fantastic article! Great to see what development was like at the start - I'd always heard anecdotes, like its humble beginnings and the MINIX argument, but I'd never had context for them before.
My bad, dang just pointed this out as well:
I just came across it and didnt' realize it appeared on Hn almost 2 years before.It's fine, dupes are allowed after an amount of time.
I knew the very basics of the story, but did not know/hadn't put it together in my mind that kernel 1.0 appeared in mid-1994, and not somewhere in the 1991-1993 timeframe as I had vaguely assumed. Certainly, the Red Hat Linux 2.1 (kernel 1.2.13) I installed in December 1995 (making my home 100% Microsoft-free ever since) felt pretty feature-complete.
Great read. My first Linux distro was, I think, Slackware, around kernel version 2.2 - 2.4. I played with a _lot_ of distros; I think Sorcerer was the most esoteric. I settled on Gentoo, as one does, and spent more time compiling / breaking / fixing than I did using anything. I eventually valued stability over bleeding-edge, and have happily been using Debian ever since.
>More importantly for the future success of Linux was that the X11 system was ported to it, making 1992 the year of the Linux desktop.
Yet some people await for a second coming.
From the linked Wikipedia article on Tannenbaum x Torvalds debate: > but 5 years from now everyone will be running free GNU on their 200 MIPS, 64M SPARCstation-5
I find it interesting how academic circles back then were really not betting on the longevity of x86.
It was not believed UNIX workstations were to be disrupted as they were with Google plans of cheap PC hardware running GNU/Linux on x86.
Maybe had BSD not be fighting AT&T, or Microsoft bothered with providing a proper POSIX experience in Windows NT insteaf of making the minimum for goverment contracts, and Linux history would have been much different, including its impact on cheap UNIX servers.
It's amazing how good and stable it got really fast. I was able to install it and use it with X and for everything in 1994 while still in high school. It's been my only OS ever since and set the path for my career and life.
Oh, I thought it's still the early days considering that just the other day the whole system went into a death spiral where everything graphical slowly ground to a halt and then froze completely and I had to pull the power cord. Or considering that building my project in debug (yes, bog standard CMake debug build with GCC) causes a complete kernel hang about half the time and I have to pull the power cord again.
Linux (as in the kernel + whatever user space you choose) is about 90% done. Now it just needs the other 90% to be taken care of to move beyond alpha....
"The year of the Linux desktop is always 10 years from now" ;-)
Slackware 3.6/4.0 back in 1998-99 Never forget.
The joy of startx command working (sometimes)
Fun times.
I remember when I had to choose whether I was a slackware guy or a debian guy!
I chose slackware like many french speaking fellas around. Oh, the times.
PS: debian all the way since.
Slackware 11 was all I had in PC as univ student circa 2006-2008 (yep, just said goodbye to Win XP). All the tools I need to do assignments were provided in 3 CDs. At that time, fast internet connection was considered a bit expensive.
Now I'm happy with Debian.
> My name is Lars Wirzenius, and I was there when Linux started.
"I was there, Gandalf. I was there 3000 years ago" XD
We will always have Linux, the kernel, but the desktop experience is being sabotaged by Microsoft with WSL.
I disagree with the notion that Microsoft is sabotaging the Linux desktop via WSL. In my opinion, I believe it’s the Sisyphean development churn of the FOSS desktop ecosystem that held the Linux desktop back. However, the industry-wide move away from native apps toward Web apps, combined with growing dissatisfaction with Windows in some circles and with the high cost of switching to a Mac (especially for those who need more RAM than what Apple sells by default), has provided a large lifeline for the Linux desktop.
The Linux desktop has had a rough history. The original problem was the original KDE using a non-FOSS Qt, which led to the development of GNOME, splintering the FOSS desktop ecosystem into two competing desktops, spreading already-thin resources. Granted, things were good in the mid-2000s, when GNOME 2 and KDE 3 were current, and when it appeared that the Linux desktop would be poised to make significant inroads against Windows XP, just like how Firefox in 2005 formed a formidable challenge to Internet Explorer. Even OpenOffice appeared to seriously challenge Microsoft Office at the time.
In my opinion, there have been many setbacks since the late 2000s. GNOME 3’s very controversial changes led to the splintering of the GNOME/Gtk community (Cinnamon and MATE). KDE 4 was not well received, though KDE 5 is widely praised. GNOME and other projects (though not KDE) was heavily influenced by mobile computing paradigms led by a misguided belief that desktops will become obsolete. The transition from X11 to Wayland has been quite rocky, to say the least.
Interestingly enough, what has improved the competitiveness of the Linux desktop these days has been the shift away from native apps and toward both the Web and Electron apps. While as a long-time former Mac user I lament the decline of native apps and the loss of consistency, apps built on Web technologies are cross-platform or even platform-agnostic. If one doesn’t need native Windows and macOS apps, then the barrier to switching to a Linux desktop is much lower. Even the gaming situation has dramatically improved on Linux.
Don't forget Valve.
Without Steam's built in Proton compatibility layer no gamer would realistically use Linux.
Outside of work I'm probably 70% Linux and 30% Windows. Music production is much better on Windows, but software development is miles easier on Linux. Messing around with Ubuntu during my teenage years was a key part of my later career!
I have been using Ubuntu as my main drive for a couple of weeks and I have to admit it's still clearly not ready for the masses.
See also, by the same author: https://liw.fi/linux20
Such an inspiring read! Thanks for writing and/or sharing. One of my many future hermit projects is to hack on an early version of Linux.
------------ Please ignore just jotting down for future myself ---------------
(Actually I want to study Win NT more than Linux as it brought me good memories, but Win NT was designed as a mature product from the beginning, and even the leaked 3.5 source code is way too much for me.)
I checked the version history and 0.11 seems to be a good start. Reasons:
- There is this book (https://download.oldlinux.org/ECLK-5.0-WithCover.pdf) which follows the style of Lion's Unix v6 book and uses the 0.12 kernel as reference;
- 0.11 doesn't have a virtual memory or a virtual terminal, and they are among the software I'd like to implement;
- 0.11 does have the basic stuffs so I assume it is not too difficult to set it up with QEMU and QEMU-gdb;
The list of software to implement in mind:
- a Debugger (I'll probably use QEMU-gdb, but if I can write a simple step-in debugger maybe it makes it a bit easier to dogfood? Still too early though as there is no compiler on it)
- a Virtual Memory system (following the MIT xv6 lab, maybe a bit more advanced as I will complete the MIT xv6 labs before pursuing this venture);
- a Virtual terminal (not sure how much I can implement, maybe just a basic one with limited control sequence support);
- a USB driver (not sure if it's possible for 0.11, I have never written a driver before);
- a mouse driver (again probably too difficult for me);
- a LOT of CLI programs as warm-up. Basically simpler versions of modern ones (less switches);
- a text editor. I never liked the key layout of emacs or vim so this is going to be my own thing. I care a lot about moving caret around without using a mouse;
- a very basic GUI system. Nothing fancy, just something that can show windows and some widgets. Maybe don't even care about multiple windows. Showing one window with a menu and some buttons probably needs a lot of effort;
- a compiler/linker of a simple language (can't dogfood without an editor, a compiler, a linker and a debugger I think)
Preparations:
- I need to complete all MIT RISC xv6 labs;
- I need to figure out how to write drivers for USB and mice;
- I want to investigate how X11 and Win32 GUI were implemented and figure out the architecture;
- I need to figure out how to write terminals and text editors. There are tons of tutorials online so shouldn't be too tough;
- I need to study compiler theory, just continue reading Crafting Interpreters should be good enough;
- I need to figure out a comfortable development and debugging environment;
I always drop this book when people talk about writing or hacking their own OS etc:
https://www.amazon.com/Developing-32-Bit-Operating-System-Cd...
Can probably find it on a shadow library. Getting something to boot on x86 is a little tricky, because IIRC the CPU comes up in real mode, so you have to create your own boot sector and bootloader before you can even execute your kernel.
That book + Linux inspired me to write my own OS in 1995. My goal was to have an OS that booted directly into a modern GUI and fitted (with basic tools) onto a single 1.4Mb floppy, which I did manage.
Thanks for the introduction to this book. AFAIK Linux 0.11 does have its own bootloader in the form of `bootsect.S` but I'm not an OS guy so definitely could be wrong.
Now that I think more about the project, probably the first obstacle is how do I compile the thing...someone must have tried that, or the book must have a section about that. But I'll study xv6 first, just to give me some practices.
> I want to study Win NT
Windows NT Design Workbook:
https://computernewb.com/~lily/files/Documents/NTDesignWorkb...
Tale of Two Kernels:
https://youtu.be/HdV9QuvgS_w
And I'm sure you've picked up a copy of Windows Internals. Right now I'm waiting for a copy of Inside Windows NT which is the first edition of that series as well as Inside the Windows NT File System, both by Helen Custer.
Thanks man. I do have a copy of "Inside Windows NT", but I decided to study XV6 first because of its pedagogical value. It's hard even to compile the leaked NT 3.X source code.
early 90s, i286 story reminded me purchasing my i386 SX (4 MBs RAM, perhaps 20 MB HD), running DOS 5, then DOS 6 could not afford the DX edition for some reason. i286s were just phasing out then. amazing how linux started. thanks for sharing!
bookmarked.
It's fascinating that the name 'Linux' was actually chosen by Ari Lemmke, not Linus himself. Details like this highlight the role of community and serendipity in the history of open-source software.
Quoting Wikipedia [1], which provides a bit more details (as of 2025-03-03):
Linus Torvalds had wanted to call his invention Freax, a portmanteau of "free", "freak", and "x" (as an allusion to Unix). During the start of his work on the system, he stored the files under the name "Freax" for about half of a year. Torvalds had already considered the name "Linux", but initially dismissed it as too egotistical. [2]
In order to facilitate development, the files were uploaded to the FTP server (ftp.funet.fi) of FUNET in September 1991. Ari Lemmke at Helsinki University of Technology (HUT), who was one of the volunteer administrators for the FTP server at the time, did not think that "Freax" was a good name. Therefore, he named the project "Linux" on the server without consulting Torvalds. [2] Later, however, Torvalds consented to "Linux".
To demonstrate how the word "Linux" should be pronounced ([ˈliːnɵks]), Torvalds included an audio guide with the kernel source code. [3]
[1] https://en.wikipedia.org/wiki/History_of_Linux#Naming
[2] Torvalds, Linus; Diamond, David (2001). Just For Fun - The Story Of An Accidental Revolutionary. New York: HarperBusiness. p. 84. ISBN 0-06-662072-4.
[3] Torvalds, Linus (March 1994). "Index of /pub/linux/kernel/SillySounds" (https://www.kernel.org/pub/linux/kernel/SillySounds/). Archived (https://web.archive.org/web/20091008074754/http://www.kernel...) from the original on October 8, 2009. Retrieved August 3, 2009.
[dead]
I was 22 years old, hacking away in Progress 4GL, maintaining data centers across the country using a combination of Quarterdesk DesqView and "Remote Control", which gave a way to control a keyboard/mouse/monitor over a modem connection.
Every field office had 2 or 3 PC's dedicated to the task of providing a "remote terminal" to our development team, so that we could dial in remotely and do administrative things to the Progress 4GL database server that was running on another dedicated system for the task, usually a fat Novell Netware server with 4 or 8 "huge" disks of 640Megabytes dedicated to the databases.
It was my job to monitor the rows and rows of PC's on our side of things, that were used for remote admin.
Honestly, I despised this job.
I'd spent most of the 80's learning C and Unix programming - my first Unix machine was a MIPS Computing Magnum pizzabox running risc/OS. $15,000 worth of machine, sitting on my desk - but yet I still had to walk down the corridor and hack around on cheap DOS PC's just to get things fixed across the country in some hellish New Hampshire closet.
At least it paid me well.
Well enough that I could go to the regular PC Computer swap meets out in Pasadena every weekend or so, and buy myself the parts needed to build a "decent computer for home" - a 486 with 8Megabytes of RAM, a few hundred megabytes of disk space. A CD-ROM drive, maybe a high-end video card and monitor capable of 1025x768 and 256 colours. A modem, so I could work from home, run my own DesqView instance, have my own multiple-terminal connections to all those troublesome field offices.
I'd also make regular (weekly) jaunts to The Opamp Bookstore, in Hollywood - one of my favourite places in all the world. It was there I'd wandered into the "Unix" section and seen some magazines and books on the MINIX operating system, and it was there that I learned about the rise of Usenet as a place to get to meet other hackers, C programmers, Unix nerds. It was also where I'd get my 2600 Magazine fix, monthly.
One day, I got my home PC finally built, booted, and running. I connected to my mailserver, wnsnews.com .. checked my mail. A fellow operator had sent me a message "Check out the minix-list, they're talking about a new unix-like kernel you might be interested in..."
So I subscribe, and lo and behold, there it was - the link to ftp.funet.fi, Linux in its very early stages. It took me about a day to download it, about a week to figure out all the various floppy disks I'd have to make to get the drivers for everything set up, and a whole weekend of faffing around to get things installed alongside my Desqview setup, on a brand new hard drive.
I was hooked. It didn't have everything - X11 wasn't ported yet - but it had just enough for me to port some of my own C code, see that things could actually work like my MIPS pizzabox, albeit on my cheaper 486, and .. maybe .. someday .. someone would port "Remote Control" or even the Desqview terminals, to this brand new 'Linux' thing.
Some months later, in the middle of being shut down entirely by my fellow grey-beard programmers, who wanted me to stop fiddling about with all the spare parts in our "Remote Control" room, I learned about this brand new Linux 'distribution', Yggdrasil.
A trip to OpAmp book shop, and there it was: the bootable floppy and the full Linux filesystem, included on CD, to turn any of our machines into a working Linux system - with X11 onboard! And, probably working, if I chose our SVGA card settings right! What a revelation! I could use my home 486 as a decent terminal for my pizzabox! I could use telnet to get into the Novell servers across the other side of the country! I could endlessly annoy my grey-beard associates with the idea that "Linux is the Future, man!", over and over again, until they finally lock me out of the Novell server and decide I was only good for Unix things, as punishment, because as they knew full well "Unix is Dead, man!"
Well, the decades have rolled by, and what a death it is. Linux is everywhere. I have used it every day since that first post on the minix-list I noticed, the one about funet.fi. I've made a living with it, and I've done amazing things, boring things, mundane things, and normal things. "Netware is Dead, Man! Desqview is Dead, Man! DOS is long gone, man!"
Well, alright, MIPS Computing didn't last long, and that pizzabox was well and truly (sadly) de-commissioned. But, with the profits I made in SoCal during the 90's, putting Linux to work from my own little consulting office in One Wilshire, I bought all the SGI toys I could want .. and I still have them.
Curious, though, that I mostly use Apples' Unix as a front-end to access them all, heheh ..
They confusing Linux and GNU/Linux in that article.
They're not bothering to draw a distinction that almost nobody cares about, yes.