25 sierpnia 1991 roku, po pięciu miesiącach prac, 21-letni student Linus Torvalds ogłosił na konferencji telewizyjnej comp.os.minix stworzenie działającego prototypu nowego systemu operacyjnego Linux, co zostało zaznaczone zakończeniem portowania bash 1.08 i gcc 1.40. Pierwsze publiczne wydanie jądra Linux zostało przedstawione 17 września. Jądro 0.0.1 miało rozmiar 62 KB w skompresowanej formie i zawierało około 10 tysięcy wierszy kodu źródłowego. Współczesne jądro Linux liczy ponad 35 milionów wierszy kodu. Według badania przeprowadzonego w 2010 roku na zlecenie Unii Europejskiej, szacunkowy koszt stworzenia projektu opartego na współczesnym jądrze Linux od podstaw wyniósłby ponad miliard dolarów amerykańskich (obliczenia przeprowadzono, gdy w jądrze było 13 milionów wierszy kodu), według innych szacunków — ponad 3 miliardy.
Jądro Linux powstało pod wpływem systemu operacyjnego MINIX, który nie zadowalał Linusa swoją ograniczoną licencją. Gdy Linux stał się znanym projektem, krytycy próbowali oskarżyć Linusa o bezpośrednie kopiowanie kodu niektórych podsystemów MINIX. Atak odparł Andrew Tanenbaum, autor MINIX, który zlecił jednemu ze studentów dokonanie szczegółowego porównania kodu Minix i pierwszych publicznych wersji Linux. Wyniki badania wykazały jedynie cztery nieistotne zbiegi bloków kodu, spowodowane wymaganiami POSIX i ANSI C.
Początkowo Linus zamierzał nazwać jądro Freax, od słów „free”, „freak” i X (Unix). Jednak nazwę „Linux” jądro otrzymało dzięki Ari Lemmke, który na prośbę Linusa umieścił jądro na serwerze FTP uniwersytetu, nazywając katalog z archiwum nie „freax”, jak prosił Torvalds, lecz „linux”. Ciekawostką jest, że przedsiębiorczy William Della Croce zdołał zarejestrować znak towarowy Linux i chciał z czasem pobierać tantiemy, ale później zmienił zdanie i przekazał wszystkie prawa do znaku Linusowi. Oficjalnym maskotkiem jądra Linux, pingwin Tux, został wybrany w wyniku konkursu, który odbył się w 1996 roku. Nazwa Tux jest skrótem od Torvalds UniX.
Dynamika wzrostu bazy kodu (liczba linii kodu źródłowego) jądra:
- 0.0.1 — wrzesień 1991, 10 tys. linii kodu;
- 1.0.0 — marzec 1994, 176 tys. linii kodu;
- 1.2.0 — marzec 1995, 311 tys. linii kodu;
- 2.0.0 — czerwiec 1996, 778 tys. linii kodu;
- 2.2.0 — styczeń 1999, 1,8 mln. linii kodu;
- 2.4.0 — styczeń 2001, 3,4 mln. linii kodu;
- 2.6.0 — grudzień 2003, 5,9 mln. linii kodu;
- 2.6.28 — grudzień 2008, 10,2 mln. linii kodu;
- 2.6.35 — sierpień 2010, 13,4 mln. linii kodu;
- 3.0 — sierpień 2011, 14,6 mln. linii kodu;
- 3.5 — lipiec 2012, 15,5 mln. linii kodu;
- 3.10 — lipiec 2013, 15,8 mln. linii kodu;
- 3.16 — sierpień 2014, 17,5 mln. linii kodu;
- 4.1 — czerwiec 2015, 19.5 mln linii kodu;
- 4.7 — lipiec 2016, 21.7 mln linii kodu;
- 4.12 — lipiec 2017, 24.1 mln linii kodu;
- 4.18 — sierpień 2018, 25.3 mln linii kodu;
- 5.2 — lipiec 2019, 26.55 mln linii kodu;
- 5.8 — sierpień 2020, 28.4 mln linii kodu;
- 5.13 — czerwiec 2021, 29.2 mln linii kodu;
- 5.19 — sierpień 2022, 30.5 mln linii kodu;
- 6.4 — czerwiec 2023, 32.9 mln linii kodu.
- 6.10 — lipiec 2024, 35.1 mln linii kodu.
Postęp w rozwoju jądra:
- Linux 0.0.1 — wrzesień 1991, pierwsze publiczne wydanie, wspierające tylko CPU i386 i uruchamiające się z dyskietki;
- Linux 0.12 — styczeń 1992, kod zaczął być rozpowszechniany w ramach licencji GPLv2;
- Linux 0.95 — marzec 1992, wprowadzono możliwość uruchomienia systemu X Window, wprowadzono wsparcie dla pamięci wirtualnej i partycji wymiany.
- Linux 0.96-0.99 — 1992-1993, rozpoczęto prace nad stosem sieciowym. Wprowadzono system plików Ext2, dodano wsparcie dla formatu plików ELF, wprowadzono sterowniki dla kart dźwiękowych i kontrolerów SCSI, zrealizowano ładowanie modułów jądra i systemu plików /proc.
- W 1992 roku pojawiły się pierwsze dystrybucje SLS i Yggdrasil. Latem 1993 roku powstały projekty Slackware i Debian.
- Linux 1.0 — marzec 1994, pierwsze oficjalnie stabilne wydanie;
- Linux 1.2 — marzec 1995, znaczny wzrost liczby sterowników, wsparcie dla platform Alpha, MIPS i SPARC, rozszerzenie możliwości staku sieciowego, wprowadzenie filtru pakietów, wsparcie dla NFS;
- Linux 2.0 — czerwiec 1996, wsparcie dla systemów wieloprocesorowych;
- Marzec 1997: założono LKML, listę mailingową programistów jądra Linux;
- Rok 1998: uruchomiono pierwszy cluster oparty na Linuxie, który znalazł się na liście Top500, składający się z 68 węzłów z CPU Alpha;
- Linux 2.2 — styczeń 1999, zwiększona efektywność systemu zarządzania pamięcią, dodano wsparcie IPv6, wprowadzono nową zaporę sieciową, przedstawiono nowy system dźwiękowy;
- Linux 2.4 — luty 2001, zapewniono wsparcie dla systemów 8-procesorowych i 64 GB RAM, system plików Ext3, wsparcie dla USB, ACPI;
- Linux 2.6 — grudzień 2003, wsparcie dla SELinux, narzędzia automatycznego dostrajania parametrów jądra, sysfs, przerobiony system zarządzania pamięcią;
- W 2005 roku wprowadzono hipernadzorcę Xen, co zapoczątkowało erę wirtualizacji;
- We wrześniu 2008 roku wydano pierwszą wersję platformy Android opartej na jądrze Linux;
- W lipcu 2011 roku, po 10 latach rozwoju gałęzi 2.6.x, wprowadzono numerację 3.x. Liczba obiektów w repozytorium Git osiągnęła 2 mln;
- W 2015 roku wydano jądro Linux 4.0. Liczba obiektów git w repozytorium osiągnęła 4 miliony;
- W kwietniu 2018 roku przekroczono próg 6 milionów obiektów git w repozytorium jądra.
- W styczniu 2019 roku utworzono gałąź jądra Linux 5.0. Repozytorium osiągnęło poziom 6,5 miliona obiektów git.
- Opublikowane w sierpniu 2020 roku jądro 5.8 stało się największym pod względem liczby zmian ze wszystkich jąder w historii projektu.
- W jądrze 5.13 ustanowiono rekord liczby programistów (2150), których zmiany znalazły się w jądrze.
- W sierpniu 2022 roku utworzono gałąź jądra Linux 6.0, ponieważ w gałęzi 5.x zgromadziło się wystarczająco dużo wydania, by zmienić pierwszą cyfrę w numerze wersji.
- W jądrze 6.1, wydanym w grudniu 2022 roku, dodano możliwość używania języka Rust jako drugiego języka do opracowywania sterowników i modułów jądra.
Około 65% wszystkich zmian w jądro wprowadzają 20 najbardziej aktywnych firm. Na przykład, przy opracowywaniu jądra 6.10 z wszystkich zmian 15.3% (w jądrze 6.9 było 12.9%) przygotowała firma Intel, 7.4% (7.1%) — Google, 6.9% (5.6%) — Red Hat, 6.3% (6.4%) — Linaro, 4.6% (5.7%) — AMD, 3.3% (2.2%) — Oracle, 3.2% (2.9%) — Meta, 2.5% (3.2%) — SUSE, 2.4% (2.1%) — IBM, 2.3% (2.4%) — Huawei, 1.9% (2.1%) — Qualcomm, 1.5% (1.7%) — NVIDIA, 1.2% (1.2%) — ARM. 11.9% (w jądrze 6.9 — 14.2%) zmian zostało przygotowanych przez niezależnych uczestników lub deweloperów, którzy wyraźnie nie ogłosili informacji o swojej pracy w konkretnych firmach. W liczbie dodanych do jądra 6.10 linii kodu przodują firmy Intel, Linaro i Red Hat, których udział wynosił 13.6%, 13.3% i 7.2% (w jądrze 6.9 przodowały AMD, Red Hat i Intel z udziałami wynoszącymi 21.7%, 11.5% i 8.9%).
Źródło: opennet.ru
