Jump to content

The early days of Linux


aum

Recommended Posts

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.

 

Source

Link to comment
Share on other sites


  • Views 733
  • Created
  • Last Reply

Top Posters In This Topic

  • aum

    1

Popular Days

Top Posters In This Topic

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...