On August 25, 1991, after five months of development, 21-year-old student Linus Torvalds announced in the comp.os.minix newsgroup the creation of a working prototype of the new Linux operating system, marking the completion of the porting of bash 1.08 and gcc 1.40. The first public release of the Linux kernel was presented on September 17. Kernel 0.0.1 was 62 KB in size when compressed and contained approximately 10,000 lines of source code. The modern Linux kernel has about 41 million lines of code.
The Linux kernel was created under the influence of the MINIX operating system, which did not satisfy Linus due to its restrictive license. Later, when Linux became a well-known project, detractors tried to accuse Linus of directly copying code from some MINIX subsystems. This attack was countered by Andrew Tanenbaum, the author of MINIX, who commissioned one of his students to conduct a detailed comparison of the code between Minix and the early public versions of Linux. The results of the study showed only four insignificant matches of code blocks, attributable to the requirements of POSIX and ANSI C.
Initially, Linus intended to name the kernel Freax, derived from the words 'free', 'freak', and X (Unix). However, the name 'Linux' was given to the kernel by Ari Lemmke, who, at Linus's request, placed the kernel on the university's FTP server, naming the archive directory 'linux' instead of 'freax' as Torvalds had asked. Interestingly, the enterprising businessman William Della Croce managed to register the trademark Linux and intended to collect royalties over time, but later changed his mind and transferred all rights to the trademark back to Linus. The official mascot of the Linux kernel, the penguin Tux, was chosen as a result of a competition held in 1996. The name Tux stands for Torvalds UniX.
Growth dynamics of the code base (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;
- 6.4 β June 2023, 32.9 million lines of code.
- 6.10 β July 2024, 35.1 million lines of code.
- 6.16 β July 2025, 40.8 million lines of code.
Kernel Development Progress:
- Linux 0.0.1 β September 1991, the first public release, supporting only CPU i386 and booting from a floppy disk;
- Linux 0.12 β January 1992, the code began to be distributed under the GPLv2 license;
- Linux 0.95 β March 1992, support for launching the X Window System was provided, virtual memory and swap partition support were implemented.
- Linux 0.96-0.99 β 1992-1993, work on the network stack began. The Ext2 file system was introduced, ELF file format support was added, drivers for sound cards and SCSI controllers were introduced, and kernel module and /proc file system loading was implemented.
- In 1992, the first distributions SLS and Yggdrasil appeared. In the summer of 1993, the Slackware and Debian projects were founded.
- Linux 1.0 β March 1994, the first officially stable release;
- Linux 1.2 β March 1995, a significant increase in the number of drivers, support for Alpha, MIPS, and SPARC platforms, expansion of network stack capabilities, introduction of a packet filter, NFS support;
- Linux 2.0 β June 1996, support for multiprocessor systems;
- March 1997: LKML was founded, a mailing list for Linux kernel developers;
- 1998: the first Linux-based cluster made it to the Top500 list, consisting of 68 nodes with Alpha CPUs;
- Linux 2.2 β January 1999, enhanced memory management efficiency, added support for IPv6, a new firewall was implemented, a new sound subsystem was introduced;
- Linux 2.4 β February 2001, support for 8-processor systems and 64GB of RAM, Ext3 file system, USB support, ACPI;
- Linux 2.6 β December 2003, support for SELinux, automatic kernel parameter tuning tools, sysfs, redesigned memory management system;
- In 2005, the Xen hypervisor was introduced, opening 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 reached 2 million;
- In 2015, Linux kernel 4.0 was released. The number of git objects in the repository reached 4 million;
- In April 2018, the threshold of 6 million git objects in the kernel repository was exceeded.
- In January 2019, the Linux kernel 5.0 branch was formed. The repository reached 6.5 million git objects.
- The kernel 5.8 released in August 2020 became the largest by the number of changes of all kernels in the project's history.
- The 5.13 kernel set a record with the number of developers (2150) whose changes were included in the kernel.
- In August 2022, the Linux kernel 6.0 branch was formed, as there were enough releases in the 5.x branch to change the major version number.
- Kernel 6.1, released in December 2022, added support for using the Rust language as a second language for developing drivers and kernel modules.
- In February 2025, the milestone of 40 million lines of source code was reached.
About 65% of all changes to the kernel were made by the 20 most active companies. For instance, in the development of kernel 6.16, 11.3% of all changes (down from 15.3% in kernel 6.10 a year ago) were prepared by Intel, 7.6% (6.9%) by Red Hat, 6.3% (7.4%) by Google, 5.6% (6.3%) by Linaro, 5.4% (4.6%) by AMD, 3.6% (1.9%) by Qualcomm, 3.0% (2.5%) by SUSE, 2.9% (3.2%) by Meta, 2.6% (3.3%) by Oracle, 2.4% (2.3%) by Huawei, 2.4% (1.5%) by NVIDIA, 2.3% (1.2%) by ARM, and 1.4% (2.4%) by IBM. 15.3% (11.9%) of the changes were prepared by independent contributors or developers who did not explicitly state their work for specific companies. In terms of the number of lines of code added to kernel 6.16, Intel, Red Hat, and Google led with shares of 9.2%, 7.2%, and 6.9% respectively (in kernel 6.10, Intel, Linaro, and Red Hat led with shares of 13.6%, 13.3%, and 7.2%).
Source: opennet.ru
