Jądro Linuksa kończy 30 lat

25 sierpnia 1991 roku, po pięciu miesiącach rozwoju, 21-letni student Linus Torvalds ogłosił na telekonferencji comp.os.minix, że ukończono działający prototyp nowego systemu operacyjnego Linux, przeniesiono bash 1.08 i gcc 1.40 zostało zakończone. Pierwsze publiczne wydanie jądra Linuksa zostało zaprezentowane 17 września. Jądro 0.0.1 zostało skompresowane do 62 KB i zawierało około 10 28 linii kodu źródłowego. Nowoczesne jądro Linuksa ma ponad 2010 milionów linii kodu. Według badań zleconych przez Unię Europejską w 13 roku przybliżony koszt stworzenia od podstaw projektu podobnego do współczesnego jądra Linuksa wyniósłby ponad miliard dolarów amerykańskich (obliczeń dokonano, gdy jądro miało 3 milionów linii kodu) , według innych szacunków - ponad XNUMX miliardy.

Jądro Linuksa zostało zainspirowane systemem operacyjnym MINIX, który nie odpowiadał Linusowi z jego ograniczoną licencją. Następnie, gdy Linux stał się dobrze znanym projektem, krytycy próbowali oskarżyć Linusa o bezpośrednie kopiowanie kodu niektórych podsystemów MINIX. Atak został odparty przez Andrew Tanenbauma, autora MINIXa, który zlecił uczniowi szczegółowe porównanie kodu Miniksa z pierwszymi publicznymi wydaniami Linuksa. Wyniki badania wykazały obecność tylko czterech mniejszych dopasowań bloków kodu, ze względu na wymagania POSIX i ANSI C.

Linus początkowo myślał o nazwaniu jądra Freax, od słów „free”, „freak” i X (Unix). Ale nazwę „Linux” nadał jądru Ari Lemmke, który na prośbę Linusa umieścił jądro na uniwersyteckim serwerze FTP, nazywając katalog z archiwum nie „freax”, jak prosił Torvalds, ale „linux ”. Warto zauważyć, że przedsiębiorczy biznesmen William Della Croce (William Della Croce) zdołał zarejestrować znak towarowy Linux i chciał z czasem pobierać tantiemy, ale później zmienił zdanie i przeniósł wszelkie prawa do znaku towarowego na Linusa. Oficjalna maskotka jądra Linuksa, pingwin Tux, została wybrana w wyniku konkursu przeprowadzonego w 1996 roku. Nazwa Tux oznacza Torvalds UniX.

Dynamika wzrostu bazy kodu (liczby linii kodu źródłowego) jądra:

  • 0.0.1 - wrzesień 1991, 10 tysięcy linii kodu;
  • 1.0.0 - marzec 1994, 176 tysięcy linii kodu;
  • 1.2.0 - marzec 1995, 311 tysięcy linii kodu;
  • 2.0.0 - czerwiec 1996, 778 tysięcy linii kodu;
  • 2.2.0 - styczeń 1999, 1.8 miliona linii kodu;
  • 2.4.0 - styczeń 2001, 3.4 miliona linii kodu;
  • 2.6.0 - grudzień 2003, 5.9 miliona linii kodu;
  • 2.6.28 - grudzień 2008, 10.2 miliona linii kodu;
  • 2.6.35 - sierpień 2010, 13.4 miliona linii kodu;
  • 3.0 - sierpień 2011, 14.6 miliona linii kodu.
  • 3.5 - lipiec 2012, 15.5 miliona linii kodu.
  • 3.10 - lipiec 2013, 15.8 mln linii kodu;
  • 3.16 - sierpień 2014, 17.5 miliona linii kodu;
  • 4.1 - czerwiec 2015, 19.5 miliona 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 miliona linii kodu.
  • 5.2 - lipiec 2019, 26.55 miliona linii kodu.
  • 5.8 - sierpień 2020, 28.4 miliona linii kodu.
  • 5.13 - czerwiec 2021, 29.2 mln linii kodu.

Główny postęp w rozwoju:

  • Linux 0.0.1 - wrzesień 1991, pierwsze publiczne wydanie obsługujące tylko procesor i386 i uruchamianie z dyskietki;
  • Linux 0.12 - styczeń 1992, kod zaczął być rozpowszechniany na licencji GPLv2;
  • Linux 0.95 - marzec 1992, dodano możliwość uruchamiania systemu X Window, zaimplementowano obsługę 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 obsługę formatu plików ELF, wprowadzono sterowniki do kart dźwiękowych i kontrolerów SCSI, wprowadzono ładowanie modułów jądra oraz zaimplementowano system 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, obsługa platform Alpha, MIPS i SPARC, rozbudowane możliwości stosu sieciowego, pojawienie się filtra pakietów, obsługa NFS;
  • Linux 2.0 - czerwiec 1996, obsługa systemów wieloprocesorowych;
  • Marzec 1997: założenie LKML, listy mailingowej deweloperów jądra Linuksa;
  • 1998: Uruchomienie pierwszego klastra Top500 opartego na systemie Linux, składającego się z 68 węzłów z procesorami Alpha;
  • Linux 2.2 - styczeń 1999, poprawiona wydajność systemu zarządzania pamięcią, dodano obsługę IPv6, zaimplementowano nowy firewall, wprowadzono nowy podsystem dźwiękowy;
  • Linux 2.4 - luty 2001, obsługa systemów 8-procesorowych i 64 GB RAM, system plików Ext3, obsługa USB, ACPI;
  • Linux 2.6 - grudzień 2003, obsługa SELinux, narzędzia do automatycznego dostrajania parametrów jądra, sysfs, przeprojektowany system zarządzania pamięcią;
  • W 2005 roku wprowadzono hiperwizor Xen, który zapoczątkował erę wirtualizacji;
  • We wrześniu 2008 roku powstało pierwsze wydanie platformy Android opartej na jądrze Linuksa;
  • W lipcu 2011 roku, po 10 latach rozwoju gałęzi 2.6.x, dokonano przejścia na numerację 3.x. Liczba obiektów w repozytorium Git osiągnęła 2 miliony;
  • W 2015 roku miało miejsce wydanie jądra Linux 4.0. Liczba obiektów git w repozytorium osiągnęła 4 miliony;
  • W kwietniu 2018 r. przekroczono kamień milowy 6 milionów obiektów git w repozytorium core.
  • W styczniu 2019 roku powstała gałąź jądra Linux 5.0. Repozytorium osiągnęło poziom 6.5 miliona obiektów git.
  • Opublikowane w sierpniu 2020 r. jądro 5.8 było największe pod względem liczby zmian wszystkich jąder w ciągu całego życia projektu.
  • W jądrze 5.13 ustanowiono rekord liczby programistów (2150), których zmiany zostały uwzględnione w jądrze.
  • W 2021 roku do gałęzi jądra Linux-next dodano kod do tworzenia sterowników w Rust. Trwają prace nad włączeniem komponentów wspierających Rust w głównej części rdzenia.

68% wszystkich zmian w rdzeniu dokonało 20 najaktywniejszych firm. Na przykład podczas opracowywania jądra 5.13 10% wszystkich zmian przygotował Intel, 6.5% Huawei, 5.9% Red Hat, 5.7% Linaro, 4.9% Google, 4.8% AMD, 3.1% NVIDIA, 2.8 % przez Facebooka, 2.3% – SUSE, 2.1% – IBM, 1.9% – Oracle, 1.5% – ARM, 1.4% – Canonical. 13.2% zmian przygotowali niezależni współpracownicy lub programiści, którzy nie zadeklarowali wprost, że pracowali dla określonych firm. 1.3% zmian przygotowali studenci, doktoranci i przedstawiciele instytucji edukacyjnych. Pod względem liczby 5.13 linii kodu dodanych do jądra liderem jest AMD, którego udział wyniósł 20.2% (sterownik amdgpu ma około 3 milionów linii kodu, co stanowi około 10% całkowitego rozmiaru jądra - 2.4 miliona linie są uwzględniane przez automatycznie generowane pliki nagłówkowe z danymi dla rejestrów GPU).

Źródło: opennet.ru

Dodaj komentarz