https://lwn.net/SubscriberLink/928581/841b747332791ac4/ LWN.net Logo LWN .net News from the source LWN * Content + Weekly Edition + Archives + Search + Kernel + Security + Events calendar + Unread comments + ------------------------------------------------------------- + LWN FAQ + Write for us * Edition + Return to the Front page User: [ ] Password: [ ] [Log in] | [Subscribe] | [Register] Subscribe / Log in / New account The early days of Linux [LWN subscriber-only content] Welcome to LWN.net The following subscription-only content has been made available to you by an LWN subscriber. Thousands of subscribers depend on LWN for the best news from the Linux and free software communities. If you enjoy this article, please consider subscribing to LWN. Thank you for visiting LWN.net! April 12, 2023 This article was contributed by Lars Wirzenius My name is Lars Wirzenius, and I was there when Linux started. Linux is now a global success, but its beginnings were rather more humble. These are my memories of the earliest days of Linux, its creation, and the start of its path to where it is today. I started my computer science studies at the University of Helsinki in the fall of 1988, and met Linus Torvalds, who was the other new Swedish speaking student in computer science that year. Toward the end of that first year, we had gotten access to a Unix server, and I accidentally found Usenet, the discussion system, by mistyping rm as rn, the Usenet reader. I told Linus about it and we spent way too much time exploring this. After the first year, we both went away to do the mandatory military service, though in different places. We returned to our university studies in the fall of 1990, and both took the course on C and Unix programming, which included a fair bit of theory of the Unix kernel architecture as well. This led to us reading about other operating system kernels, such as QNX and Plan 9. Linus and I discussed with some enthusiasm how an operating system should be built correctly. We had all the overconfidence of 20-year-old second-year university students. Everyone is better off that this wasn't recorded for posterity. In January 1991, Linus bought his first PC from a local shop that assembled computers from parts. The PC had a 386 CPU, which was relatively fancy at that time, because Linus wanted to explore multitasking. Also, since he came from a Sinclair QL with a 32-bit Motorola 68008 CPU, he wanted a 32-bit CPU, and did not want to step down to a 16-bit one, so a 286 was not an option. Linus's first PC had a whopping 4 megabytes of RAM and a hard drive. He got a copy of the game Prince of Persia, which occupied most of his spare time for the next couple of months. He later also bought a copy of MINIX, because after using Unix at the university, he wanted something like that at home as well. As and Bs After finishing the game, Linus started learning Intel assembly language. One day he showed me a program that did multitasking. One task or thread would write a stream of the letter "A" on the screen, the other "B"; the context switches were visually obvious when the stream of As became Bs. This was the first version of what would later become known as the Linux kernel. Linus would later expand the program, and write most of it in C. During this time, late spring of 1991, I wrote an implementation of the C sprintf() function for him, as he hadn't yet learned how to write functions with variable argument lists. I wanted to spare him the pain of having a different function for every type of value to write out. The core of this code is still in the kernel, as snprintf (). As time went on, Linus made his fledgling kernel better and kept implementing new things. After a while, he had drivers for the keyboard and the serial port, emulation of VT100 terminal escape sequences for the screen, and could use it to dial via a modem to the university to read Usenet from home. Science fiction! One day, Linus accidentally attempted to use his hard drive to dial the university, resulting in his master boot sector starting with "ATDT" and the university modem-pool phone number. After recovering from this, he implemented file permissions in his kernel. In August 1991, Linus mentioned his new kernel in public for the first time, in the comp.os.minix newsgroup. This included the phrase "`I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu)'". Such humility. The system was initially called Freax. A few weeks later, Linus asked Ari Lemmke, one of the administrators of ftp.funet.fi, to do an upload of the first tar archive. Ari chose the name Linux. The initial version still contains the original name embedded in one of the source files. During this time, people were interested in trying out this new thing, so Linus needed to provide an installation method and instructions. Since he only had one PC, he came to visit to install it on mine. Since his computer had been used to develop Linux, which had simply grown on top of his Minix installation, it had never actually been installed before. Thus, mine was the first PC where Linux was ever installed. While this was happening, I was taking a nap, and I recommend this method of installing Linux: napping, while Linus does the hard work. The first releases of Linux used a license that forbade commercial use. Some of the early contributors suggested a change to a free-software license. In the fall of 1991, Richard Stallman visited Finland and I took Linus to a talk given by Stallman. This, the pressure from contributors, and my nagging eventually convinced Linus to choose the GNU GPL license instead, in early 1992. Over the Christmas break, Linus implemented virtual memory in Linux. This made Linux a much more practical operating system on cheap machines with little memory. 1992 The year 1992 started with the famous debate with Andrew Tanenbaum, who is a university professor and the author of MINIX. He had some opinions about Linux and its architecture. Linus had opinions on MINIX. The debate has been described as a flame war, but was actually rather civil in hindsight. 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 had chosen to contribute on the community side, rather than to the kernel directly, and helped answer questions, write documentation, and such. I also ran a short-lived newsletter about Linux, which is mainly interesting for publishing the first ever interview with Linus . The newsletter was effectively replaced by the comp.os.linux.announce newsgroup. 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. In 1993, both Linus and I got hired as teaching assistants at the university. We got to share an office. That room had a PC, which Linus took over, and used for Linux development. I was happy with a DEC terminal for Usenet access. One day, Linus was bored and the PC at work felt slow. He spent the day rewriting the Linux kernel command-line parser in assembly language, for speed. (That was, of course, quite pointless, and the parser would later be rewritten again in C, for portability. Its speed does not matter.) A couple of years later, he spent days playing Quake, ostensibly to stress-test kernel memory management, although that was with a newer PC. Much fun was had in that room, and there were no pranks whatsoever. None at all. At some point, Linux gained support for Ethernet and TCP/IP. That meant one could read Usenet without having to use a modem. Alas, early Linux networking code was occasionally a little rough, having been written from scratch. At one point, Linux would send some broken packets that took down all of the Sun machines on the network. As it was difficult to get the Sun kernel fixed, Linux was banned from the university network until its bug was fixed. Not having Usenet access from one's desk is a great motivator. 1.0 In the spring of 1994 we felt that Linux was done. Finished. Nothing more to add. One could use Linux to compile itself, to read Usenet, and run many copies of the xeyes program at once. We decided to release version 1.0 and arranged a release event. The Finnish computer press was invited, and a TV station even sent a crew. Most of the event consisted of ceremonially compiling Linux 1.0 in the background, while Linus and others spoke about what Linux was and what it was good for. Linus explained that commercial Unix for a PC was so expensive that it was easier to write your own. In 1995 Linus and I did a software engineering course at the university, which mostly consisted of a large practical project. This was built on top of Linux, of course. I insisted that a version-control system be used. I had witnessed students in earlier courses do the shouting kind of version control: the students shared a source tree over NFS and shouted "I'm editing this file" when they were changing something. This did not seem like an effective method to me, so I insisted on CVS, which I'd just learned about. This experience is why Linus dislikes CVS and for years refused to use any version control beyond uploading tar balls to FTP sites. That year was also when Linux was first ported to a new architecture by Linus. He'd been given a DEC Alpha machine. I would later get the machine to use as a terminal for reading Usenet. Other people ported Linux to other architectures, but that did not result in me getting any more machines to read Usenet on. In 1997 Linus graduated and moved to the US to take a job at Transmeta. I took a job at a different university in the Helsinki area. In the following years, many things happened. It turned out that there were still a few missing features from Linux, so people worked on those. The term "open source" was coined and IBM invested a ton of money in Linux development. Netscape published a version of its web browser as open source. Skipping a few details and many years, open source basically took over the world. LWN was started and covered much of this history on a week-by-week basis. In 1991, Linus wrote that Linux "`won't be big and professional like gnu'". In 2023. Linux is running on every continent, on every ocean, on billions of devices, in orbit, and on Mars. Not bad for what started as two threads, writing streams of As and Bs on the screen. Index entries for this article GuestArticles Wirzenius, Lars [Send a free link] ----------------------------------------- (Log in to post comments) The early days of Linux Posted Apr 12, 2023 17:27 UTC (Wed) by ccchips (subscriber, #3222) [ Link] Thank you, Lars! Wonderful article! [Reply to this comment] The early days of Linux Posted Apr 12, 2023 18:04 UTC (Wed) by Ndjenks (subscriber, #164469) [Link] Thank you Lars. The story is very interesting and inspiring. It is funny that Linux started as hobby project. :) [Reply to this comment] The early days of Linux Posted Apr 12, 2023 18:29 UTC (Wed) by flussence (subscriber, #85566) [Link] And a good reminder that it's fine even if you start with something akin to a fidget toy and make major screw-ups along the way -- something impressive can come out of it if you keep at it long enough. [Reply to this comment] The early days of Linux Posted Apr 14, 2023 21:02 UTC (Fri) by Ndjenks (subscriber, #164469) [Link] You are right. [Reply to this comment] The early days of Linux Posted Apr 12, 2023 18:39 UTC (Wed) by amacater (subscriber, #790) [ Link] Typical Lars article - self deprecating and quiet. Thanks for the Linux Documentation Project - I've a huge book next door which is basically all the HOWTOs from about 1994 which got me using Linux properly using first Slackware, then Linux-FT and finally Debian. You could run an ISP using only those HOWTOs - I know because myself and a good friend basically built a small ISP using only that documentation until we could get on the Internet. Thanks Lars for sacrificing a machine to someone else's pet student project and kickstarting everyone else. [Reply to this comment] The early days of Linux Posted Apr 12, 2023 20:02 UTC (Wed) by iabervon (subscriber, #722) [ Link] Are you sure he was playing Quake and not Doom? Quake didn't come out until well after Linux was finished and wouldn't need memory management stress tested any more, but Doom got ported around the right time, I think. [Reply to this comment] The early days of Linux Posted Apr 12, 2023 20:11 UTC (Wed) by halla (subscriber, #14185) [ Link] Heh... Yes, this was a nice read. But I'm going to add something. I wasn't involved in free software, programming or anything back then. Sure, I bought Dr Dobbs every month, but my major was Comparative and Historical Linguistics of the Sino-Tibetan languages. But got together with my wife (and now I'm, her wife, all of thirty years later) and we got a stack of SLS floppies from our neighbour in the converted-to-appartments-convent-school appartment where we lived, back then (every school room was converted into a living/ kitching + bedroom + bathroom). He gave my wife those 3.5" disks because she liked nethack, and knew I was being re-schooled into an Oracle 4GL programmer, at the time. Our first child was coming up... We managed to boot up and install Linux back then in 1993, and never looked back. Well, I'm looking back now, but whatevs. Linux Journal. gui toolkits, windowmaker, fvwm, wordperfect for Unix, there's been so much! [Reply to this comment] The early days of Linux Posted Apr 12, 2023 22:09 UTC (Wed) by leromarinvit (subscriber, # 56850) [Link] > While this was happening, I was taking a nap, and I recommend this method of installing Linux: napping, while Linus does the hard work. I'd like to nominate this gem as QOTW. It also reminds me of another recent article here, which quoted Rebecca Giblin saying (about Cory Doctorow) "if he were here, he would say 'please don't do that'". I imagine that might be applicable here as well... Thank you, Lars, for this wonderfully written piece of history! [Reply to this comment] The early days of Linux Posted Apr 12, 2023 23:21 UTC (Wed) by csigler (subscriber, #1224) [ Link] Who has two thumbs and still misses Usenet?............ [Reply to this comment] The early days of Linux Posted Apr 13, 2023 5:53 UTC (Thu) by bof (subscriber, #110741) [Link ] I miss alt.religion.kibology, which was the way better talk.bizarre. I miss Andy Glew and Terje Mathisen penning hyper insightful articles on processor architecture and optimisations, on comp.arch That's about it... [Reply to this comment] The early days of Linux Posted Apr 13, 2023 16:30 UTC (Thu) by anton (subscriber, #25547) [ Link] Just resubscribe to comp.arch. Terje Mathisen is still active, although Andy Glew isn't. [Reply to this comment] The early days of Linux Posted Apr 13, 2023 6:11 UTC (Thu) by jem (subscriber, #24231) [Link] I have always suspected the name of the 'rn' program was carefully chosen to be very similar to the often used 'rm'. [Reply to this comment] The early days of Linux Posted Apr 13, 2023 20:20 UTC (Thu) by klossner (subscriber, #30046) [Link] It was a replacement for the then-ubiquitous "readnews" program, whose name took far too long to type. [Reply to this comment] The early days of Linux Posted Apr 13, 2023 23:29 UTC (Thu) by jschrod (subscriber, #1646) [ Link] Don't tell anybody -- but, it's still there, and actually quite usable nowadays. The flamers and AOL me-toos have gone, to Facebook, Twitter and other venues. Currently it's similar to the late 80s, and I like that. ;-) [Reply to this comment] The early days of Linux Posted Apr 13, 2023 2:09 UTC (Thu) by hendry (subscriber, #50859) [ Link] Pleasure to know you Lars. You inspired me and many others! [Reply to this comment] The early days of Linux Posted Apr 13, 2023 6:25 UTC (Thu) by bof (subscriber, #110741) [Link ] What a nice piece of history. Thanks Lars! Still remember creating SLS install disks, downloaded through the University FTP access, getting them to work and then just cloning and compiling for a few years what came up afterwards, who needs distros actually... Incredible that you could do all that back then on a 386 with just iirc 8 MB of RAM, and half a Gig or so of disk. Never looked back to the previous OSses I ran, because - why? P.S.: Lars, remember our CeBIT booth backroom hacking on Kannel, early 00s? It was such a joy working with you on that back then! [Reply to this comment] The early days of Linux Posted Apr 13, 2023 6:27 UTC (Thu) by ccezar (subscriber, #2749) [ Link] Thank you Lars! [Reply to this comment] The early days of Linux Posted Apr 13, 2023 8:14 UTC (Thu) by pmatilai (subscriber, #15420) [ Link] Priceless! :D Thank you for sharing! [Reply to this comment] The early days of Linux Posted Apr 13, 2023 8:36 UTC (Thu) by rsidd (subscriber, #2582) [Link ] Very nice article. I first encountered Linux in 1994, where some nerds in my grad school had already set up a PC running Linux 1.1.3 (I think) to be the department's mail relay. And within a year or two there were Linux desktops around the theoretical physics group, with X11 and all. I remember the desktop viewport was larger than the screen resolution (640x480 in those days) and you had to pan around with a mouse, but it seemed better than Windows95 on the same machine. [Reply to this comment] The early days of Linux Posted Apr 13, 2023 8:39 UTC (Thu) by rsidd (subscriber, #2582) [Link ] PS - reading Linus's interview (1992 (his style seems to have changed later (just a little))), I wonder if he was ever interested in Lisp programming (just joking (I think)). corbet is clearly a C programmer; his love of semicolons indicates that. [Reply to this comment] Semicolons Posted Apr 13, 2023 13:31 UTC (Thu) by corbet (editor, #1) [Link] The first high-level language I learned was actually Pascal, which was the future according to my university's CS department. I suspect that warped my mind in a number of ways... [Reply to this comment] Semicolons Posted Apr 13, 2023 14:42 UTC (Thu) by Wol (subscriber, #4433) [Link] :-) FORTRAN - and I can tell it's warped my mind :-) Cheers, Wol [Reply to this comment] Semicolons Posted Apr 14, 2023 1:54 UTC (Fri) by Cyberax ( supporter , #52523) [Link] > The first high-level language I learned was actually Pascal Since we're quoting Linus today: "Yeah, yeah, most _practical_ versions of Pascal ended up having all the stuff necessary to break structure, but as you may be able to tell, I was one of the unwashed masses who had to write in "standard Pascal" in my youth. I'm scarred for life" [Reply to this comment] Semicolons Posted Apr 14, 2023 4:27 UTC (Fri) by rsidd (subscriber, #2582) [Link ] My first language was BASIC, on a TRS-80 and a BBC Micro. Then came Pascal (Turbo Pascal on MS-DOS). I learned C in grad school in a physics department. I successfully avoided learning Fortran ever. But I'm told Fortran 2003 onwards is not so bad. [Reply to this comment] The early days of Linux Posted Apr 13, 2023 14:44 UTC (Thu) by Klaasjan (subscriber, #4951) [ Link] I see what you did there ;) [Reply to this comment] The early days of Linux Posted Apr 13, 2023 14:00 UTC (Thu) by Tet (subscriber, #5433) [Link] Great article, but one minor correction - the first Linux distribution was MCC Interim Linux. SLS didn't arrive until slightly later. I'd been using HJ Lu's boot/root disks, but switched to MCC when it was released. [Reply to this comment] The early days of Linux Posted Apr 13, 2023 17:10 UTC (Thu) by karim (subscriber, #114) [Link ] Wow. Simply one of the best pieces I've read about Linux in a few years. No jokes. Thanks for taking the time to share this. [Reply to this comment] The early days of Linux Posted Apr 14, 2023 6:24 UTC (Fri) by wtarreau (subscriber, #51152) [ Link] Awesome article that brings back lots of memories from that era. I discovered Linux in 1994 with SLS and kernel 1.0.4 or 1.0.5 and by then it looked like like a hack, I remember that it was enough to let "ping" run for a few tens of seconds to completely lose network connectivity on that NE2000 card. But everything was fun in it. When you booted from floppies to that white-on-black "login:" prompt, you really felt that the computer was waiting for you to be creative today. Your story about multi-tasking with "A" and "B" is excellent. I did something comparable when trying to turn an XT motherboard to SMP. I noticed the 8087 and 8088 almost had the same pinout, and using a pair of 74LSxx chips solder on top of it with the 8088 pins bent, I managed to run a second 8088 inserted into the 8087 socket. I had to invert its A19 pin so that it could boot to a RAM address that I could control (just below 512kB) before I released the RST pin. I had zero experience with SMP by then and figured nothing in my MS-DOS was designed to support this. I remember thinking "if at least it could format floppies in the background" (yes by then that was a common and extremely boring task). So I managed to make this second CPU blink the floppy drive's LED by writing to 3F2 IIRC, and could confirm that it continued to do so while I was starting a graphics game on the main CPU. Then I tried other stuff such as switching the CGA text attributes in the frame buffer to change colors on screen. That was totally useless but it felt absolutely awesome to me to imagine that this second CPU with 8 ot 10 pins bent and soldered to mollested 74LSxx was actually working fine there and sharing bus access with the primary CPU. So I can definitely understand the joy you and Linus experienced when seeing this A/B on screen! [Reply to this comment] The early days of Linux Posted Apr 14, 2023 10:34 UTC (Fri) by kena (subscriber, #2735) [Link ] Just gonna point out that Maddog helped arrange the Alpha, which he felt would be a huge boon both for Linux (cross architecture!) and DEC (running Linux!). This, after having Linus come speak at DEC in the US. [Reply to this comment] The early days of Linux Posted Apr 14, 2023 13:55 UTC (Fri) by NightMonkey (subscriber, # 23051) [Link] Please don't tell Linus that Prince of Persia apparently runs well on Wine: https://appdb.winehq.org/objectManager.php?sClass=applica..., lest Linux development get horribly delayed. [Reply to this comment] The early days of Linux Posted Apr 14, 2023 14:45 UTC (Fri) by PhilippReisner (subscriber, # 153492) [Link] Lars, thanks for this article! Your name, Lars Wirzenius, was ringing a bell. I did not know about your role in the early days of Linux. Then I realized that I knew your name from the Linux Documentation Project. I hope that you still meet Linus from time to time. [Reply to this comment] Copyright (c) 2023, Eklektix, Inc. Comments and public postings are copyrighted by their creators. Linux is a registered trademark of Linus Torvalds