Even though most people have heard of Linux, they still associate it primarily with various operating system distributions built around it. In this article, we describe the history of Linux as an open source operating system kernel, which is the central component of most computer operating systems that acts as a bridge between applications and the actual data processing done at the hardware level. The history of the Linux kernel is both fascinating and educational as it can teach us a lot about the underlying motivations of Linux developers and help us understand the direction the kernel is headed.
What started as one man’s humble idea has grown to become the most important open source project ever created. The Linux kernel currently has over 20 million lines of code, and it runs on all of the world’s 500 most powerful supercomputers. It also runs on servers, desktops, laptops, TV boxes, routers, tablets, smartphones, wearable devices, and it powers much of the rapidly growing network of connected devices known as the Internet of Things.
Over 12,000 programmers from more than 1,200 companies have contributed to the project, including Intel, Red Hat, Linaro, Samsung, SUSE, IBM, and Microsoft. In other words, the Linux kernel is hugely important, and its future is looking brighter than ever.
Creation of the Linux Kernel
But it wasn’t always like this. Not too long ago, in 1991, the Linux kernel was nothing but an announcement made by Linus Torvalds, at the time a 21-year-old computer science student at the University of Helsinki, Finland.
“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),” Linus posted to comp.os.minix, a newsgroup on Usenet, a worldwide distributed discussion system that predates current Internet forums.
In his historic announcement, Linus mentioned two other important projects: GNU and MINIX. The latter is a Unix-like computer operating system that was initially released in 1987 by Andrew S. Tanenbaum for educational purposes. Unix-like computer operating systems are inspired by Bell Labs’ original Unix computer operating system, often emulating its features and architecture. GNU is also a Unix-like operating system, initiated by Richard Stallman and first announced in 1983, but it differs from Unix in two important aspects: it’s free, and it doesn’t contain any Unix code.
Linus had been using MINIX during the time he spent as a student at the University of Helsinki in Finland. After he had become frustrated with MINIX’s licensing model, he decided to develop his own free alternative to Unix, one that would embrace the concept of free software that had only just started to become popular at the time thanks to Richard Stallman and his GNU General Public License (GPL), which guarantees end users the freedom to run, study, share and modify the software.
Linus started by porting some essential GNU components, and it remains true to this day that many Linux distributions heavily rely on GNU. “I’ve currently ported bash (1.08) [a Unix shell and command language written by Brian Fox] and gcc (1.40) [a compiler system produced by the GNU Project supporting various programming languages], 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.”
In September 1991, version 0.01 of the Linux kernel was released on the FTP server of FUNET, the Finnish University and Research Network, containing 10,239 lines of code. When Linus announced version 0.02 on October 5, 1991, the Linux kernel still needed MINIX to operate, but the number of volunteers from around the world who decided to contribute to the project without expecting anything in return had been steadily increasing. In December of the same year, Linux kernel 0.11 was released as the first version that could be compiled by a computer running the same kernel version. With Linux kernel 0.12, released in February 1992, Linux officially adopted the GNU General Public License (GPL).
Release of Linux kernel 1.0.0
In March 1992, Linux kernel 0.95 became the first version of the Linux kernel capable of running the X Window System, which is a windowing system for bitmap displays that offers a basic framework for a GUI environment by providing a way for windows to be drawn on a display device and interacted with using a mouse and keyboard. The massive version-jump from 0.12 to 0.95 reflected the fact that the Linux kernel had matured and evolved into a full-featured system.
To cement this notion further, Linux kernel 1.0.0 was released on March 14, 1994. It had 176,250 lines of code, and you can still study the original code and read the original release notes, which state that the Linux kernel 1.0 “has all the features you would expect in a modern fully-fledged Unix, including true multitasking, virtual memory, shared libraries, demand loading, shared copy-on-write executables, proper memory management, and TCP/IP networking.”
Modern-Day Development of Linux kernel
The Linux kernel continued to be heavily improved through the 1990’s, with version 2.0 released on June 6, 1996, and version 2.2.13, which allowed the Linux kernel to run on enterprise-class machines thanks to IBM mainframe patches, released on December 18, 1999.
After the arrival of the new millennium, Linux evolved to a world-wide development project with countless contributors from around the world. You can see the complete changelog of everything that happened from December 17, 2001 to the present day by visiting this website. According to recent estimations, “The average number of changes accepted into the kernel per hour is 7.71, which translates to 185 changes every day and nearly 1,300 per week.”
Considering that Linus never intended for his pet project to become so big, the Linux kernel is a true testament to the power of open source development and the ingenuity and skill of independent developers motivated by the desire to collectively create something great.