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, z którego ukończono portowanie bash 1.08 i gcc 1.40. Pierwsza publiczna wersja jądra Linux została zaprezentowana 17 września. Jądro 0.0.1 miało rozmiar 62 KB w skompresowanej formie i zawierało około 10 tysięcy linii kodu źródłowego. Współczesne jądro Linux liczy około 44 milionów linii kodu.
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.
- 6.16 — lipiec 2025, 40.8 mln linii kodu.
- 7.2 — sierpień 2026, 43.9 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.
- W lutym 2025 roku osiągnięto granicę 40 milionów linii kodu źródłowego.
- Wsparcie dla Rust zostało przeniesione z eksperymentalnych do podstawowych funkcji jądra Linux.
- W 2026 roku zauważono rozwój wykorzystania narzędzi AI do debugowania, recenzowania zmian, wykrywania błędów i opracowywania poprawek w jądrze. Między innymi, Linus Torvalds zaczął korzystać z AI, np. ostatnio do ustalania przyczyn problemów z sterownikiem Intel Xe.
Około 65% wszystkich zmian w jądrze zostało wprowadzonych przez 20 najbardziej aktywnych firm. Na przykład przy opracowywaniu jądra 7.1 z wszystkich zmian 9,1% (rok temu w jądrze 6.16 to było 11,3%) przygotowała firma Intel, 7,7% (6,3%) — Google, 5,2% (5,4%) — AMD, 5,0% (3,6%) — Qualcomm, 4,7% (7,6%) — Red Hat, 3,8% (2,4%) — NVIDIA, 3,4% (2,9%) — Meta, 2,9% (3,0%) — SUSE, 2,5% (2,9%) — Oracle, 2,1% (2,3%) — ARM, 1,4% (1,4%) — IBM, 1,3% (2,4%) — Huawei. 18% (15,3%) zmian zostało przygotowanych przez niezależnych uczestników lub programistów, którzy wyraźnie nie zadeklarowali swojej pracy w określonych firmach. W liczbie dodanych do jądra 7.1 linii kodu przodują firmy Meta, AMD i Qualcomm, których udział wyniósł 15,8%, 13,8% i 7,6% (w jądrze 6.16 przodowali Intel, Red Hat i Google, których udział wyniósł 9,2%, 7,2% i 6,9%).
Źródło: opennet.ru
