Jądro Linux obchodzi 31 lat

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 Linuxa 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 Linuxa liczy ponad 30 milionów linii kodu. Według badania przeprowadzonego w 2010 roku na zlecenie Unii Europejskiej, przybliżony koszt opracowania projektu podobnego do współczesnego jądra Linux wyniósłby ponad miliard dolarów amerykańskich (obliczenia były prowadzone, gdy w jądrze znajdowało się 13 milionów 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.
  • 5.19 — sierpień 2022, 30.5 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.
  • 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.

68% wszystkich zmian w jądrze wprowadzono przez 20 najbardziej aktywnych firm. Na przykład, przy rozwoju jądra 5.19, 10.9% wszystkich zmian przygotowano w firmie Intel, 5.7% — Linaro, 5.5% — AMD, 5.2% — Red Hat, 4.1% — Google, 3.5% — Meta, 3.1% — SUSE, 2.9% — Huawei, 2.8% — NVIDIA, 2.7% — Oracle. 11.8% zmian przygotowano przez niezależnych uczestników lub deweloperów, którzy wyraźnie nie ogłosili swojej pracy na rzecz określonych firm. W liczbie dodanych do jądra 5.19 linii kodu prowadzi firma AMD, której udział wyniósł 37.9% (sterownik amdgpu liczy ponad 4 miliony linii kodu, z czego dużą część stanowią automatycznie generowane pliki nagłówkowe z danymi dla rejestrów GPU).

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster