The Story of Linux
Linux: from a hacker's hobby to the king of supercomputing
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 transferrable. 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 rather from a lack of opportunities, and consider it be born together with the Web in early 90s. Still almost all authors stress Rchard M. Stallman as a central figure in the early days. In his book Hackers, Steven Levy labels him 'the last of true hackers' (fortunately he was wrong in this) - so even if the topic is Linux, we should start with him.
In 1971, a then-student Stallman goes to seek internship in 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 lands to is 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 programing language.
One of his first projects was Emacs. While today's computer users may not keep a text editor in high regard, 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 the 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. In the time 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 LMI by doing the work of several programmers alone. However, by 1982 he grow tired and decided to give up his job and focus on development of a totally free operating system. Considering ITS too old-fashioned, he picks Unix as a model - and sets to rewrite the whole system.
On Thanksgiving 1983 (November 27), Stallman sends his [http://www.gnu.org/gnu/initial-announcement.html 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 the next year, with Bison (the free alternative to 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 being unacceptable for Stallman, a heated exchange followed. Stallman set out to write a compiler from scratch.
In 1985, Stallman releases the GNU Emacs, a Lisp-based rewrite of the original Emacs - soon, this gathers an active community proposing additions and extensions. Stallman quits MIT and starts to work on GNU full-time, making his living on selling Emacs on tapes (it was also available from the networks for free, but many computers did not have network connections back then). 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 (about 12 years in total!) and use the university's computers and network. In March, hee also releases the GNU Manifesto, explaining his goals.
In October, he gives his Emacs tape business over to the newly-created Free Software Foundation, completes his compiler (GNU C Compiler (GCC; later renamed to 'GNU Compiler Collection', as other languages besides C were added) and starts to sell it. In the next five years, most of the new system was completed (including a debugger, shell and C library), but tnere was no kerrnel yet. At first, Stallman focused on GCC as an answer to Tanenbaum, but he also 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 difficult solution.
In 1990, Stallman receives the MacArthur Fellowship 'genius grant' of 230 000 USD on five years, investing it in a way that allows him to focus on his projects without worrying about subsistence.
Birth of Linux
Back in 1991, common people used PCs running MS-DOS 4.0 and Windows 3.0. In March, the National Science Foundation of the U.S. lifts the business ban from Interrnet - it allows rapid development of new services, but also brings along spam and other kinds of 'monkey business'. One of the biggest events of the year, however, is the birth of the World Wide Web - the HTTP protocol invented by Timothy Berners-Lee spreads out of CERN in Switzerland and becames the big, shiny 'front door' of Internet.
But 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. There was nothing to hack on.
Some of them joined Stallman in 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 forbad 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 Prentice-Hall, 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 USD 69.
(Richard Stallman 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 uses 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 also orders Tanenbaum's book with Minix - and while waiting, hacks assembler and MS-DOS... and plays a lot of Prince of Persia.
In March, he already feels confident enough to post to the comp.os.minix newsgroup, and in August 25, sends a 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 :-)
PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (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 admin of FuNET (Finnish university network) did not like it and changed it to Linux (according to some, even behind Linus' back).)
In September, the source for Linux 0.01 is published (it is not a fully standalone system yet, needing Minix to compile). Around the new year, 0.12 - the first official beta - is released, switching the license to GNU GPL (the initial license was non-commercial only). 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 jumps from 0.12 straight to 0.95, hinting for an imminent 1.0 (actually, it took about two more years). The newsgroup comp.os.linux (at first, alt.os.linux) is created, X-Windows is experimented with (supported at 0.96a; largely due to Linux, the code is forked into a separate free project named XFree86), some people experiment with multiboot (for instance, an American Rich Sladkey had one of the first PC-s running both Linux and DOS+Windows).
(Note: early X differed from the GUI-s of Apple and Microsoft in that it was not meant to control the computer, but rather simply to display the output of several concurrent programs simultaneously.)
Also in 1992, another free system family is born in the 386BSD and its three well-known descendants: FreeBSD, NetBSD and OpenBSD. It is said that had they appeared a year before, Linus would have likely used a BSD instead of developing Linux.
Linux did not support Internet protocol (TCP/IP) for about 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 consider Internet a luxury for a few even in 1992. Also, Minix had achieved Tanenbaum's goal in being a good educational aid, there was little motivation for further development. Thus, Linux soon left Minix behind.
In early 1993, the Linux Documentation Projec is launched. First distributions appear - in Manchester Computer Centre, Bruce Perens and his friends compile the MCC Linux, soon to be followed by other distros like SLS, Slackwae, 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 reaches 1.0. In the same year, two young Americans found a Linux company called Red Hat. Linux is ported to other platforms besides the PC (DEC Alpha, SparcStation, Motorola 68000), the Linux Journal is launched, O'Reilly Publishing issues the first technical books about Linux and Andrew Tridgell creates Samba.
1995 marks the birth of LAMP stack - the solution that boosts the spread of the Web substantially. In web servers, what was earlier possible only with expensive hardware and software, could now be done with 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 is born. In a discussion about a possible mascot, Linus mentions "I like penguins". The King had spoken... But the reason behind it has been said to be Linus' visit to Australia, going to zoo there and getting bitten by a penguin - and Tux coming from the tuxedo, a sort of formal dress.
In April 1996, physicists at Los Alamos connect 68 PC-s running Linux, achieving 19 billion operations per second, a supercomputer with similar capacity did cost ten times more. Around that time, Stallman's FSF launches 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 suggest 'Lignus' or 'Lignux' as alternatives. Most people do not buy the idea - partially also because thare are 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 GNU project in free and open-source software.
In June, Linux reaches 2.0, adding modularity: additional modules can be added to the formely monolithic kernel. Soon after, people jokingly noting, appears 'Linus 2.0' - Linus and her wife Tove Monni-Torvalds (a kindergarten teacher and six-times champion of Finland in karate) have their first daughter Patricia Miranda. Linus marks the arrival of 'a new breed of hacker': clean and social family man, who nevertheless is as apt in computing than the old-school hairy and unkempt types.
In October, Mattiach Ettrich announces the KDE project to create a desktop environment for Linux systems. As he bases his work on Qt libraries by Troll Tech in Norway and these are not free software, Stallman starts to growl. The next year, a competing project is launched in GNOME, led by Miguel de Icaza. KDE however develops faster, reaching first betas soon, GNOME reaches 1.0 only in two years. Finally in 2000, Troll Tech puts Qt under GPL which ends the conflict, but the two competing desktop environments are still going on.
Autumn 1997 brings a new strife. O'Reilly Publishing organizes the Freeware Summit and invites a lot of free software luminaries, yet leaving Richard Stallman out. The participants headed by Bruce Perens, Eric S. Raymond and Linus Torvalds decide to adopt a new term 'open source' for their work to avoid scaring business people off and also register it as a trade mark (the latter failed). Eric Raymond writes his notable essay titled The Cathedral and the Bazaar as a manifesto for the new movement.
1998 brings the Halloween Documents and also MandrakeLinux (later Mandriva and now Mageia) the first distro to focus specifically on desktop usage. Loki Games successfully ports several games from Windows to Linux (albeit with the same closed-source license) but finally goes to bankrupt due to mismanagement.
December 9, 1999 marks the one-day wonder on stock exchange when a small Linux support company beats all record by their stock rising 692 per cent during the first day - stock traders 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. KDE 2 is released. StarDivision, a small German company, releases StarOffice 5.1 and 5.2 as closed-source freeware - for the first time, users could passably exchange documents with people using MS Office (KDE had the KOffice and GNOME had Abiword and Gnumeric - but these were not compatible enough back then). Later, Sun buys the company and splits the project - StarOffice goes proprietary, while OpenOffice.org is created as a free project to aid its cousin's development by engaging community.
In 2001 come Linux 2.4 (which greatly enhances hardware support), GNOME 1.4 (remains in use for a long time as the stable release) and Evolution (at first called Ximian Evolution, an e-mail/PIM software with a look and feel of MS Outlook). The next year brings OpenOffice.org 1.0, KDE 3 and GNOME 2.
2003 brings new developments in Linux multimedia, improving support for 3D-graphics on ATI and Nvidia video cards and maturing applications like Xine and Mplayeer. Again after Loki Games, some proprietary games like Neverwinter Nights or Morrowind (and a bit later, Doom 3) come to Linux. SCO starts his court saga against IBM, claiming that a portion of the Linux kernel 2.4 code belongs to them, yet failing to even identify that portion in three years - finally the universal adoption of 2.6 kernel (where there is no claims) kills the case off.
2004 is the birth year of Ubuntu Linux. Backed by Mark Shuttleworth, a successful South African businessman, it starts in October 2004 (release 4.10 - Ubuntu releases are numbered after the year and month) and becomes THE Linux for many people in just a year. The next year, OpenOffice.org reaches 2.0.
In 2006, Ubuntu releases 6.06, the first version with long-time support (at first 3 years on desktop and 5 years on server, later even longer). Sun open-sources Java and Oracle starts their own Linux distro. 3D-interfaces like Compiz (and Beryl, which was forked from Compiz but later remerged) become mature enough to be added to mainstream distros. The next year, another ugly move by Microsoft changes the file format of MS Office from the old one that by trial and error had become compatible enough for other software to use. The new format is controversially pushed into an ISO standard - only to say that 'maybe we'll follow the standard sometime later'.
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 large (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 tablets 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 develop Estobuntu - a flavour of Ubuntu that supports Estonian IT infrastructure out of the box (most notably the Estonian ID card, even in the live mode - making an Estobuntu CD a handy way to make secure transactions on insecure computers).
In 2010, Oracle buys Sun, raising a lot of questions in free software world. OpenOffice.org is forked into Libreoffice and MySQL into MariaDB, the former practically replaces its predecessor in all common distros. The next year creates controversy on desktop, as Ubuntu decides to adopt Unity desktop, which many users do not like. Many people leave to KDE, XFCE, LXDE and other desktops, many drop Ubuntu altogether. This gives rise to Ireland-based Linux Mint placing its bet on new Cinnamon desktop and Mate, a fork of the old GNOME 2 - and succeeding, becoming the new No 1 distro for desktops.
The resent years have brought new services that further extend Linux experience (e.g. Steam resurrects the Loki model on a new level, Spotify brings a lot of music to Linux users). In Estonia, schools again consider Linux as Microsoft raises its software prices steeply (up to 25 times) due to reclassifying Estonia among 'developed countries'. Microsoft, while being successful with Windows 7, has now even three comparative failures in a row (8, 8.1, 10), giving competitors a new chance.
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 one diskette to several gigabytes, 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. In Novenber 2015, 494 of 500 ran Linux, the rest were other Unixes - and the best of them, a machine running AIX (IBM Unix) was at position 211. While there has been 1-2 Windows computers among the top 500 occasionally, none made it there this time.
The Penguin has grown big.