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, dla którego zaznaczono zakończenie portowania 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 postaci i zawierało około 10 tysięcy linii kodu źródłowego. Współczesne jądro Linux liczy ponad 28 mln linii kodu. Z danych badania przeprowadzonego w 2010 roku na zlecenie Unii Europejskiej wynika, że szacunkowy koszt stworzenia od podstaw projektu podobnego do współczesnego jądra Linux wyniósłby ponad miliard dolarów USA (wyliczenia dotyczyły jądra zawierającego 13 mln linii 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.
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 2021 roku do gałęzi jądra Linux-next dodano kod do opracowywania sterowników w języku Rust. Trwają prace nad włączeniem komponentów wspierających Rust do podstawowego składu jądra.
68% wszystkich zmian w jądro wprowadziło 20 najbardziej aktywnych firm. Na przykład, przy tworzeniu jądra 5.13 10% wszystkich zmian przygotowała firma Intel, 6.5% - Huawei, 5.9% - Red Hat, 5.7% - Linaro, 4.9% - Google, 4.8% - AMD, 3.1% - NVIDIA, 2.8% - Facebook, 2.3% - SUSE, 2.1% - IBM, 1.9% - Oracle, 1.5% - ARM, 1.4% - Canonical. 13.2% zmian zostało przygotowanych przez niezależnych uczestników lub deweloperów, którzy jasno nie zadeklarowali swojej pracy dla konkretnych firm. 1.3% zmian przygotowali studenci, doktoranci i przedstawiciele instytucji edukacyjnych. W liczbie dodanych do jądra 5.13 linii kodu prym wiedzie firma AMD, której udział wyniósł 20.2% (sterownik amdgpu liczy około 3 mln linii kodu, co stanowi około 10% całkowitego rozmiaru jądra - 2.4 mln linii pochodzi z automatycznie generowanych plików nagłówkowych z danymi dla rejestrów GPU).
Źródło: opennet.ru
