E-SPEAIT T13 Linux

From ICO wiki


Back to the course page

A Practical Example: the Story of Linux

The roots

There are different opinions of the origins of free software. Some consider it the return of the Good Old Times - back in early days of computing, software was a necessary, but still secondary component of a computer system: it was usually created for a specific computer and as a rule, was not transferable. Thus it lacked business value and patches of code were exchanged quite freely. Others (including Eric S. Raymond suggest that the lack of business resulted from lack of opportunity rather than attitude, and consider it be born together with the Web in the early 90s. Still, almost all authors point towards Richard M. Stallman as a central figure in the early days. In his book Hackers, Steven Levy labels him 'the last of true hackers' (the title proved later to be incorrect) - so even if the topic is Linux, we should start from him.

In 1971, a then-student Stallman went to seek internship at MIT. Project MAC (originally Mathematics and Computation, later re-defined several times) had started in 1963, funded by DARPA (2M USD) and was led by J.C.R. Licklider; in 1970, Professor Marvin Minsky branched the MIT Artificial Intelligence Laboratory out of the project. Stallman was not just accepted as an intern, but later given a job and even a place to live at the Lab.

The place he landed to used to be one of the focal points of early hacker culture where people were able to pursue their research interests largely without having to deal with side issues like finances or paperwork. It was a kind of 'hacker paradise' with a strong sense of sharing and 'playful cleverness'. The tools used were PDP series of computers, the ITS operating system and Lisp programming language.

One of his first projects was Emacs. While today's computer users may not keep a text editor in high esteem, it was the 'killer app' of the day. It was needed to both write software (as almost everything on early computers had to be written by users themselvesǃ) and maintain the system (to this day, the Unix family of systems can be tweaked by editing the text files in /etc).

In 1981, the Lab was pulled into a conflict. When funding was cut back and researchers were encouraged to 'make their own money', the Lab was split between two companies both attempting to monetize their development of Lisp computers - Symbolics and LMI. As Stallman blamed Symbolics for unethical behaviour, he decided to help their competitor by doing the work of several programmers alone. However, by 1982 he grew tired, decided to give up his job and focus on development of a totally free operating system. Considering ITS too old-fashioned, he looked at Unix as a model - and set out to rewrite the whole system from scratch.

On Thanksgiving 1983 (November 27), Stallman sent his initial announcement about starting a new, free system to the net.unix-wizards and net.usoft newsgroups and invites those interested to participate. The actual beginning happened in January of the following year, with Bison (the free alternative to [https://en.wikipedia.org/wiki/Yacc yacc - a good example of Stallman-style wordplay). The next was to be the C compiler - at first, he hoped to use the Amsterdam Compiler Kit created by Andrew Tanenbaum, an American working at the Vrije Universiteit (Free University) in the Netherlands. However, Tanenbaum did not understand the idea of free system, proposing a commercial cooperation instead. But that was outright unacceptable for Stallman, and a heated exchange followed. Stallman set out to write a compiler from scratch as well.

In 1985, Stallman released the GNU Emacs, a Lisp-based rewrite of the original Emacs - soon to develop into an active community proposing additions and extensions. Stallman quit MIT and started to work on GNU full-time, making his living on selling Emacs on tapes (it was also available from the networks for free, but network connections were scarce in these days). Even if the tapes were bought quite actively, it was not a big income. Fortunately for him, his former employer (MIT) allowed him to sleep in his former office (all in all, for about 12 yearsǃ) and use the university's computers and network. In March 1985, he published the GNU Manifesto to make his goals known.

In October, he transferred his Emacs tape business over to the newly-created Free Software Foundation, completed his compiler (GNU C Compiler (GCC; later renamed to 'GNU Compiler Collection', as other languages besides C were added) and started to sell it as a way of subsistence. During the following five years, most of the new system was completed (including a debugger, shell and C library), but there was no kernel yet. At first, Stallman had focused on GCC as an answer to Tanenbaum, but also because he considered the kernel the greatest challenge. An easier way would have been to create a monolithic kernel - with all needed elements (e.g. network drivers) compiled into it - this is what Linus Torvalds initially did with Linux. Stallman wanted a modular microkernel with outer modules that could be included when needed - a more elegant, but also more difficult solution.

In 1990, Stallman received the MacArthur Fellowship 'genius grant' of 230 000 USD on five years, successfully investing it so that he has been able to rely on this income throughout his later life.


The birth of Linux

Back in 1991, common people used PCs running MS-DOS 4.0 and MS Windows 3.0. In March, the National Science Foundation of the U.S. lifted the business ban from Internet - it caused both good (rapid development of new services) and evil (scams and junk mail were among the first fruits as well). One of the biggest events of the year, however, was the birth of the World Wide Web - the HTTP protocol invented by Sir Timothy Berners-Lee spread out of CERN in Switzerland and became the big, shiny 'front door' of Internet.

But the hackers of the time were not happy. The source code of Unix had been closed in 1979, the new generation of PC operating systems from Apple and Microsoft were closed-source from the beginning. For them, there was nothing to hack on.

Some of them joined Stallman at his GNU project, others attempted to create something else. Andrew Tanenbaum had taught operating system courses on Unix for several years when in 1979 AT&T released Unix version 7 with a new license that forbade distribution of source code (even in educational settings). He had to stick with teaching only theory for a time, until he decided to create a miniature Unix (aptly named Minix) as a teaching aid in 1987. Due to the demands of his publisher PrenticeHall, it was only available bundled with his Operating Systems book, but it came with full source code - about 12 000 lines of it. Later, it was also possible to order it from Tanenbaum for 69 US dollars.

(Richard Stallman also made a new attempt in negotiating with Tanenbaum, this time about using his Minix kernel - but the relations were sour from the earlier time. It has been suggested that had Tanenbaum agreed and given GNU his kernel, Linux would not have been born at all - Linux had just used GNU instead.)

Linus Torvalds, a Finnish-Swedish student on his second year at the time, had started his IT career on his grandfather's Commodore VIC-20. He also went through the compulsory army service, but opted for a 11-month course for junior officers instead of the basic 7-month tour - later praising it in his autobiography as a great experience in management (apparently, leading a squad and running a small open-source project have something in common). In January, he used his savings to buy his first computer - a 386 PC with 40MB hard disk and 4MB of RAM (a quite powerful setup for the time being). He ordered Tanenbaum's book with Minix - while waiting, hacked on assembler and MS-DOS... and played a lot of Prince of Persia.

By March 1991, he had already grown confident enough to post to the comp.os.minix newsgroup, and on the 25th of August, sent out the famous announcement:

Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40),and things seem to work.This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)

Linus (torvalds@kruuna.helsinki.fi)

PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.

(An interesting detail: Linus felt that 'Linux' is too egotistical and called his project 'Freax' instead (free + freak + x from Unix). But Ari Lemmke, the then-administrator of FuNET (Finnish university network) did not like it and changed it to Linux (according to some, even behind Linus' back).)

In September 1991, the source for Linux 0.01 was published (not a fully standalone system yet as it depended on Minix to compile). Around the new year, 0.12 - the first official beta - was released, also switching the license to GNU GPL (the initial license was non-commercial). But it was finally the system that hackers could hack on (in comparison, Minix was ready but not evolving, GNU was promising but not there yet) and two new mirror sites opened in Germany and U.S. (Boston). In early 1992, Linus clashed with Tanenbaum in the Minix newsgroup - the latter considered Linux a bad design due to using a monolithic kernel.

In March 1992, the version number was boldly changed from 0.12 straight to 0.95, hinting for an imminent 1.0 (in fact, it took about two more yearsǃ). The newsgroup comp.os.linux (at first, alt.os.linux) was created and X Window System (of Unix) experimented with (supported at 0.96a; largely due to Linux, the code was later forked into a separate free project named XFree86), some people experiment with dual boot (for instance, an early American enthusiast named Rich Sladkey reportedly possessed one of the first PC-s running both Linux and DOS+Windows).

(Note: the early X differed from the GUIs of Apple and Microsoft in that it was not meant for controlling the computer, but rather for simply displaying the output of several concurrent programs simultaneously.)

Also in 1992, another free system family was born in the 386BSD and its three well-known descendants: FreeBSD, NetBSD and OpenBSD. Again it has been said that had they appeared a year before, Linus would have likely used a BSD instead of developing Linux.


After Minix

Linux did not support the Internet protocol (TCP/IP) for about the first 18 months, the support was added experimentally to 0.98 in October 1992. This may also have been a crucial decision - while Linus understood the importance of online cooperation, Tanenbaum is said to have considered Internet "a luxury for the chosen few" even in 1992. Also, Minix had achieved Tanenbaum's goal in being a good educational aid, there was little motivation for him to develop it further. Thus, Linux soon left Minix behind.

In early 1993, the Linux Documentation Project was launched. First distributions appeared - in the Manchester Computer Centre, Bruce Perens and his friends created the MCC Linux, soon to be followed by other distros like SLS, Slackware, Debian, SuSE, TurboLinux... A separate notion should be made on the first CD-distro, Yggdrasil - CD-ROM had substatially increased the amount of software that could be easily transported and used (640MB CD-ROM vs 1.44MB diskette).

In March 1994, Linux reached the first official version, 1.0. In the same year, two young Americans founded a Linux company called Red Hat. Linux gets ported to other system platforms besides the PC (DEC Alpha, Sun SPARCstation, Motorola 68000). Echoing the growing interest, the Linux Journal was launched and O'Reilly published the first technical books about Linux. Also in the same year, Andrew Tridgell created Samba.


Further spread and new projects

1995 marked the birth of the LAMP stack - the solution that boosts the spread of the Web substantially. What was earlier possible only with expensive hardware and software became available using just a cheap PC and a set of free software. A Linux computer running Apache web server, MySQL database engine and PHP scripting language was affordable to most organizations who thus obtained the 'window to Internet'.

In 1996, Tux the Linux penguin was born. In a discussion about a possible mascot, Linus had briefly mentionedː "I like penguins". The King had spoken... But the reason behind it has been said to be Linus' visit to Australia, going to a zoo there and getting bitten by a penguin - and the name Tux coming from the tuxedo, a sort of formal dress that many penguins seem to wear due to the colour scheme of their feathers.

In April 1996, physicists at Los Alamos connected 68 PC-s running Linux, achieving 19 billion operations per second, a supercomputer with similar capacity costing ten times more. Around that time, Richard Stallman's FSF launched the 'GNU/Linux' campaign, suggesting that the name of the system should not be just 'Linux' as GNU software plays an important part in it and Linux is just the kernel used. They also suggested 'Lignus' or 'Lignux' as possible alternatives. Most people did not agree, partially also because there are in fact several other projects included in a typical distro - a name like GNU/Linux/Apache/PHP/MySQL/whatever would be just impractical. However, this does not diminish the importance of the GNU project in free and open-source software.

In June, Linux reached 2.0, adding modularity: additional modules were made available to be added to the formely monolithic kernel. Soon after, people jokingly noting, appeared 'Linus 2.0' - Linus and her wife Tove Monni-Torvalds (a kindergarten teacher by profession and six-times champion of Finland in karate) had their first daughter Patricia Miranda. Linus seemed to have marked the arrival of 'a new breed of hacker': a clean and social family man, who nevertheless is as apt in computing than the old-school hairy and unkempt types used to be.

In October, Mattiach Ettrich announced the KDE project to create a desktop environment for Linux systems. As he based his work on Qt libraries by Troll Tech in Norway which back then were not free software, Stallman started to raise alarm. The following year, a competing project launched in GNOME, led by Miguel de Icaza. Finally in 2000, Troll Tech puts Qt under GPL which ends the conflict, but the two competing desktop environments are still going on today.


Open Source

The autumn of 1997 brought along a new strife. O'Reilly Publishing organized a meeting for leading developers (first called the Freeware Summit), inviting a lot of free software luminaries but leaving Richard Stallman out. The participants headed by Bruce Perens, Eric S. Raymond and Linus Torvalds decided to adopt a new term 'open source' for their work to avoid scaring business people off (they also wanted register it as a trade mark, but failed). Eric Raymond wrote his notable essay titled The Cathedral and the Bazaar as a manifesto for the new movement.

1998 saw the leaking of the Halloween Documents from Microsoft. MandrakeLinux (later Mandriva and now Mageia) became the first distro to focus specifically on desktop use. Loki Games successfully ported several games from Windows to Linux (albeit with the same closed-source license).

December 9, 1999 marks the notable one-day wonder on stock exchange when VA Linux, a small Linux support company, beat all records with their stock rising for 692 per cent during the first day - apparently the brokers saw the label LNUX and assumed that the company owns Linux. Soon the actual situation was revealed and the stock came rapidly down again.

IBM, the historical arch-enemy of hackers (akin to Microsoft today) started cooperating with Red Hat in 2000, remaining a strong supporter of Linux since then. StarDivision, a small German company, released StarOffice 5.1 and 5.2 as closed-source freeware - but for the first time, users could passably exchange documents with other people who were using MS Office (KDE had the KOffice and GNOME had Abiword/Gnumeric - but these were not compatible enough back then). Later, Sun Microsystems bought the company and split the project in two - StarOffice stayed proprietary, while OpenOffice.org was created as a free project to aid its cousin's development by engaging community.


Some moments from the new century

In 2001, the Linux kernel 2.4 greatly enhanced hardware support. Evolution (at first called Ximian Evolution) was created as an e-mail/PIM software with a look and feel of MS Outlook.

2003 marked new developments in Linux multimedia, improving support for 3D-graphics on ATI and Nvidia video cards and maturing applications like Xine and Mplayer. Some proprietary games like Neverwinter Nights or Morrowind (and a bit later, Doom 3) arrived to Linux.

2004 was the birth year of Ubuntu Linux. Backed by Mark Shuttleworth, a successful South African businessman, it started in October 2004 (release 4.10 - Ubuntu releases are numbered after the year and month) and became THE Linux for many people in just a year.

Netbooks, the small and cheap laptops emerging in mid-2000s, also boosted Linux use - for Microsoft, they appeared uncomfortably between XP and Vista, the former being phased out and the latter being too resource-hungry (most netbooks only had 1G of RAM). For a time, 1/3 of the netbook market ran Linux. Yet Microsoft managed (often with its usual tactics) to drive most manufacturers back to Windows (extending the support for XP) and finally, emerging tablet computers drove most netbooks out of the market.

The end of 00s also marks the open source communities taking on mobile (and later smartphone) development, the first more widely used alternative to Google's official Android being CyanogenMod. Almost a decade later in 2017, it spawned a new free and open source mobile system in LineageOS.

In Estonia, a group of enthusiasts developed Estobuntu - a flavour of Ubuntu that supported Estonian IT infrastructure out of the box (most notably the Estonian ID card - by now, the software has entered the main repositories of many larger distributions).

In 2010, Oracle acquired Sun Microsystems, raising a lot of questions in free software world. OpenOffice.org is forked into LibreOffice and MySQL into MariaDB, the former practically replaced its predecessor in all common distros. The next year created controversy on Linux desktop, as Ubuntu decides to adopt Unity desktop. Many people left fo other desktops, many dropped Ubuntu altogether. The Ireland-based Linux Mint placed its bet on new Cinnamon desktop and Mate, a fork of the old GNOME 2 - and succeeded, becoming the new No 1 distro for desktops.

The resent years have brought new services that further extend Linux experience (e.g. Steam resurrecting the Loki model on a new level, and Spotify bringing a lot of music to Linux users).


Today

Linus started his system as a hobby project ('won't be big and professional like GNU'), yet it has evolved into a family of well-developed, professional systems. There are several hundreds of flavors (distros) from dwarfs to giants, yet they all share the free license, and most importantly, the hacker mindset behind them.

Probably the best proof is usage on supercomputers. For at least a dozen of years, the Top 500 list of 500 most powerful computers on Earth has been utterly dominated by Linux.


Study & Write

Pick two distributions of Linux and write a short comparison (origins, target groups, development/licensing/business models, leadership/community/supporters, software choices etc).


For additional reading

Back to the course page



The content of this course is distributed under the Creative Commons Attibution-ShareAlike 3.0 Estonian license (English: CC Attribution-ShareAlike, or CC BY-SA) or any newer version of the license.