Jądro Linuksa

Linux

Informacja
Twórca Linus Torvalds
Opracowany przez Linus Torvalds i tysiące współpracowników
Pierwsza wersja 0,01 (17 września 1991)
Ostatnia wersja 5.12 (25 kwietnia 2021)
Kaucja

git: //git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Stan projektu W ciągłym rozwoju
Napisane w C , asembler i C ++
Środowisko Typ UNIX
Języki język angielski
Rodzaj Modułowy rdzeń monolityczny
Polityka dystrybucji Wolny
Licencja GPLv2 , z wyjątkiem zastrzeżonych obiektów BLOB
Stronie internetowej www.kernel.org

Jądro Linux to jądro z UNIX . Jest używany w kilku systemach operacyjnych, w tym GNU / Linux (powszechnie nazywanym „Linux”) i Android . Jądro Linuksa jest częściowo wolnym oprogramowaniem (zawierającym bloki BLOB i niewolne moduły — patrz Linux-libre ) opracowanym głównie w języku C przez tysiące ochotników i pracowników współpracujących w Internecie .

Jądro jest sercem systemu, to jest ten, który dba o dostarczanie oprogramowania z pomocą interfejsu programowania wykorzystania sprzętu. Jądro Linuksa zostało stworzone w 1991 roku przez Linusa Torvaldsa dla kompatybilności z PC . Pierwotnie zaprojektowany dla architektury procesora x86 , został później przeniesiony na wiele innych, w tym m68k , PowerPC , ARM , SPARC , MIPS i RISC-V . Znajduje zastosowanie w bardzo szerokiej gamie urządzeń, od systemów wbudowanych po superkomputery , w tym telefony komórkowe i komputery osobiste .

Jego główne cechy to wielozadaniowość i wielodostępność . Respektuje standardy POSIX, co czyni go godnym spadkobiercą systemów UNIX . Początkowo jądro zostało zaprojektowane jako monolityczne. Ten techniczny wybór był okazją do gorących debat między Andrew S. Tanenbaumem , profesorem Wolnego Uniwersytetu w Amsterdamie, który stworzył Minixa , a Linusem Torvaldsem . Andrew Tanenbaum argumentował, że współczesne jądra muszą być mikrojądrami, a Linus odpowiada, że ​​wydajność mikrojądra nie jest dobra. Od wersji 2.0 jądro, mimo że nie jest mikrojądrem, jest modułowe, to znaczy niektóre funkcje mogą być dodawane lub usuwane z jądra w locie (w użyciu).

Historia

W 1991 roku na rynku komputerów osobistych zdominowały komputery kompatybilne z komputerami osobistymi i ogólnie współpracujące z systemami operacyjnymi MS-DOS , Windows lub OS/2 . Sprzedawane od 1986 roku komputery PC oparte na mikroprocesorze Intel 80386 zaczynają być przystępne cenowo. Jednak systemy konsumenckie nadal są zgodne ze starszymi 16- bitowymi procesorami Intela i niewłaściwie wykorzystują 32-bitowe możliwości i jednostkę zarządzania pamięcią 80386.

W tym roku fiński student Linus Torvalds , niedysponowany niską dostępnością serwera komputerowego UNIX na Uniwersytecie Helsińskim , podejmuje się opracowania jądra systemu operacyjnego , które później zostanie nazwane " Linux " . Linus chce więc przede wszystkim zrozumieć działanie swojego komputera opartego na procesorze Intel 80386.

Linus Torvalds uczył się z systemem operacyjnym Minix . Ponieważ projektant Minix - Andrew Tanenbaum - odmawia włączenia wkładu mającego na celu ulepszenie Minixa, Linus postanawia zaplanować zastępstwo dla Minixa. Zaczyna od stworzenia prostego emulatora terminala , za pomocą którego łączy się za pomocą modemu z serwerem komputera swojej uczelni. Po dodaniu różnych funkcji, w tym systemu plików zgodnego z systemem Minix, Linus kieruje swój projekt na coś bardziej ambitnego: jądro zgodne ze standardami POSIX . Do tego jądra dostosowuje wiele dostępnych komponentów systemu operacyjnego GNU , aby uzyskać pełniejszy system operacyjny.

25 sierpnia 1991, ogłasza na forum dyskusyjnym Usenet : comp.os.minix , że pisze system operacyjny, ale jako "hobby, które nie będzie tak duże i profesjonalne jak gnu". 5 października 1991, ogłasza dostępność wersji roboczej 0.02 swojego jądra, przy czym wersja 0.01 jest rozpowszechniana bardziej niż poufnie. Wreszcie wluty 1992, wersja 0.12 została wydana na licencji GNU General Public License (GNU GPL) zamiast licencji ad hoc, która wcześniej zakazywała komercyjnej redystrybucji.

Wersja 1.0.0 systemu Linux została wydana 14 marca 1994 z 176 250 liniami kodu.

Projekt, początkowo nazywany przez twórcę Freax , swoją ostateczną nazwę zawdzięcza Ari Lemmke , administratorowi serwera FTP ftp.funet.fi , który obsługuje prace Linusa Torvaldsa w katalogu o nazwie Linux . Było to pierwsze pojawienie się terminu składającego się z „Linus” i „UNIX”, który później stał się zarejestrowanym znakiem towarowym w imieniu Linusa Torvaldsa. Pingwin Tux , zaprojektowany przez Larry'ego Ewinga w 1996 roku, staje się maskotką projektu.

Wydanie kodu Linuksa wywołało duże zainteresowanie społeczności użytkowników Minixa. Od tego czasu w projekcie wzięło udział tysiące programistów-wolontariuszy na całym świecie. Model rozwoju Linuksa jest nadal uważany za typowego przedstawiciela organizacji charakterystycznego dla dużych kolektywów open source . Dziś w projekcie biorą udział setki pasjonatów i firm różnej wielkości, których koordynatorem jest Linus Torvalds. Eric Raymond opisuje w eseju La Cathédrale et le Bazar (2001) model rozwoju jądra Linuksa i części wolnego oprogramowania .

W systemach wbudowanych Linux jest często używany z narzędziami uClibc i BusyBox , które zostały opracowane dla sprzętu o szczególnie ograniczonej pojemności pamięci. Możliwość skompilowania jądra Linux z opcjami specjalnie dostosowanymi do sprzętu docelowego daje programistom wiele możliwości optymalizacji.

Rozwój jądra Linux

Jeśli na początku swojej historii rozwój jądra Linuksa był prowadzony przez programistów-wolontariuszy, dziś głównymi współtwórcami jest grupa firm, często konkurujących, takich jak Red Hat , Novell , IBM czy Intel .

IBM miał swój własny system UNIX o nazwie AIX, ale przejście na Linuksa – oprócz umożliwienia programistom i opiekunom systemu AIX przypisywania do innych projektów – ma również tę zaletę, że umożliwia odzyskiwanie bez trudności z przenoszeniem aplikacji lub nowych szkoleń dla zespołów IT , od serwerów PC z Linuksem do Linuksa w serii i, p i z.

Jądro Linux licencja jest GNU General Public License w wersji 2. Niniejsza licencja jest wolna, która pozwala na używanie, kopiowanie i modyfikowanie kodu źródłowego zgodnie z własnymi życzeniami i potrzebami. W ten sposób każdy, kto posiada niezbędną wiedzę, może uczestniczyć w testowaniu i ewolucji jądra .

Tempo rozwoju

Między marcem a Kwiecień 2005, liczba linii kodu podwoiła się (z 4,4 mln do 8,8 mln). Na początku 2009 r. wersja 2.6.30 jądra linuksowego składała się z ponad 11,5 miliona linii kodu w 28 000 plików, podczas gdy 2,8 miliona linii zostało dodanych między Bożym Narodzeniem 2008 astyczeń 2010.

Od 2005 roku do połowy 2009 roku w tworzeniu jądra uczestniczyło 5000 programistów i 500 firm. Liczba oferowanych łatek rośnie, zwłaszcza od wersji 2.6.25.

Rola Linusa Torvaldsa

Linus Torvalds , twórca jądra Linuksa, jest oficjalnym opiekunem od jego powstania w 1991 roku . Jest rodzajem „życzliwego dyktatora”, autorytetu w zakresie wyborów technicznych i organizacyjnych. Różne wersje jądra opublikowane przez Linusa Torvaldsa nazywane są po angielsku „mainline” lub „vanilla”. Są to jądra waniliowe, które są integrowane przez dystrybutorów, czasami z dodatkiem łatek bezpieczeństwa, poprawek błędów lub optymalizacji.

Proces rozwoju

Linus Torvalds wprowadził radykalną zmianę w sposobie tworzenia systemów operacyjnych, w pełni wykorzystując potęgę Internetu.

Proces rozwoju Linuksa jest publicznie dostępny w Internecie: źródła jądra są tam widoczne dla wszystkich, zmiany w tych źródłach są publikowane i przeglądane w Internecie, a także są widoczne dla wszystkich. Od samego początku przyjęto przyrostowy i szybki cykl rozwoju (dziś nowa wersja wypuszczana jest co około 9 tygodni), co umożliwiło zbudowanie wokół Linuksa i Internetu w kolejnych warstwach dynamicznej społeczności złożonej z programistów, firm i użytkowników.

Tryb wybierania

Numery wersji jądra składają się z trzech liczb: pierwsza to numer główny, druga to numer pomocniczy. Przed wydaniem wersji 2.6.x nawet drobne liczby wskazywały na wersję stabilną, a nieparzyste liczby pomocnicze na wersję rozwojową. Tak więc wersje 2.2, 2.4 są stabilne, wersje 2.3 i 2.5 to wersje rozwojowe. Jednak od wersji jądra 2.6 ten stabilny / rozwojowy model numeracji został wycofany i dlatego nie ma specjalnego znaczenia dla liczb nieparzystych lub nawet mniejszych. Trzecia liczba oznacza wersję, która odpowiada poprawkom błędów, poprawkom bezpieczeństwa lub dodatkowi funkcjonalności, na przykład 2.2.26, 2.4.30 lub 2.6.11. O przejściu na wersję 3.0 zdecydował Linus Torvalds z okazji 20-lecia jądra Linuksa, nawet jeśli prawdziwy powód był dość arbitralny.

Od Marzec 2005(data wydania jądra 2.6.11), Greg Kroah-Hartman i Chris Wright próbują utrzymać stabilną gałąź jądra waniliowego Linusa Torvaldsa. Ich celem jest dalsza stabilizacja jądra poprzez zintegrowanie prostych i zwięzłych łatek naprawiających błędy, zabezpieczających lub optymalizujących, które spełniają surowe kryteria. Ta gałąź nie integruje nowych funkcjonalności. Ich publikacje są oznaczone czwartym numerem wersji, na przykład 2.6.11.1 lub 2.6.11.6. Funkcjonowanie techniczne i organizacyjne tej branży będzie testowane w czasie, w perspektywie średnio- i długoterminowej.

Łatki

Istnieje wiele łatek dostępnych w Internecie w społeczności programistów jądra Linuksa. Najbardziej znane to te Andrew Mortona z przyrostkiem -mm, które integrują łatki funkcjonalności i wysoce pożądane optymalizacje oraz WOLK ( praca nad przeładowanym jądrem , przeciążone funkcjonalnie jądro).

Dystrybucja Ubuntu Studio zawiera również jądro o niskim opóźnieniu ( Low-latency Kernel ) zapewniające mniejsze opóźnienia dla aplikacji audio, jednak kosztem większego obciążenia samego systemu (z powodu pętli czujności, odpytywania ) i tym samym zmniejszenia w swojej przepustowości . To jądro jest rzadko używane poza tworzeniem muzyki, która wymaga jak najmniejszego opóźnienia między uderzeniem w klawisz a wytworzeniem odpowiedniego efektu.

Linux w czasie rzeczywistym

Łaty Ingo Molnár z przyrostkiem -rt są używane przez multimedialne dystrybucje Linuksa, takie jak DeMuDi  ; zapewniają wydajność w czasie rzeczywistym niezbędną do prawidłowego funkcjonowania profesjonalnej multimedialnej stacji roboczej. Ingo Molnar jest także twórcą debuggera jądra kgdb .

Chronologia

Oś czasu wydania Linuksa
Wersja Przestarzały Główne ulepszenia
0,01 17 września 1991 Poufna dystrybucja (10 000 linii kodów).
0,02 5 października 1991 Reklamy w usenecie, system prawie bezużyteczny.
0,03 Październik 1991 bash i gcc dostępne w wersji binarnej.
0,10 grudzień 1991 Pierwsze wkłady zewnętrzne, internacjonalizacja klawiatury.
0,11 Środek-grudzień 1991 Sterownik do dyskietek, SCSI w fazie rozwoju.
0,12 5 stycznia 1992 r. Pamięć wirtualna, system użytkowy, więcej obsługiwanego sprzętu, dystrybuowane na licencji GNU GPL , konsole wirtualne.
0,95 7 marca 1992 r. Init / login, przeniesiono X Window , istnieje grupa dyskusyjna : alt.os.linux
0,95a 17 marca 1992 r. Nowy opiekun dyskietki z systemem Linux  : Jim Winstead .
0,96 - 0,99 poziom aktualizacji 15Z 2 lata rozwoju, w celu dodania funkcjonalności i poprawek, comp.os.linux * Fora są najczęściej odwiedzane w usenecie i są 3 razy reorganizowane, co oznacza, że ​​społeczność rośnie i jest bardzo aktywna.
1,0 Marzec 1994 Jądro Linux jest stabilne dla produkcji i zapewnia usługi klasycznego systemu UNIX (176 000 linii kodu).
1.2 Marzec 1995 Wiele innych architektur procesorów, ładowalnych modułów itp. (311 000 linii kodu)
2,0 Lipiec 1996 PowerPC , Multiprocessor , więcej obsługiwanego sprzętu, pełniejsze zarządzanie siecią, wygląd maskotki Tux .
2.1.80 styczeń 1998 Wstępne wsparcie dla architektur ARM
2.2 styczeń 1999 Bufor ramki , NTFS , Joliet , IPv6 ,… (1,8 miliona linii kodu)
2,4 styczeń 2001 USB , PCMCIA , I2O, NFS 3, x86-64 ... (3.378 milionów linii kodu)
2,6 grudzień 2003 ALSA , preemptible kernel, ACL , NFS 4,… (5,93 miliona linii kodu)
2.6.16 LTS 20 marca 2006 r. Pierwsza wersja z rozszerzoną obsługą, obsługą OCFS2, obsługą procesorów Cell , dodano 13 nowych wywołań systemowych dla platform x86 i x86_64, obsługę cpufreq dla Power Mac G5s , ulepszone zarządzanie energią dla niektórych urządzeń, obsługa protokołu IPv6 dla protokołu DCCP , zarządzanie ACL dla systemu plików CIFS , zarządzanie systemem plików HFSX , obsługa wykonywania plików wykonywalnych z systemu plików plan9,….
2.6.17 17 czerwca 2006 Obsługa wielordzeniowych procesorów Sun firmy Niagara, obsługa chipsetu Wi-Fi Broadcom 43xx, optymalizacja obrazu jądra przy starcie na x86, nowy harmonogram zoptymalizowany pod kątem procesorów wielordzeniowych….
2.6.18 19 września 2006 Narzędzie Lockdep, Dziedziczenie priorytetów, zarządzanie priorytetami za pomocą SMPnice, harmonogram CFQ,….
2.6.19 29 listopada 2006 System plików GFS2, szyfrowanie eCryptfs, podsystem libata itp.
2.6.20 4 lutego 2007 r. Wirtualizacja KVM, obsługa UDP-Lite, asynchroniczne skanowanie SCSI,….
2.6.21 25 kwietnia 2007 r. Interfejs parawirtualizacji VMI (Virtual Machine Interface), Dynticks i Clockevents,….
2.6.22 8 lipca 2007 r. Całkowicie nowa warstwa Wi-Fi, alokator pamięci SLUB, harmonogram we/wy CFQ , nowe sterowniki… (8,499 mln linii kodu).
2.6.23 9 października 2007 r. Nowy harmonogram zadań CFS , środowisko obsługi sterowników przestrzeni użytkownika UIO zintegrowane z jądrem, domyślny alokator pamięci SLUB,….
2.6.24 24 stycznia 2008 Ujednolicenie architektur i386 i x86-64 , wektorowe I/O , uwierzytelnianie urządzeń peryferyjnych USB, planowanie grupowe z CFS ,….
2.6.25 16 kwietnia 2008 SMACK (alternatywa dla SELinux ), zarządzanie magistralą CAN , przeprojektowanie timerfd , usprawnienie zarządzania w czasie rzeczywistym ….
2.6.26 13 lipca 2008 Integracja debuggera jądra kgdb , początek wsparcia dla zunifikowanych sieci o topologii mesh , wsparcie dla ekranów brajlowskich , wsparcie dla PAT dla architektury x86 , montaż "--bind" tylko do odczytu, zarządzanie prawami bezpieczeństwa według procesów ( securebits ), ulepszona wirtualizacja z KVM ….
2.6.27 LTS 9 października 2008 Zestaw sterowników kamer internetowych GSPCA , wieloplikowa  warstwa sieciowa, UBIFS , system debugowania ftrace (en) ….
2.6.28 24 grudnia 2008 Menedżer pamięci dla kart graficznych GEM ( Graphics Execution Manager ), system plików ext4 , lepsza obsługa zarządzania pamięcią, zarządzanie sieciami UWB ….
2.6.29 23 marca 2009 Integracja Btrfs , squashfs , bateryjnego WiMAX , ulepszenie eCryptfs  (w) , integracja KMS , itp..
2.6.30 9 czerwca 2009 Integracja NILFS , lokalnej pamięci podręcznej dla zdalnych systemów plików , modułu bezpieczeństwa TOMOYO, obsługa sprzętu do obiektowej pamięci masowej (11.561 mln linii kodu).
2.6.31 9 września 2009 Obsługa USB 3.0, interfejs API wyglądu fsnotify do powiadamiania o zdarzeniach związanych z systemem plików, defragmentacja dysku hot do ext4 , monitor wydajności PerfCounters .
2.6.32 LTS 3 grudnia 2009 Zapisywanie danych przez BDI, Zmiany w harmonogramie CFS, Dynamiczne zarządzanie energią, Zarządzanie integralnością TXT , devtmpfs do wyświetlania listy urządzeń, technika KSM zmniejszająca zużycie pamięci systemów zwirtualizowanych za pomocą KVM , gniazdo odpowiedzialne za funkcję TRIM przez Btrfs .
2.6.33 LTS 24 lutego 2010 System plików DRBD , Nowy sterownik , Transakcja TCP przez plik cookie, kontroler IO-Block, obsługa funkcji TRIM przez ext4 .
2.6.34 LTS 16 maja 2010 Systemy plików Ceph i LogFS, asynchroniczne czuwanie urządzeń, mechanizm bezpieczeństwa GTSM, Lockdep-RCU, VGA-Switcheroo.
2.6.35 LTS 2 sierpnia 2010 Funkcja Cpu_stop, zarządzanie energią, kompresja pamięci, wydajność sieci z RPS i RFS, jakość usług z pm_qos, zarządzanie przerwaniami.
2.6.36 20 października 2010 AppArmor , przepisanie funkcji OOM Killer , narzędzie fanotify , optymalizacje VFS .
2.6.37 5 stycznia 2011 Poprawiona wydajność ext4 i śledzenie mechanizmów ( etykieta skoku ) obsługa FITRIM (a TRIM deferred) dla ext4 , wprowadzenie alokatora pamięci memblock do wymiany early_res, bateria PPTP , pierwszy sterownik wifi Broadcom (wszyscy główni twórcy wifi mają teraz darmowy sterownik).
2.6.38 15 marca 2011 Nowe makroskopowe zarządzanie stronicowaniem , optymalizacja rozdzielczości ścieżki dostępu .
2.6.39 18 maja 2011 Wątkowe podejście do podłączania urządzeń peryferyjnych , oficjalna integracja ipsetów, obsługa FITRIM ( opóźnionego TRIM ) przez Btrfs , koniec blokady globalnej ( Big Kernel Lock ).
3,0 LTS 22 lipca 2011 Nowe buforowanie stron pamięci, ulepszenia Btrfs , nowy interfejs dostępu do alarmów BIOS , usuwanie prefetch, kompilator on-the-fly dla instrukcji porównujących stos sieciowy.
3.1 24 października 2011 Architektura OpenRISC , zarządzanie zużyciem przez cpupower , dodatki funkcji dla KVM , poprawa zarządzania pamięcią Xen , zarządzanie przepustowością dysku , wirtualny system plików , protokół BATMAN , dodanie sterowników NFC
3.2 LTS 4 stycznia 2012 Poprawa CFS , ext4 , Btrfs , MPI sterowników i grafika, rozbudowany moduł kontrolny algorytmy weryfikacji kryptograficznej i zmniejszenie stopy proporcjonalny do TCP stos , zarządzanie cyfrowymi generatorów liczb losowych i sześciokątnym secAMD Bulldozer architektur , dynamicznego zapisu zwrotnego zarządzania , montaż realizacji SHA -1 , Blowfish i Twofish , RAID-5 dla EXOFS  (en) , API Dynamic Voltage and Frequency Scaling , asynchroniczny odczyt dla SMB . Wersja 3.2.5 naprawia błąd, który istniał od wersji 2.6.38 w Active State Power Management (ASPM), który powodował nadmierne zużycie energii.
3,3 19 marca 2012 Integracja sterowników Android , libgcrypt , Open vSwitch, sterownik sieciowy „zespołowy”, architektura C6X, dodanie cgroup dla zasobów sieciowych, „naturalizacja” memcg, nowe limity infrastruktury „  kolejki bajtów  ”, bufor DMA , PAE dla procesorów ARM , obsługa LLCP i NVM Express , nowy menedżer baterii, ulepszenie ext4 i Btrfs , „gorąca” rekonstrukcja RAID, wyjście audio przez HDMI
3.4 20 maja 2012 r. Architektura X32 , dm-verity na płytce peryferyjnej , ujednolicenie zarządzania zegarami dla architektury ARM , moduł bezpieczeństwa YAMA , rozszerzenie ext4 , Btrfs , sterowniki grafiki i perf , obsługa Universal Flash Storage i HSI , algorytm Camellia w asemblerze, domeny IRQ
3,5 21 lipca 2012 Algorytm CoDel dla stosu TCP, przebudowa tabeli wyjątków x86, lepsza obsługa EDAC , NUMA , przestrzeni nazw użytkowników i logów jądra, ulepszone sterowniki Btrfs , ext4 , perf oraz AMD i intel , metoda autosleep , filtrowanie wywołań systemowych przez Seccimp, sondy uprobes, tryb naprawy dla połączeń TCP
3,6 30 września 2012 Połączone czuwanie i hibernacja, oszczędzanie energii dla ATA i PCIe, ulepszenia TCP , Btrfs i ext4 , generowanie entropii i sterowniki graficzne, usuwanie pamięci podręcznej routingu IPv4, zamiana NFS, lepsza obsługa dysków SSD w macierzy RAID
3,7 11 grudnia 2012 Wieloplatformowa kompilacja, wirtualizacja i wersja 64-bitowa dla architektury ARM, Supervisor Mode Access Prevention , zarządzanie modułem sygnatur przez MODSIGN, Wii Balance Board , procesor SPARC T4  (w) , przepisanie KMS i Nowy, ulepszony sterownik Radeon, Systemy plików TCP , perf , Btrfs i ext4 , NAT IPv6 , VXLAN, czyszczenie nagłówków
3,8 19 lutego 2013 r. Koniec obsługi i386 , dodano obsługę POWER8 , ulepszony harmonogram NUMA , ulepszone sterowniki graficzne Tegra , Intel , Nouveau i Radeon , nowy system plików F2FS oraz ulepszone Btrfs i ext4 , ulepszony Netlink , ulepszone szyfrowanie algorytmów , zarządzanie Wi-Fi 802.11ac i 802.11ad , sieciowe przestrzenie nazw dla użytkowników, implementacja RFC5961. Dodano kontenery LXC .
3,9 29 kwietnia 2013 r. Nowy tryb czuwania, przegrupowanie architektur ARM, ulepszenie sterowników graficznych Intel , Nouveau i Radeon , RAID 5 i 6 dla Btrfs , ulepszenia IPv6 , nowy filtr w Netfilter , blokowanie filtrów na gnieździe , pamięć podręczna mappera w celu korzystania z jednego urządzenia jako pamięć podręczna innego, ulepszonego algorytmu LZO
3.10 LTS 30 czerwca 2013 r. Dodano obsługę Unified Video Decoder  (w) , integrację Bcache SSD / HDD , znacznie ulepszoną obsługę procesorów Intel Haswell , ulepszoną obsługę 64-bitowych procesorów ARM, ulepszone funkcje wirtualizacji i dodanie sterowników audio. Jak w przypadku każdej nowej wersji, dostępne są aktualizacje dla systemów plików ext4 i btrfs
3.11 2 września 2013 r. Kompresja stron wymiany, kompresja jądra w LZ4 dla architektury ARM, optymalizacja tworzenia plików tymczasowych, usprawnienia dla architektur ARM i Aarch64, sterowniki graficzne intel, nVidia i ATI/AMD, redukcja zużycia kart graficznych przez Dynamic Power Zarządzanie i zarządzanie energią w stanie aktywnym , ulepszenia ext4 , Btrfs, XFS, F2FS i Luster
3.12 LTS 3 listopada 2013 r. Poprawiona wydajność cpufreq , węzły renderujące dla DRM , zarządzanie prawami dla buforów graficznych, ramki informacyjne HDMI i ultra HD, głęboki sen dla procesorów graficznych Haswell, automatyczne wyłączanie i dekodowanie sprzętowe VP3-VP4 dla kart nVidia, lepsze zarządzanie energią dla ATI / AMD karty, obsługa rdzeni graficznych Adreno, poprawiona wydajność ext4 i F2FS
3,13 20 stycznia 2014 r. Mechanizm UEFI Common Platform Error record , earlyprintk dla UEFI , seqcount/seqlocks in lockdep, automatyczne równoważenie NUMA, ograniczenie zużycia danych Intel, ulepszony sterownik dla kart GPU Adreno ARM i nVidia, dźwięk przez HDMI i GPU do zarządzania energią dla AMD/ATI, procesory zarządzania Broadwell (mikroarchitektura)  (en) i Display Serial Interface , zastąpienie iptables przez nftables , wiele kolejek do zapisu plików przez systemy wielordzeniowe , lepsze zarządzanie loginuid , ulepszenie / dev / urandom
3.14 LTS 31 marca 2014 r. Obsługa koprocesorów kryptograficznych AMD , chipset Intel Merrifield i nowe procesory ARM i MIPS, ulepszone sterowniki graficzne AMD i Intel, akceleracja dla procesorów graficznych nVidia GK110 / GK208, tymczasowe adresy IPv6 w przestrzeni użytkownika, autocap TCP, debugger dla filtra pakietów BSD , ulepszenie Btrfs i F2FS , usprawnienie wirtualizacji przez Xen .
3.15 8 czerwca 2014 Obsługuje tryb mieszany EFI , obsługuje zestaw instrukcji AVX-512  (w) , ulepszony harmonogram, porzucenie starych platform x86, ulepszone zarządzanie klawiszami jasności, ulepszone darmowe sterowniki graficzne, ulepszona ochrona przed atakami typu odmowa usługi , obsługiwany poziom bezpieczeństwa Bluetooth 4 , stabilizowane systemy plików ext3 / 4 i ulepszone XFS, Btrfs, F2FS
3.16 LTS 3 sie 2014 Ulepszone darmowe sterowniki graficzne, TCP Fast Open dostępne dla IPv6, poprawki luk, ulepszenia systemów plików XFS, Btrfs, F2FS, Reiser4 i NFS
3,17 5 października 2014 r. Obsługa trybu bezczynności przez generację Broadwell (mikroarchitektura)  (en) , obsługa nowych układów ARM, obsługa końcowych architektur IBM POWER3 i IBM RS64 , ulepszone bezpłatne sterowniki graficzne, poprawki luk w zabezpieczeniach, ulepszenia systemów plików F2FS, NFS, XFS i Btrfs
3.18 LTS 7 grudnia 2014 Przyspieszony stan gotowości, ulepszona obsługa CLANG , bezpłatne ulepszenia sterowników graficznych, poprawki luk w zabezpieczeniach, ulepszenia systemu wirtualizacji Xen i KVM , F2FS, NFS, OverlayFS , ulepszenia systemu plików Ceph
3.19 8 lutego 2015 r. Obsługa nowych układów ARM , obsługa technologii Intel MPX  (w) , ulepszone zarządzanie problemem roku 2038 , poprawa darmowych sterowników graficznych , poprawki luk w zabezpieczeniach , ulepszenia systemu plików f2fs , NFS , OverlayFS , Ceph , Btrfs i SquashFS , ulepszenia systemów wirtualizacji Xen
4.0 12 kwietnia 2015 r. Aktualizacja jądra w locie, obsługa chipów Trusted Platform Module 2.0, bezpłatne ulepszenia sterowników graficznych, poprawki luk w zabezpieczeniach, ulepszenia systemu plików F2FS, OverlayFS, Ceph i Btrfs, ulepszenia systemu wirtualizacji KVM i Virtio
4.1 LTS 21 czerwca 2015 Obsługa nowych chipów (ARM, Xilinx , Qualcomm ), usprawnienie zarządzania energią, gruntowna aktualizacja architektury x86 , usunięcie luk, usprawnienie darmowych sterowników graficznych, systemów plików i systemów wirtualizacji
4.2 30 sierpnia 2015 r. Wsparcie dla nowych chipów (ARM, Hitachi H8 ), ulepszone blokady , ulepszona wydajność sieci, ulepszone moduły bezpieczeństwa, poprawione luki, ulepszone darmowe sterowniki graficzne, Btrfs, Ext4, FUSE, F2FS systemy plików i systemy Wirtualizacja KVM i Xen
4,3 1 st listopad 2.015 Grafika Intel Skylake włączona domyślnie, obsługa AMD Radeon R9 Fury, obsługa OpenGL dla VMware, przepisywanie sterowników NVIDIA / Nouveau, zniknięcie sterownika EXT3 (obsługiwane przez sterownik EXT4), wiele ulepszeń dla XFS, EXT4, F2FS , Btrfs, RAID5 / 6 i TRIM .
4.4 LTS 10 stycznia 2016 Obsługa akceleracji grafiki w maszynie wirtualnej, usprawnienie I/O (bezpośrednie i asynchroniczne), obsługa dysków SSD z otwartym kanałem, logowanie RAID5 w warstwie MD (RAID/ LVM ), z programów eBPF mogą korzystać użytkownicy nieuprzywilejowani, nowi piloci .
4,5 13 marca 2016 r. Poprawia zarządzanie zużyciem energii. Wstępne wsparcie dla AMD PowerPlay  (w) . Ogromna przeróbka architektur ARM v6 i ARM v7.
4,6 15 maja 2016 r. Dodanie systemu plików OrangeFS  (pl) , dodano obsługę USB 3.1, obsługuje wersję 5 protokołu BATMAN .
4,7 24 lipca 2016 r. Zarządzanie kontrolerami Microsoft Xbox One, Apple/Intel Thunderbolt (interfejs) i USB/IP.
4,8 4 września 2016 Wspiera przetaktowywania z AMDGPU (poprzez OverDrive wsparcia).
4,9 LTS 11 grudnia 2016 Ulepszenia bezpieczeństwa jądra. AMDGPU obsługuje AMD PowerPlay  (w) . Kompatybilny z Raspberry Pi Zero.
4.10 30 kwietnia 2017 r. Ulepszenia (ex Amlogic S905) i poprawki (ex AMD Ryzen ).
4.11 1 st May wykupu w 2017 r Ulepszenia i poprawki.
4.12 2 lipca 2017 r. Zapewnia obsługę USB Type-C i IMSM ( Intel Matrix RAID  (en) Storage Manager).
4.13 3 września 2017 r. Ulepszenia ( ext4 , I/O , akceleracja TLS ) i poprawki.
4.14 LTS 12 listopada 2017 r. Zwiększona maksymalna pamięć RAM zarządzana na architekturach x86_64 , Wsparcie dla nowych urządzeń ARM i poprawek.
4.15 28 stycznia 2018 Ulepszenia dotyczące odporności na Meltdown (podatność) i Spectre (podatność) , wiele ulepszeń dotyczących AMDGPU .
4.16 16 maja 2018 r. Ulepszenia dotyczące odporności na luki w zabezpieczeniach procesorów. Dodanie drugiej części kodu dotyczącej AMD Secure Encrypted Virtualization  (en) .
4.17 3 czerwca 2018 r. Ulepszenia dla jądra 4.17.
4.18 12 sierpnia 2018 r. Ulepszenia dla jądra 4.18.
4.19 LTS 22 października 2018 r. Ulepszenia dla jądra 4.19.
4.20 23 grudnia 2018 Ulepszenia dla jądra 4.20.
5.0 3 marca 2019 r. Udoskonalenie darmowego sterownika dla AMD Radeon VII, podniesienie renderowania do poziomu, którego nie osiągnął żaden darmowy sterownik GPU, i konkurowanie bezpośrednio z zastrzeżonym sterownikiem dla Nvidii. .
5.1 5 maja 2019 r. Ulepszenia dotyczące VFS z dodatkiem fsopen, ulepszenia asynchronicznego io z integracją io_uring. .


5.2 7 lipca 2019 r. Ulepszenia w jądrze 5.2.
5,3 15 września 2019 r. Ulepszenia dotyczące jądra 5.3.
5.4 24 listopada 2019 r. Ulepszenia dotyczące jądra 5.4.
5,5 26 stycznia 2020 Ulepszenia dla jądra 5.5.
5,6 29 marca 2020 Ulepszenia dla jądra 5.6.
5,7 31 maja 2020 r. Ulepszenia dla jądra 5.7.
5,8 2 sie 2020 Ulepszenia w jądrze 5.8.
5,9 11 października 2020 r. Ulepszenia w jądrze 5.9.
5.10 13 grudnia 2020 r. Ulepszenia dla jądra 5.10.
5.11 14 lutego 2021 Ulepszenia dla jądra 5.11.


Źródło: www.kernel.org

 

Zarządzanie wersjami

Rdzeń od dawna utrzymywany był bez kontroli wersji systemu , głównie dlatego, że Linus Torvalds nie lubił scentralizowanych systemów kontroli wersji.

W 2002 r. jądro przeszło na Bitkeeper , zastrzeżony system kontroli wersji, który spełniał wymagania techniczne Linusa Torvaldsa. Korzystanie z tego oprogramowania było oferowane bezpłatnie programistom jądra . Jednak nie będąc wolnym oprogramowaniem , wybór tego produktu wywołał kontrowersje w społeczności. System nie był na przykład interoperacyjny z systemami kontroli wersji typu open source, takimi jak CVS i SVN .

W Kwiecień 2005, wysiłki Andrew Tridgella, by przeprowadzić inżynierię wsteczną Bitkeepera, doprowadziły BitMover, wydawcę tego oprogramowania, do zaprzestania wsparcia dla rozwoju Linuksa. W odpowiedzi Linus Torvalds i kilku innych opracowali nowy system kontroli wersji: Git . Pierwsza wersja Gita została napisana w ciągu kilku tygodni, a dwa miesiące później została wydana nowa wersja jądra opracowanego za pomocą Git. Rozwój i utrzymanie oprogramowania Git zostało następnie szybko pozostawione Junio ​​Hamano i społeczności. Od tego czasu został szeroko przyjęty, między innymi przez społeczność wolnego oprogramowania.

Charakterystyka techniczna

Kompilacja jądra

Podobnie jak wszystkie programy komputerowe, jądro Linuksa jest napisane jako kod źródłowy i musi zostać przekształcone w wykonywalny plik binarny, aby mógł zostać zrozumiany przez mikroprocesor.

O ile kod źródłowy jądra Linuksa zawiera bardzo dużą ilość funkcjonalności, użytkownik może zdecydować się na integrację tylko tych, które są dla niego przydatne lub najlepiej dostosowane (wiele funkcjonalności jest współbieżnych): jest to etap konfiguracji jądra.

Zdecydowana większość dystrybucji GNU/Linux instaluje wstępnie skompilowane jądro, które spełnia potrzeby stacji roboczych i serwerów. Dlatego rzadko zdarza się, aby użytkownik Linuksa musiał skompilować jądro. Kompilacja umożliwia dostosowanie jądra do konkretnych potrzeb, takich jak obsługa nietypowego sprzętu, aktywacja eksperymentalnych funkcjonalności czy adaptacja do konkretnych platform, takich jak systemy wbudowane.

Kod źródłowy jądra Linux jest dostępny na kernel.org , ale dystrybucje GNU / Linux zapewniają również spakowane źródła ich depozytów.

Najważniejszym krokiem w budowaniu niestandardowego jądra jest konfiguracja jądra. Opcje konfiguracyjne są zadeklarowane w pliku .config, każda z nich odpowiada funkcjonalności jądra, z której decydujemy się używać lub nie. Generalnie możliwe są trzy opcje:

  • Y : funkcjonalność jest skompilowana i zaimplementowana w obrazie jądra
  • M : funkcja jest kompilowana jako moduł
  • N : funkcja jest ignorowana

Niektóre opcje są wyborem binarnym: funkcja jest zawarta w obrazie jądra lub nie jest skompilowana.

Istnieje kilka narzędzi do dostosowania konfiguracji:

  • make config : program w trybie tekstowym, który wyświetla wszystkie opcje i prosi o wprowadzenie wyboru
  • make menuconfig : narzędzie w trybie tekstowym napisane za pomocą ncurses , pozwala na łatwiejszą nawigację w konfiguracji
  • make gconfig : narzędzie graficzne oparte na GTK +
  • make xconfig : narzędzie graficzne oparte na Qt
  • make defconfig : narzędzie używane do pobierania domyślnych parametrów konfiguracyjnych jądra. Parametry te są podawane przez programistów jądra za każdym razem, gdy jądro jest publikowane.
  • make oldconfig : narzędzie pozwalające na pobranie parametrów konfiguracyjnych starej wersji jądra, aby nie uruchamiać konfiguracji od nowa.
  • make olddefconfig : narzędzie pozwalające na pobranie domyślnych parametrów konfiguracyjnych jądra i domyślne ustawienie pozostałych parametrów.
  • make localmodconfig : narzędzie używane do pobierania parametrów konfiguracyjnych jądra aktualnie uruchomionego na komputerze w celu załadowania tylko niezbędnych modułów.

Kompilacja jądra i modułów odbywa się za pomocą polecenia make. Ta operacja może zająć dość dużo czasu, jednak użycie argumentu -jskraca czas kompilacji. To ze szkodą dla reaktywności innych programów, a tym samym systemu operacyjnego. Instalacja jest zautomatyzowana, polecenia make installi make modules_installodpowiednio umożliwiają instalację obrazu jądra i jego modułów.

Aby umożliwić uruchomienie systemu z nowym obrazem jądra, konieczne jest skonfigurowanie programu ładującego ( LILO , GRUB ), aby uruchamiał obraz jądra podczas startu. Z ( GRUB , GRUB2 ) polecenie update-grub automatyzuje konfigurację.

Dystrybucja Debiana zawiera narzędzie, make-kpkgktóre automatyzuje powyższe kroki i tworzy pakiety Debiana. Pozwala to na łatwe wdrożenie na dużej liczbie komputerów. W przeciwnym razie, nadal dla Debiana, możemy wprowadzić poleceniasudo su ; make menuconfig ; make deb-pkg ; cd ../ ; dpkg -i *deb

Interfejsy

Ruchliwość

Chociaż początkowym celem projektu było dostarczenie jądra podobnego do UNIX na architekturach x86 , dostępność źródeł pozwoliła współtwórcom na dostosowanie go do bardzo dużej liczby architektur .

Linux może działać na komputerach konsumenckich, a także na 500 topowych superkomputerach. listopad 2011 : w tym rankingu Linux był obecny na 91,4% maszyn.

Jądro jest również używane w systemach wbudowanych, wyposażonych w skromniejszy sprzęt; niektóre z najbardziej znanych przykładów to systemy nawigacji satelitarnej TomTom lub telefony z dystrybucją Linux Android .

Kodowanie znaków

Podczas gdy większość aplikacji została opracowana do pracy z określonymi kodowaniami znaków , konstrukcja jądra Linuksa jest taka, że ​​używane kodowanie znaków nie jest znane. W szczególności, tak jak w starym Unixie, nazwa plików jest traktowana jako ciąg bajtów, bez możliwości poznania w sposób deterministyczny, jaki konkretnie tekst reprezentuje, przy braku znajomości używanego kodowania znaków.

Jeśli chodzi o shebang , jądro Linuksa zakłada, że ​​skrypty będą pisane w kodowaniu znaków rozszerzającym ASCII , bez dołączania bajtu flagi przed pierwszym znakiem , co może mieć miejsce w Unicode . Jednak tekst Unicode może przejść przez jądro, zwłaszcza podczas dostępu do systemów plików NTFS lub CIFS / Samba .

Sprzeczanie się

Proste hobby studenta na początku, jądro Linuksa umożliwiło pojawienie się wolnych systemów operacyjnych w bezpośredniej konkurencji z innymi komercyjnymi systemami operacyjnymi. Od momentu wydania na wiele architektur (po wersji 1.0) jest celem działań prawnych  :

  • O marce: w 1995 roku , kiedy Linux zyskał już pewien rozgłos, ktoś wpadł na pomysł zarejestrowania marki Linux , czego nikt nie zrobił. Reakcja społeczności była silna, spór został rozstrzygnięty poza sądem, a Linus stał się właścicielem nazwy Linux (a zatem mógł odmówić lub nie do dystrybucji uznanej za zbyt komercyjną).
  • O prawie autorskim: pozew przeciwieństwie SCO do IBM na temat jądra Linux: patrz na ten temat SCO przeciwko Linux .
  • O patentach software'owych: niezgodne z ideą interoperacyjności, niezbędną dla sukcesu wolnego oprogramowania, patenty software'owe stanowią zagrożenie dla Linuksa. Takie patenty są wydawane w Stanach Zjednoczonych, ale zostały odrzucone przez Parlament Europejski .

Opinie

Brad Spengler , programista w grsecurity , oskarża jądro Linuksa o to, że czasami skupia swoje wysiłki na funkcjonalności ze szkodą dla bezpieczeństwa. Twierdzi, że Linus Torvalds powiedział mu, że nie jest zainteresowany dodawaniem użytecznych opcji bezpieczeństwa w celu uniknięcia przepełnienia bufora, ponieważ spowolniłoby to ładowanie aplikacji .

Krytykuje brak osoby oficjalnie odpowiedzialnej za bezpieczeństwo, z którą można by komunikować się prywatnie i całkowicie bezpiecznie. Zamiast tego jedynym rozwiązaniem jest wysłanie wiadomości e-mail na listę dyskusyjną dotyczącą problemów z bezpieczeństwem, gdzie wykryte luki są czasami wykorzystywane do złośliwych celów przed opublikowaniem aktualizacji zabezpieczeń, podczas gdy użytkownicy Linuksa nie są świadomi istnienia tej luki.

Wreszcie, kwestionuje implementację systemu LSM od wersji 2.6 jądra, która zostałaby zaimplementowana luźno i ułatwiłaby wstawianie niewidzialnych rootkitów do systemu, przekazując je jako moduły bezpieczeństwa. Ta recenzja nie jest już istotna dzięki zmianom wprowadzonym od wersji 2.6.24.

Uwagi i referencje

  1. (w) „  Oficjalnie, Linux został wydany 17 września 1991  ” (dostęp 10 kwietnia 2018 )
  2. Linus Torvalds , „  Linux 5.12  ” ,25 kwietnia 2021(dostęp 26 kwietnia 2021 )
  3. (w) Linus Benedict Torvalds , "  comp.os.minix  " ,sierpień 1991(dostęp 6 września 2009 )
  4. Te informacje pochodzą z dokumentu Birth of Linux , dostępnego na Wikiźródłach . Zawiera kwestionowane wiadomości i ich tłumaczenia.
  5. Informacje o wydaniu dla Linuksa v0.12
  6. (w) „  Wydana wersja jądra Linux 1.0.0  ” na www.webdevelopersnotes.com (dostęp 7 grudnia 2017 )
  7. (w) Nate Larkin , Samson and the Pirate Monks: Calling Men to Authentic Brotherhood , Thomas Nelson,18 lutego 2007, 224  s. ( ISBN  978-1-4185-7769-8 , czytaj online )
  8. Według Larsa Wirzeniu w prezentacji wygłoszonej w 1998 roku: Anegdoty o Linuksie
  9. "  US Reg nr: 1916230  " , Biuro Patentów i Znaków Towarowych USA (dostępny na 1 st kwietnia 2006 )
  10. Sébastien Broca , Utopia wolnego oprogramowania: od majsterkowania komputerowego do społecznej rewizji , wyd. pasażer na gapę,2013( ISBN  978-2-916952-95-6 i 2916952950 , OCLC  867598251 , czytaj online )
  11. katedra i bazar , autorstwa Erica S. Raymonda.
  12. [PDF] The Linux Foundation, „  Linux Kernel Development  ” ,2009(dostęp 4 lutego 2010 )
  13. „  The Linux Kernel Open Source Project: Languages ​​Page  ” na Open Hub (dostęp 30 września 2015 )
  14. Open Source: 75% współtwórców Linuksa jest opłacanych w ZDNet
  15. Wiadomość Linusa na LKML
  16. Wydanie Linuksa 2.1.80
  17. Kernel 2.6.16 wydany na LinuxFr.org
  18. Kernel 2.6.17 wydany na LinuxFr.org
  19. Kernel 2.6.18 wydany na LinuxFr.org
  20. Kernel 2.6.19 wydany na LinuxFr.org
  21. Kernel 2.6.20 wydany na LinuxFr.org
  22. Kernel 2.6.21 wydany na LinuxFr.org
  23. Kernel 2.6.22 wydany na LinuxFr.org
  24. Kernel 2.6.23 wydany na LinuxFr.org
  25. Kernel 2.6.24 wydany na LinuxFr.org
  26. Kernel 2.6.25 wydany na LinuxFr.org
  27. Kernel 2.6.26 wydany na LinuxFr.org
  28. Kernel 2.6.27 wydany na LinuxFr.org
  29. Kernel 2.6.28 wydany na LinuxFr.org
  30. Kernel 2.6.29 wydany na LinuxFr.org
  31. Kernel 2.6.30 wydany na LinuxFr.org
  32. Kernel 2.6.31 wydany na LinuxFr.org
  33. Kernel 2.6.32 wydany na LinuxFr.org
  34. Kernel 2.6.33 wydany na LinuxFr.org
  35. Kernel 2.6.34 wydany na LinuxFr.org
  36. Kernel 2.6.35 wydany na LinuxFr.org
  37. Kernel 2.6.36 wydany na LinuxFr.org
  38. Kernel 2.6.37 wydany na LinuxFr.org
  39. Kernel 2.6.38 wydany na LinuxFr.org
  40. Kernel 2.6.39 wydany na LinuxFr.org
  41. "  Wydano jądro Linuksa 3.0  " , na linuxfr.org ,22 lipca 2011(dostęp 22 kwietnia 2015 )
  42. „  Jądro Linux 3.1 wydane  ” , na linuxfr.org ,24 października 2011(dostęp 22 kwietnia 2015 )
  43. "  Wydano jądro Linuksa 3.2  " , na linuxfr.org ,5 stycznia 2012(dostęp 22 kwietnia 2015 )
  44. "  Wydano jądro Linuksa 3.3  " , na linuxfr.org ,19 marca 2012(dostęp 22 kwietnia 2015 )
  45. "  Wydano jądro Linuksa 3.4  " , na linuxfr.org ,21 maja 2015(dostęp 22 kwietnia 2015 )
  46. "  Wydano jądro Linux 3.5  " , na linuxfr.org ,22 lipca 2012(dostęp 22 kwietnia 2015 )
  47. "  Wydano jądro Linuksa 3.6  " , na linuxfr.org ,1 st październik 2012(dostęp 22 kwietnia 2015 )
  48. "  Linux kernel 3.7 wydany  " , na linuxfr.org ,11 grudnia 2012(dostęp 22 kwietnia 2015 )
  49. "  Wydano jądro Linuksa 3.8  " , na linuxfr.org ,19 lutego 2015(dostęp 22 kwietnia 2015 )
  50. "  Wydano jądro Linuksa 3.9  " , na linuxfr.org ,29 kwietnia 2013 r.(dostęp 22 kwietnia 2015 )
  51. "  Wydano jądro Linuksa 3.10  " , na linuxfr.org ,3 lipca 2013 r.(dostęp 22 kwietnia 2015 )
  52. "  Wydano jądro Linuksa 3.11  " , na linuxfr.org ,3 września 2013 r.(dostęp 22 kwietnia 2015 )
  53. "  Wydano jądro Linuksa 3.12  " , na linuxfr.org ,6 listopada 2013(dostęp 22 kwietnia 2015 )
  54. "  Wydano jądro Linuksa 3.13  " , na linuxfr.org ,21 stycznia 2015(dostęp 22 kwietnia 2015 )
  55. (w) "  Linux 3.14 AMD's Recording Cryptographic Coprocessor - Phoronix  " na phoronix.com ( dostęp 24 lutego 2021 ) .
  56. "  Jądro Linuksa 3.14 wydane  " , na linuxfr.org
  57. "  Wydano jądro Linuksa 3.15  " , na linuxfr.org ,12 czerwca 2014(dostęp 22 kwietnia 2015 )
  58. "  Wydano jądro Linuksa 3.16  " , na linuxfr.org ,7 sierpnia 2014(dostęp 22 kwietnia 2015 )
  59. "  Wydano jądro Linuksa 3.17  " , na linuxfr.org ,13 października 2014(dostęp 22 kwietnia 2015 )
  60. "  Wydano jądro Linuksa 3.18  " , na linuxfr.org ,17 grudnia 2014(dostęp 22 kwietnia 2015 )
  61. "  Wydano jądro Linuksa 3.19  " , na linuxfr.org ,16 lutego 2015(dostęp 22 kwietnia 2015 )
  62. "  Wydano jądro Linuksa 4.0  " , na linuxfr.org ,22 kwietnia 2015 r.(dostęp 22 kwietnia 2015 )
  63. "  Jądro Linux 4.1 wydane - LinuxFr.org  " , na linuxfr.org (dostęp 26 lipca 2015 )
  64. „  Wydane jądro Linuksa 4.2 – LinuxFr.org  ” , na linuxfr.org (dostęp 17 września 2015 )
  65. (w) "  Wydano kernel Linux 4.4 - kernelnewbies.org  "
  66. "  Jądro Linux 4.5 wydane - LinuxFr.org  " , na linuxfr.org (dostęp 20 kwietnia 2016 )
  67. „  Wydane jądro Linuksa 4.6 – LinuxFr.org  ” , na linuxfr.org (dostęp 6 czerwca 2016 )
  68. „  Wydane jądro Linux 4.7 – LinuxFr.org  ” , na linuxfr.org (dostęp 28 września 2016 )
  69. „  Wydane jądro Linuksa 4.8 – LinuxFr.org  ” , na linuxfr.org (dostęp 16 grudnia 2016 r. )
  70. „  Wydane jądro Linuksa 4.9 – LinuxFr.org  ” , pod adresem linuxfr.org (dostęp 8 lutego 2017 r. )
  71. „  Wydane jądro Linuksa 4.10 – LinuxFr.org  ” , pod adresem linuxfr.org (dostęp 8 lutego 2017 r. )
  72. „  Wydane jądro Linuksa 4.11 – LinuxFr.org  ” , na linuxfr.org (dostęp 26 czerwca 2020 r. )
  73. "  Linux_4.12 - Linux Kernel Newbies  " , na kernelnewbies.org ( dostęp 24 lutego 2021 ) .
  74. "  Linux_4.13 - Linux Kernel Newbies  " , na kernelnewbies.org ( dostęp 24 lutego 2021 ) .
  75. "  Linux_4.14 - Linux Kernel Newbies  " , na kernelnewbies.org ( dostęp 24 lutego 2021 ) .
  76. "  Linux_4.15 - Linux Kernel Newbies  " , na kernelnewbies.org ( dostęp 24 lutego 2021 ) .
  77. „  Linux_4.16 – Linux Kernel Newbies  ” na stronie kernelnewbies.org (dostęp 24 lutego 2021 r . ) .
  78. „  Linux_4.17 – Linux Kernel Newbies  ” na stronie kernelnewbies.org (dostęp 24 lutego 2021 r . ) .
  79. "  Linux_4.18 - Linux Kernel Newbies  " , na kernelnewbies.org ( dostęp 24 lutego 2021 ) .
  80. "  Linux_4.19 - Linux Kernel Newbies  " , na kernelnewbies.org ( dostęp 24 lutego 2021 ) .
  81. "  Linux_4.20 - Linux Kernel Newbies  " , na kernelnewbies.org ( dostęp 24 lutego 2021 ) .
  82. „  Jądro Linux 5.0 wydane – LinuxFr.org  ” , pod adresem linuxfr.org (dostęp 24 lutego 2021 r . ) .
  83. „  Wydane jądro Linux 5.1 – LinuxFr.org  ” , pod adresem linuxfr.org (dostęp 24 lutego 2021 r . ) .
  84. http://lkml.iu.edu/hypermail/linux/kernel/1907.0/05444.html
  85. https://lore.kernel.org/lkml/CAHk-=wiP4K8DRJWsCo=20hn_6054xBamGKF2kPgUzpB5aMaofA@mail.gmail.com/
  86. https://lore.kernel.org/lkml/CAHk-=wjmzaD=BZ1hjUYu+RTnSGDLfCRwCdg99GeQpCjEwo9uzw@mail.gmail.com/
  87. https://lore.kernel.org/lkml/CAHk-=wigRZ6TSJU09bMk3Df2DiOw83B7TrQUq+iXroQCK5EVAQ@mail.gmail.com/
  88. https://lore.kernel.org/lkml/CAHk-=wi9ZT7Stg-uSpX0UWQzam6OP9Jzz6Xu1CkYu1cicpD5OA@mail.gmail.com/
  89. https://lore.kernel.org/lkml/CAHk-=wiZGrCkiBB1V7bxp8NZH6yWi9mPM4ptMW16OzOiNprBFA@mail.gmail.com/
  90. https://lore.kernel.org/lkml/CAHk-=wj+mDPbj8hXspXRAksh+1TmPjubc9RNEbu8EVpYyypX=w@mail.gmail.com/
  91. https://lore.kernel.org/lkml/CAHk-=wi-u86++np80GQvgDuARdt9xpBNho6SjHLmYgm8jibGag@mail.gmail.com/
  92. https://lore.kernel.org/lkml/CAHk-=whCKhxNyKn1Arut8xUDKTwp3fWcCj_jbL5dbzkUmo45gQ@mail.gmail.com/
  93. https://lore.kernel.org/lkml/CAHk-=wg8LpRi9+P2_V+ehJ2_EoJifNh2QmVf47aLXfkCd-1UAQ@mail.gmail.com/
  94. Dystrybucja jądra Linux
  95. „UWAGA! Nienawidzę scentralizowanego modelu SCM” Wiadomość od Torvaldsa na liście dyskusyjnej jądra
  96. Linux Torvalds, „  Jądro SCM saga ..  ” ,2005(dostęp 5 listopada 2009 )
  97. (w) Lista dyskusyjna jądra Linuksa, „  Linux 2.6.12  ” ,17 czerwca 2005
  98. „  Wykres na Top500.org  ” ( ArchiwumWikiwixArchive.isGoogle • Co robić? ) (Dostęp 30 marca 2013 )
  99. Dziennik Linuksowy 1997
  100. Świat komputerów 07/07/2005
  101. (w) John P. Mello Jr. „  Deweloper Raps Linux Security  ” na LinuxInsider ,1 st styczeń 2005(dostęp 13 stycznia 2013 )
  102. (w) polityka wobec systemu LSM grsecurity.net
  103. (w) Artykuł lwn.net na temat przejścia w statycznym API LSM

Załączniki

Powiązane artykuły

Filmografia

  • Revolution OS , JTS Moore  (w) 2001
  • Nazwa kodowa: Linux , Hannu Puttonen, 2002

Linki zewnętrzne