The Linux kernel is 31 years old

On August 25, 1991, after five months of development, 21-year-old student Linus Torvalds announced on the comp.os.minix teleconference that a working prototype of a new Linux operating system had been completed, porting bash 1.08 and gcc 1.40 had been completed. The first public release of the Linux kernel was introduced on September 17th. The 0.0.1 kernel was 62 KB compressed and contained about 10 lines of source code. The modern Linux kernel has over 30 million lines of code. According to a 2010 study commissioned by the European Union, the approximate cost of developing from scratch a project similar to the modern Linux kernel would be more than a billion US dollars (the calculation was made when the kernel had 13 million lines of code), according to other estimates - more than 3 billion.

The Linux kernel was inspired by the MINIX operating system, which did not suit Linus with its limited license. Subsequently, when Linux became a well-known project, detractors tried to accuse Linus of directly copying the code of some MINIX subsystems. The attack was repelled by Andrew Tanenbaum, the author of MINIX, who commissioned a student to make a detailed comparison between the Minix code and the first public releases of Linux. The results of the study showed the presence of only four minor matches of code blocks, due to the requirements of POSIX and ANSI C.

Linus originally thought of naming the kernel Freax, from the words "free", "freak" and X (Unix). But the name β€œLinux” was given to the kernel by Ari Lemmke, who, at the request of Linus, placed the kernel on the university’s FTP server, naming the directory with the archive not β€œfreax”, as Torvalds asked, but β€œlinux”. It is noteworthy that the enterprising businessman William Della Croce (William Della Croce) managed to register the Linux trademark and wanted to collect royalties over time, but later changed his mind and transferred all rights to the trademark to Linus. The official mascot of the Linux kernel, the Tux penguin, was chosen as a result of a competition held in 1996. The name Tux stands for Torvalds UniX.

Growth dynamics of the codebase (number of lines of source code) of the kernel:

  • 0.0.1 - September 1991, 10 thousand lines of code;
  • 1.0.0 - March 1994, 176 thousand lines of code;
  • 1.2.0 - March 1995, 311 thousand lines of code;
  • 2.0.0 - June 1996, 778 thousand lines of code;
  • 2.2.0 - January 1999, 1.8 million lines of code;
  • 2.4.0 - January 2001, 3.4 million lines of code;
  • 2.6.0 - December 2003, 5.9 million lines of code;
  • 2.6.28 - December 2008, 10.2 million lines of code;
  • 2.6.35 - August 2010, 13.4 million lines of code;
  • 3.0 - August 2011, 14.6 million lines of code.
  • 3.5 - July 2012, 15.5 million lines of code.
  • 3.10 - July 2013, 15.8 million lines of code;
  • 3.16 - August 2014, 17.5 million lines of code;
  • 4.1 - June 2015, 19.5 million lines of code;
  • 4.7 - July 2016, 21.7 million lines of code;
  • 4.12 - July 2017, 24.1 million lines of code;
  • 4.18 - August 2018, 25.3 million lines of code.
  • 5.2 - July 2019, 26.55 million lines of code.
  • 5.8 - August 2020, 28.4 million lines of code.
  • 5.13 - June 2021, 29.2 million lines of code.
  • 5.19 - August 2022, 30.5 million lines of code.

Core Development Progress:

  • Linux 0.0.1 - September 1991, first public release supporting i386 CPU only and booting from floppy;
  • Linux 0.12 - January 1992, the code began to be distributed under the GPLv2 license;
  • Linux 0.95 - March 1992, added the ability to run the X Window System, implemented support for virtual memory and a swap partition.
  • Linux 0.96-0.99 - 1992-1993, work began on the networking stack. The Ext2 file system was introduced, support for the ELF file format was added, drivers for sound cards and SCSI controllers were introduced, loading of kernel modules and the /proc file system was implemented.
  • In 1992, the first distributions of SLS and Yggdrasil appeared. In the summer of 1993, the Slackware and Debian projects were founded.
  • Linux 1.0 - March 1994, first officially stable release;
  • Linux 1.2 - March 1995, a significant increase in the number of drivers, support for the Alpha, MIPS and SPARC platforms, expanded network stack capabilities, the appearance of a packet filter, NFS support;
  • Linux 2.0 - June 1996, support for multiprocessor systems;
  • March 1997: LKML, Linux kernel developer mailing list founded;
  • 1998: Launched the first Top500 Linux-based cluster, consisting of 68 nodes with Alpha CPUs;
  • Linux 2.2 - January 1999, improved efficiency of the memory management system, added support for IPv6, implemented a new firewall, introduced a new sound subsystem;
  • Linux 2.4 - February 2001, support for 8-processor systems and 64 GB of RAM, Ext3 file system, USB support, ACPI;
  • Linux 2.6 - December 2003, SELinux support, automatic kernel parameter tuning tools, sysfs, redesigned memory management system;
  • In 2005, the Xen hypervisor was introduced, which ushered in the era of virtualization;
  • In September 2008, the first release of the Android platform based on the Linux kernel was formed;
  • In July 2011, after 10 years of development of the 2.6.x branch, the transition to 3.x numbering was made. The number of objects in the Git repository has reached 2 million;
  • In 2015, the release of the Linux 4.0 kernel took place. The number of git objects in the repository has reached 4 million;
  • In April 2018, the milestone of 6 million git objects in the core repository was overcome.
  • In January 2019, the Linux 5.0 kernel branch was formed. The repository has reached the level of 6.5 million git objects.
  • Published in August 2020, the 5.8 kernel was the largest in terms of the number of changes of all the kernels over the entire life of the project.
  • In the 5.13 kernel, a record was set for the number of developers (2150), whose changes were included in the kernel.
  • In 2021, code for developing drivers in Rust was added to the Linux-next kernel branch. Work is underway to include components to support Rust in the main part of the core.
  • In August 2022, the Linux 6.0 kernel branch was formed, as there were enough releases in the 5.x branch to change the first number in the version number.

68% of all core changes were made by the top 20 companies. For example, when developing kernel 5.19, 10.9% of all changes were prepared by Intel, 5.7% by Linaro, 5.5% by AMD, 5.2% by Red Hat, 4.1% by Google, 3.5% by Meta, 3.1% by SUSE, 2.9% by Huawei, 2.8% - NVIDIA, 2.7% - Oracle. 11.8% of the changes were prepared by independent contributors or developers who did not explicitly declare their work for certain companies. With 5.19 lines of code added to the kernel, AMD is the leader, with a share of 37.9% (the amdgpu driver has over 4 million lines of code, most of which are automatically generated header files with data for GPU registers).

Source: opennet.ru

Add a comment