Linux (kernel)
| Operační systém Linux | |
|---|---|
| Načítání linuxového jádra 2.6.24.4, Knoppix 5.3.1 | |
| Vývojář | Linus Torvalds a další |
| Rodina | POSIX |
| Počáteční vydání | 1.0 (13. března 1994 [1] ) |
| Aktuální vydání | 5.19.9 (15. září 2022) a 6.0-rc6 (18. září 2022) |
| Typ jádra | Monolitický |
| Podporované platformy | Alpha AXP , Sun SPARC, Motorola 68000 , PowerPC , ARM , Hitachi SuperH, IBM S / 390, MIPS , HP PA-RISC, Intel IA-64, AMD x86-64, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8 / 300, NEC V850, Intel Quarz, Tensilica Xtensa, Analog Devices Blackfin [2] |
| Grafická rozhraní | Různá desktopová prostředí fungující na X Window , CLI nebo vestavěných systémech |
| Typ licence | Svobodný software |
| Licence | GNU GPLv2 |
| Vývojová fáze | Probíhá (nepřetržitý vývoj) |
| webová stránka | www.kernel.org |
Linux je jádro , vytvořené v roce 1991 Linusem Torvaldsem a odvozené z UNIXu , distribuované pod licencí svobodného softwaru GNU GPLv2 (spíše než proprietární software ), také včetně několika firmwarů pod nesvobodnými licencemi [3] [4] . Často se používá ve spojení s operačním systémem GNU , vytvořeným Richardem Stallmanem , dal život rodině operačního systému Linux , rozšířené v různých distribucích (přímý přístup k jádru uživatelem/ administrátorem v uživatelském režimu / režimu jádra je získán prostřednictvím tzv. Linuxová konzole ). Vývojová aktivita podporovaná Linux Foundation vedla ke standardizaci známé jako Linux Standard Base , zatímco pokus o implementaci zcela bezplatného jádra představuje Linux-libre .
Historie
V dubnu 1991 Linus Torvalds , finský student informatiky na univerzitě v Helsinkách , ve věku 21 let, začal pracovat na několika jednoduchých nápadech pro operační systém. Začalo to kontextovým přepínačem naprogramovaným v assembleru na procesoru Intel 80386 a ovladačem terminálu . V tomto bodě, 25. srpna 1991, Torvalds napsal příspěvek [5] , jehož překlad je hlášen:
|
« Programuji operační systém (zdarma a jen pro hobby, ne zamýšlel být velký a profesionální jako GNU) pro klony AT 386 (486). Od dubna se připravuje a začíná fungovat. Zajímalo by mě, co se vám na Minixu líbí a nelíbí, jelikož se mu částečně podobá můj OS (mimo jiné stejné fyzické rozložení souborového systému, z praktických důvodů). Převedl jsem bash shell (v.1.08) a GCC (v.1.40) a zdá se, že fungují. To znamená, že za pár měsíců něco zprovozním a rád bych věděl, jaké funkce chce většina lidí. Jakýkoli návrh je vítán, i když vám nemohu slíbit, že ho provedu." |
Linus začal programovat jádro na architektuře MINIX , svobodném operačním systému naprogramovaném univerzitním profesorem Andrewem S. Tanenbaumem , který později práci finského studenta hodně kritizoval.
Po zveřejnění tohoto příspěvku na vývoji projektu spolupracovalo mnoho lidí a Linus 5. října 1991 vydal verzi 0.02 jádra, asi měsíc po vydání verze 0.01, která nebyla příliš úspěšná. U příležitosti vydání napsal následující příspěvek [6] :
|
«Litujete dobrých dnů Minixu 1.1, kdy muži byli muži a sami psali ovladače? Chybí vám dobrý projekt a toužíte si zlomit kosti s Operačním systémem, který si můžete zkusit upravit podle svých potřeb? Připadá vám frustrující, že na Minixu vše funguje? Netrávíte více nocí získáváním programu, který funguje úžasně? Pak by měl být tento příspěvek vytvořen právě pro vás Jak jsem řekl před měsícem, pracuji na bezplatné verzi klonu Minix pro počítače AT-386. Konečně to dospělo do fáze, kdy je to použitelné (i když to nemůže záviset na tom, co chcete) a já jsem pro zveřejnění zdrojů pro masy. Je to pouze verze 0.02 (velmi malý patch je již připraven), ale úspěšně jsem spustil shell bash / GCC / GNU-make / GNU-sed / komprimovat atd. Zdroje tohoto mého projektu jsou ke stažení nic.funet.fi ve složce / pub / Linux . Složka také obsahuje některé soubory README a několik binárních souborů ke spuštění pod Linuxem (bash, update a gcc.) Je poskytnut úplný zdrojový kód jádra, protože nebyl použit žádný kód z Minixu. Zdroj knihoven je pouze částečně zdarma, a proto není v současné době distribuovatelný. Systém můžete zkompilovat tak, jak je, a bylo zjištěno, že funguje. Heh. Binární zdroje (bash a gcc) lze nalézt na stejném místě v / pub / gnu. POZORNOST! POZNÁMKA! Tyto zdroje potřebují ke kompilaci minix-386 (a gcc-1.40, nebo, nebylo testováno, 1.37.1) a správně nastavit, aby fungovaly, takže to ještě není samostatný systém pro ty, kteří Minix nemají. Pracuji na tom. Musíte být také dost zkušení, abyste to správně nastavili, takže pro ty, kteří doufají v alternativu minix-386, mě prosím ignorujte. V současnosti je zaměřen na odborníky se zájmem o operační systémy a 386 s přístupem k Minixu. Systém vyžaduje pevný disk kompatibilní s AT (IDE je v pořádku) a EGA / VGA. Pokud máte zájem, stáhněte si README a poznámky k vydání a/nebo mi pošlete e-mail pro více informací. Slyším vás (víceméně) ptát se „proč?“. Hurd vyjde za rok (nebo 2, nebo příští měsíc, kdo ví) a já už mám Minix. Jedná se o program pro programátory napsaný programátorem. Psaní mě bavilo a někteří by si to mohli rádi prohlédnout a dokonce upravit pro vlastní potřeby. Je dost malý na to, aby se dal pochopit, používat a upravovat, a jsem zvědavý na vaše komentáře. Také bych rád slyšel od každého, kdo napsal nějakou utilitu nebo knihovní funkci pro Minix. Pokud je vaše úsilí volně šiřitelné (pod autorským právem nebo dokonce ve veřejné doméně), rád bych vás slyšel, abych je mohl přidat do systému. Momentálně používám Earl Chews estdio (díky za pěkný a fungující systém Earl) a podobné práce uvítám. Vaše C bude očividně ponecháno nedotčené. Napiš mi, jestli mi chceš dovolit použít tvůj kód." |
Byla zahájena diskusní skupina alt.os.linux a první příspěvek byl zveřejněn 19. ledna 1992. [7] 31. března 1992 se alt.os.linux změnil na comp.os.linux . [8]
Brzy byl X Window System portován na Linux. První verze Linuxu, na které bylo možné spustit X, byla 0.95 v březnu 1992. Tento velký skok v číslování verzí (z 0,1x na 0,9x) byl způsoben tím, že verze 1.0 bez chybějících částí byla velmi blízko. Tento pocit byl však příliš optimistický a od roku 1993 do začátku roku 1994 bylo vydáno 15 verzí verze 0.99.
14. března 1994 byl vydán Linux 1.0.0 se 176 250 řádky kódu. V březnu 1995 byl vydán Linux 1.2.0 (310 950 řádků kódu).
Verze 2 Linuxu, vydaná 9. června 1996, byla následována dalšími hlavními verzemi pod předponou verze 2:
- 25. ledna 1999 - Vydán Linux 2.2.0 (1 800 847 řádků kódu).
- 18. prosince 1999 - Byly vydány opravy pro sálové počítače IBM 2.2.13, které umožnily instalaci Linuxu na stroje podnikové úrovně.
- 4. ledna 2001 - Vydán Linux 2.4.0 (3 377 902 řádků kódu).
- 17. prosince 2003 - Vydán Linux 2.6.0 (5 929 913 řádků kódu).
- 9. října 2008 – Vydán Linux 2.6.27 (9 709 868 řádků kódu) [9] .
- 24. prosince 2008 - Vydán Linux 2.6.28 (10 195 402 řádků kódu).
- 20. října 2010 - Vydán Linux 2.6.36 (13 499 457 řádků kódu). [10]
- V červenci 2011, na oslavu 20. výročí narození Linuxu, se Torvalds rozhodl přejít na 2-místný systém číslování a vydal verzi 3.0 jádra. Poslední vydání řady 2.6 bylo 2.6.39.
První zveřejněná verze nového systému číslování - 3.0 - obsahuje 14 646 952 řádků kódu. - 8. března 2015 – Vydána první beta nové verze jádra 4.0.
- 12. března 2015 - Vyšlo stabilní vydání Linuxu 4.0 a od této chvíle bude číslování obsahovat pouze desetinné číslo.
Debata Tanenbaum-Torvalds
Skutečnost, že Linux je spíše monolitické jádro než mikrokernel , byla předmětem debaty Tanenbaum - Torvalds . Debata začala v roce 1992 o Linuxu a architektuře jádra obecně na diskusní skupině Usenet comp.os.minix . [11] Tanenbaum tvrdil, že mikrojádra jsou lepší než monolitická jádra, a proto je Linux zastaralý. Na rozdíl od tradičních monolitických jader se ovladače snadno konfigurují jako moduly jádra a načítají se nebo ne za běhu systému. Tento argument byl znovu vznesen 9. května 2006 [12] a 12. května 2006. [13]
Popis
Linuxové jádro , jeden z nejúspěšnějších příkladů open source softwaru , [14] tvoří jádro operačních systémů rodiny Linux nebo linuxových distribucí . [15] Původně byl vytvořen v roce 1991 některými finskými studenty informatiky [16] včetně Linuse Torvaldse , vedoucího skupiny. Následně jeho vývojářů a uživatelů najednou přibylo a zapojili se do projektu svobodného softwaru a přispěli k vývoji nového operačního systému. [17]
Vydán, volně stažitelný [1] a upravitelný / přizpůsobitelný pod bezplatnou licencí GNU GPL [18] (spolu s některým firmwarem s různými licencemi), je průběžně a volně vyvíjen spolupracovníky z celého světa prostřednictvím své komunity , přičemž vývoj že každý den probíhá pomocí relativního mailing listu , zcela analogickým způsobem , jakým jsou vyvíjeny internetové protokoly . Zdrojový kód Linuxu je tedy dostupný všem a je široce přizpůsobitelný, takže je možné během kompilační fáze vyloučit kód, který není nezbytně nutný.
Jako každý projekt, který je svobodným softwarem , se proto linuxové jádro neustále vyvíjí [19] s exponenciálním růstem velikosti jádra, přidáváním nových modulů, nového podporovaného hardwaru a tak dále. Hlavní vývojová větev linuxového jádra zajišťuje, že obsahuje také některé nesvobodné, zatemněné nebo skryté části, jako jsou některé ovladače . Projekt Linux-libre se místo toho navrhuje jako zcela bezplatná varianta Linuxu, ze které se zrodilo několik zcela bezplatných distribucí . [20]
Jako „srdce“ operačního systému (jádra) zajišťuje všechny základní funkce systému, zejména správu primární paměti , systémových hardwarových prostředků a periferií , které čas od času přiřazuje běžícím procesům . Protějškem jádra je shell , což je uživatelské rozhraní systému, nejvzdálenější část. Programy požadují prostředky z jádra prostřednictvím systémových volání a nemají přímý přístup k hardwaru.
Stará se tedy o správu procesorového času , komunikace a paměti, rozděluje je do probíhajících procesů podle priorit ( plánování ), čímž dosahuje multitaskingu . Podporuje tedy multitasking a je víceuživatelský : to umožňuje různým uživatelům (s různými oprávněními) spouštět různé softwarové procesy současně na stejném systému. Linux v současné době podporuje velkou část hardwaru dostupného pro PC a podporuje velké množství architektur (včetně SPARC , PowerPC , ARM a nejmodernějších 64bitových CPU ) .
Linux podporuje multitasking s předběžnou verzí (v uživatelském režimu i režimu jádra ), virtuální paměť , sdílené knihovny , načítání na vyžádání , sdílené spustitelné soubory typu copy-on-write , správu paměti , sadu internetových protokolů a vytváření vláken . Flexibilita tohoto jádra jej činí vhodným pro všechny nově vznikající vestavěné technologie a také v distribuovaných výpočetních centrech (jako je cluster Beowulf ) až po začlenění do některých digitálních videorekordérů a mobilních telefonů .
Architektura
Linux je monolitické jádro . Ačkoli dnes lze jádro zkompilovat tak, aby měl minimalizovaný binární obraz a ovladače, které lze načíst z externích modulů, původní architektura je jasně viditelná: ve skutečnosti musí mít všechny ovladače část spuštěnou v režimu jádra , dokonce i ty, u kterých by to vůbec nebylo nutné (např . ovladače souborového systému ).
Ovladače a rozšíření jádra fungují v prostoru jádra ( kruh 0 na většině procesorů ), s plným přístupem k hardwaru, i když některé výjimky fungují v uživatelském prostoru . Grafický systém , který většina lidí používá s Linuxem, nefunguje v prostoru jádra. Předběžné přidělení režimu jádra umožňuje za určitých podmínek předem přidělit ovladače zařízení. Tato funkce byla zavedena, aby správně zvládla hardwarová přerušení a zlepšila podporu pro symetrický multiprocesorový systém (SMP). Preallocation také zlepšuje latenci , zvyšuje odezvu a dělá Linux vhodnější pro aplikace v reálném čase.
Přenositelnost
Přestože Linux původně nebyl navržen jako přenosný , je jedním z nejpřenosnějších jader operačního systému, který je schopen běžet na široké škále systémů od iPAQ (kapesní počítač) po IBM System z9 ( sálový server schopný provozovat stovky nebo tisíce souběžných instancí Linuxu). Linux je primární operační systém superpočítačů IBM Blue Gene . Linux je operačním systémem pro více než 97 % systémů v žebříčku Top 500 superpočítačů. [21] Kromě toho byl Linux zkompilován do mnoha přenosných zařízení, jako je TuxPhone a iPod společnosti Apple.
Programovací jazyky
Linux je napsán ve verzi programovacího jazyka C podporovaného kompilátorem GCC (který zavedl četná rozšíření a změny standardu C), spolu s řadou krátkých částí kódu napsaných v jazyce assembler (syntaxe GCC se stylem „AT&T“ ). Díky rozšířením C, které podporuje, byl GCC dlouhou dobu jediným kompilátorem schopným správně zkompilovat Linux. V roce 2004 Intel tvrdil, že upravil jádro tak, aby jeho C kompilátor byl také schopen kompilovat Linux. [22]
Mnoho dalších jazyků se nějakým způsobem používá, zejména v procesu kompilace jádra (metody, ve kterých je ze zdrojového kódu vytvořen zaváděcí obraz). Patří mezi ně Perl , Python a několik jazyků shellu . Některé ovladače mohou být také napsány v C ++ , Fortran nebo jiných jazycích, ale tento postup se důrazně nedoporučuje. Linuxový build systém oficiálně podporuje GCC pouze jako kompilátor jádra i ovladače.
Možnosti kompilace
Linuxové jádro má konfigurovatelné možnosti sestavení , které vám umožní přidat nebo odebrat specifické funkce z jádra během počátečního sestavení. Během této poslední fáze lze také nakonfigurovat některé vlastní výchozí parametry.
Objekty jádra
Položky jádra jsou funkce, proměnné, hlavičkové soubory a makra. [23]
Záhlaví jádra
Záhlaví jádra jsou soubory záhlaví C, které poskytují sdílení některých definic jádra ABI na nízké úrovni mezi jádry a aplikacemi v uživatelském prostoru . Většina aplikací tyto hlavičky nepotřebuje: jsou pouze pro přímé použití systémovými knihovnami, obslužnými programy a nízkoúrovňovými démony. [24]
Příkaz "" make headers_install, když je spuštěn ve zdrojovém stromu jádra, exportuje hlavičkové soubory jádra ve formě vhodné pro použití programy v uživatelském prostoru. [25]
Při exportu se většina hlaviček jádra nachází v adresářích /usr/include/asmand/usr/include/linux
Kernel panic
V Linuxu je "panika" neopravitelná systémová chyba zjištěná jádrem na rozdíl od podobných chyb zjištěných v režimu uživatelského prostoru . Kód režimu jádra má schopnost indikovat takový stav voláním funkce panicdeklarované v záhlaví souboru sys / system.h. Většina paniky jádra je však výsledkem výjimek v kódu jádra, jako jsou neplatné odkazy na adresy paměti . Toto je obvykle index
- chyba někde v řetězci volání vedoucí k panice jádra;
- poškození hardwaru, jako je poškozená buňka RAM nebo chyby aritmetických funkcí v procesoru způsobené chybou procesoru , přehřátý, poškozený procesor;
- softwarová chyba ;
- chyba v parametrech poskytovaných zavaděčem , jako je obraz initrd .
Podporované binární formáty
Linux 1.0 podporoval binární formát a.out a ELF , což zjednodušuje vytváření sdílených knihoven (ve velké míře využívané moderními desktopovými prostředími jako KDE a GNOME [26] ). ELF je standardní formát používaný GCC od verze 2.7.0 [27] , takže a.out se dnes používá velmi zřídka.
Linux podporuje mnoho dalších binárních formátů, včetně binfmt misc pro přidružení souboru k programu (jako je interpret ) za účelem spuštění nebo zobrazení tohoto souboru.
Architektury virtuálních strojů
Linuxové jádro má rozsáhlou podporu a běží na mnoha architekturách virtuálních strojů jako operační systém „server“ i „klient“. Virtuální stroje obvykle emulují rodinu procesorů architektury x86 , i když v některých případech jsou emulovány také procesory PowerPC nebo AMD64 .
Verze
Zatímco vyvíjí svůj vlastní kód a integruje modifikace vytvořené jinými programátory, Linus Torvalds pokračuje ve vydávání nových verzí linuxového jádra. Říká se jim „vanilkové“ verze, což znamená, že nebyly upraveny nikým jiným. Mnoho distribucí Linuxu upravuje jádro pro svůj systém, hlavně za účelem přidání podpory pro ovladače nebo funkce, které nebyly oficiálně vydány jako stabilní, zatímco jiné distribuce používají jádro vanilla.
Vývojový model
Vývojový model pro Linux 2.6 se značně liší od modelu Linuxu 2.5. Dříve existovala stabilní větev (2.4), kde byly prováděny pouze relativně malé a bezpečné změny, a nestabilní větev (2.5), kde byly povoleny větší změny. To znamenalo, že uživatelé měli vždy verzi s nejnovějšími opravami, ale museli čekat na nové přírůstky z větve 2.5. Nevýhodou tohoto procesu bylo, že stabilní verze jádra postupem času přestala podporovat nejnovější hardware a postrádala funkce, které byly postupně potřeba.
Ke konci série 2.5.x se někteří vývojáři rozhodli provést určité změny ve stabilní větvi, což však vedlo k nárůstu problémů v sérii 2.4.x jádra. Větev 2.5 byla poté prohlášena za stabilní a přejmenována na 2.6. Místo otevření nestabilní větve 2.7 vývojáři stále dělali velké změny ve stabilní větvi. Tímto způsobem byly změny monitorovány přesněji, a to jejich rozdělením na menší části, rychlým zpřístupněním nových funkcí a rozšířením počtu lidí, kteří testují nejnovější kód.
Nový model vývoje, který charakterizuje 2.6, také zajišťuje, že neexistuje žádná stabilní větev pro lidi, kteří hledají pouze opravy chyb nebo související se zabezpečením, ale nepotřebují nejnovější funkce. Opravy jsou aplikovány pouze v nejnovější verzi, takže pokud chce uživatel verzi s opravenými všemi známými chybami, získá všechny nejnovější funkce současně, ale riskuje, že (v některých případech) některé věci nebudou fungovat déle než v předchozí verze fungovaly. Částečná oprava tohoto problému byla zmíněna dříve (viz čtvrtá číslice čísla verze): charakterizuje nová jádra, ale neřeší zcela některé potřeby, které byste při použití stabilní větve neměli. Distribuce, jako je Red Hat a Debian [28] , již ve svých vydáních obsahují určitý typ jádra: většině lidí je lepší používat výchozí verze.
V reakci na nedostatek stabilní větve jádra (zamýšlené jako větev, kde se neprovádějí žádné nové změny, pouze opravy), Adrian Bunk v prosinci 2005 oznámil, že bude pokračovat ve vydávání jádra 2.6.16.y, i když bude vydána verze 2.6.17. [29] Plánovalo také zahrnout aktualizace ovladačů, čímž se vývoj řady 2.6.16 velmi podobal vývoji staré 2.4. [30]
10. října 2008 vyšla stabilní verze 2.6.27. [31] . V únoru téhož roku pak vývojáři vymysleli nestabilní větev jádra , nazvanou linux-next : místo pro hostování změn, se záměrem je zahrnout do dalšího vývojového cyklu. [32]
V červenci 2011 , na oslavu 20. výročí narození Linuxu, se Torvalds rozhodl vydat verzi 3.0 jádra a přešel na dvoumístný systém číslování. Poslední vydání řady 2.6 bylo 2.6.39.
Kontrola verzí
V minulosti byl zdrojový kód linuxového jádra spravován bez použití automatického systému správy verzí ( SCM), a to hlavně kvůli tomu, že Torvalds nemá rád centralizované SCM.
V roce 2002 vývoj jádra přešel na BitKeeper , SCM, který splňoval technické požadavky Torvaldse a byl do určité míry interoperabilní s jinými systémy, jako je CVS a Subversion . Ačkoli Torvalds a další vývojáři získali BitKeeper zdarma, skutečnost, že to nebyl svobodný software , vyvolala kontroverze.
Pokusy Andrewa Tridgella o reverzní inženýrství na BitKeeper přesvědčily BitMover, společnost, která BitKeeper provozovala, aby ukončila svou podporu pro vývojovou komunitu Linuxu. V důsledku toho Torvalds a další napsali nový systém pro správu verzí, nazvaný git ; nový software byl napsán za několik týdnů ao dva měsíce později byla vydána první oficiální verze linuxového jádra s git. [33] Krátce nato se git stal nezávislým projektem, který si získal širokou popularitu v komunitě svobodného softwaru.
Údržba
Linus Torvalds je správcem změn a vydání nejnovějších verzí jádra: delegoval údržbu starších verzí na jiné programátory. Některé starší verze jako 2.0 (oficiálně zastaralé jádrem 2.2.0 vydaným v lednu 1999) jsou aktualizovány pouze tehdy, když je to považováno za nutné a změny jsou velmi vzácné.
| Série jádra | Současná verze | Dozorce |
|---|---|---|
| 2,0 | 2.0.40 | David Weinehall [34] |
| 2.2 | 2.2.27-rc2 | Marc-Christian Petersen [35] (bývalý vedoucí Alan Cox ) |
| 2.4 | 2.4.37-rc2 | Willy Tarreau [36] (bývalý vedoucí Marcelo Tosatti ) |
| 2.6.16 | 2.6.16.62 | Adrian Bunk [37] |
| 2.6.17+ | (časté změny) | Linus Torvalds |
| 2,6.x-mm | (rychle se mění) | Andrew Morton |
Dalšími známými programátory linuxového jádra jsou Robert Love a Ingo Molnár . [38]

Číslování verzí
Verze linuxového jádra se dlouhou dobu skládala ze tří čísel, ale nedávno byl tento systém změněn a nyní se verze skládá ze čtyř číslic, ve tvaru "ABC [.D]", například 2.2.1, 2.4.13 , nebo 2.6.12.3;
- 'A' označuje verzi jádra, která je modifikována velmi zřídka a pouze tehdy, když dojde k radikálním změnám v kódu (do roku 2008 se tak stalo pouze dvakrát, v roce 1994 se zavedením verze 1.0 a v roce 1996 s verzí 2.0 ) nebo z pamětních důvodů (verze 3, v roce 2011, za 20 let linuxového jádra);
- „B“ označuje „hlavní“ revizi jádra:
- před sérií 2.6.x sudá čísla (například 1.2, 2.4 nebo 2.6) označovala stabilní větev a lichá čísla (například 1.1 nebo 2.5) označovala vývojové větve, kde se experimentovaly s novými funkcemi a ovladači, dokud nebyly považovány za vhodné k zařazení do stájové větve;
- počínaje řadou 2.6.x ztrácí rozlišování mezi sudými a lichými čísly smysl, protože v rámci stejné větve dochází k vývoji nových charakteristik, aby se dosáhlo lineárnějšího vývoje;
- 'C' označuje "menší" revizi jádra: ve starém schématu číslování se toto číslo zvýšilo, když byly do jádra implementovány aktualizace zabezpečení, opravy chyb, nové funkce nebo nové ovladače; podle aktuálního modelu se toto číslo změní pouze při zavedení nových ovladačů nebo jiných funkcí, protože drobné opravy se počítají od čísla označeného „D“;
- používání 'D' začalo, když byl v kódu NFS 2.6.8 nalezen vážný problém vyžadující okamžitou opravu . Nebylo třeba provádět změny, které by ospravedlnily vydání menší revize (která by se stala verzí 2.6.9), takže bylo vydáno 2.6.8.1 s jedinou opravou této chyby. Od 2.6.11 byl tento model přijat jako nové oficiální paradigma. Opravy a bezpečnostní záplaty se nyní počítají takto, se čtvrtou číslicí, zatímco pokud dojde k podstatnějším změnám, použije se třetí číslice. Číslice 'D' je také spojena s počtem, kolikrát kompilátor sestavil jádro, a nazývá se "číslo sestavení".
Někdy lze za verzí nalézt i další písmena, například 'rc1' nebo 'mm2'; 'rc' je kandidátská verze pro přijetí jako stabilní a označuje neoficiální vydání. Jiná písmena jsou naproti tomu často (ale ne vždy) iniciály osoby: to signalizuje rozvětvení jádra touto osobou. Například „ck“ znamená Con Kolivas , „ac“ znamená Alan Cox , zatímco „mm“ znamená Andrew Morton . Někdy se písmena vztahují k základnímu rysu jádra. Například „wl“ označuje testovací verzi pro bezdrátové sítě.
Historické verze
První verze jádra byla 0.01. Následovaly 0,02, 0,03, 0,10, 0,11, 0,12 (první verze vydaná pod licencí GNU General Public License ), 0,95, 0,96, 0,97, 0,98, 0,99 a 1,0. [39] Od verze 0.95 do těchto bylo mezi verzemi vydáno několik oprav.
Stabilní historie verzí
Existují dvě stabilní hlavní verze jádra Linux 1. x : 1.0 a 1.2. Verze 1.0 byla vydána 14. března 1994 [40] Tato verze linuxového jádra byla kompatibilní pouze se systémy i386 s jedním procesorem . Později se objevily obavy také o přenositelnost, a tak verze 1.2 (vydaná 7. března 1995 [41] ) začlenila podporu pro systémy založené na architekturách DEC Alpha , SPARC a MIPS . Toto byla poslední stabilní verze vydaná v 1. x sérii linuxového jádra.
Verze 2. x linuxového jádra zaznamenala velké množství změn, zejména v řadě 2.6 a ve způsobu, jakým je vyvíjena, udržována a vydávána. Verze 2.0, 2.2 a 2.4 byly vytvořeny pomocí starého vývojového systému, kde každé z jader vycházelo ze stabilní verze předchozího. Verze 2.0 byla vydána 9. června 1996 [42] . V této sérii bylo 41 vydání. Hlavním rysem jádra 2.0 byla podpora SMP (tedy podpora více procesorů na jednom systému) a podpora více typů procesorů.
Verze 2.2 (vydaná 26. ledna 1999 [43] ) odstranila globální spinlock , poskytla lepší podporu pro symetrické multiprocesing a přidala podporu pro architektury m68k a PowerPC a také přidala nové souborové systémy (včetně podpory pouze pro čtení pro souborový systém Microsoft NTFS ). [44] Vývoj 2.4. x se trochu změnil. V této sérii byly ve skutečnosti nové funkce zpřístupněny během vývoje samotné série. Verze 2.4.0, vydaná 4. ledna 2001, [45] obsahovala podporu pro ISA Plug and play , USB a PC Card . [46] Zahrnoval také podporu pro procesory Hewlett - Packard PA-RISC . Během vývoje 2.4. bylo přidáno x dalších funkcí včetně: podpora Bluetooth , Logical Volume Manager (LVM) verze 1, podpora RAID , InterMezzo FS a ext3 FS .
S příchodem 2.6. x linuxového jádra se změnil systém číslování tak, aby číslo verze jádra mohlo obsahovat 4 číslice, což mu dalo formát 2.6. x _ y (kde. y je nepovinné). Nové funkce jsou nyní přidávány mezi vydáními x a vydáními, vydání y jsou obvykle vyhrazena pro opravy chyb. Verze 2.6.0 byla vydána 18. prosince 2003. [47] . Mezi změny provedené v této sérii patří: integrace µClinux do hlavních zdrojů jádra, podpora PAE , podpora několika nových řad CPU , integrace ALSA do hlavních zdrojů jádra, podpora pro počet uživatelů až 2 32 (2 16 v předchozích verzích), podpora až 2 30 procesů (2 15 v předchozích verzích), podstatný nárůst počtu typů zařízení a počtu zařízení pro každý typ, vylepšená podpora 64bitových procesorů, podpora souborového systému až 16 terabajtů , preempce v jádře , podpora Native POSIX Thread Library a integrace základních zdrojů Linuxu a SELinuxu , podpora Infiniband a mnoho dalšího. Stejně důležité je přidávání různých souborových systémů během různých vydání řady 2.6. x : FUSE , JFS , XFS , ext4 a další [48] .
V červenci 2011, na oslavu 20. výročí narození Linuxu, se Torvalds rozhodl přejít na 2-místný systém číslování a vydal verzi 3.0 jádra. Poslední vydání řady 2.6 bylo 2.6.39.
12. března 2015 vychází stabilní vydání Linuxu 4.0.
Odhadované náklady na vývoj
Náklady na re-vývoj linuxového jádra verze 2.6.0 z proprietární perspektivy byly v roce 2004 odhadnuty na 612 milionů $ (467 milionů EUR) pomocí modelu odhadu COCOMO člověk-měsíc . [49]
V roce 2006 studie financovaná EU odhadla, že vývoj jádra 2.6.8 nebo vyšší od nuly (z proprietární perspektivy) by stál 882 milionů EUR. [50]
Právní aspekty
Ochranná známka
Linux je registrovaná ochranná známka Linuse Torvaldse ve Spojených státech a dalších zemích. Toto je výsledek incidentu, ve kterém William Della Croce Jr., který se nepodílel na vývoji projektu Linux, zaregistroval jméno a následně požádal o licenční poplatek za jeho použití. Několik příznivců Linuxu vyhledalo právní radu a podalo žalobu na Dellu Croce, která v roce 1998 souhlasila s přidělením značky Torvaldsovi.
Licenční podmínky
Zpočátku Torvalds vydal Linux s licencí, která zakazovala komerční využití. Brzy však ustoupila GNU General Public License (GPL) od verze 0.12. Tato licence povoluje distribuci a prodej upravených nebo neupravených verzí Linuxu za předpokladu, že jsou vydány pod stejnou licencí a že také poskytnete odpovídající zdrojový kód.
Torvalds popsal přijetí GPL jako "nejlepší věc, kterou jsem kdy udělal." [51]
GPL verze 3
V současné době Linux přijímá verzi 2 licence GPL , bez možnosti (na rozdíl od mnoha programů vydaných pod licencí GPL), které by umožňovaly použití pokročilejší verze, a existují určité spory o tom, s jakou snadností by bylo možné používat pozdější verze. 3 (a jak je to žádoucí). [52] Sám Torvalds během vydání verze 2.4.0 upřesnil, že jeho kód přijímá pouze verzi 2 licence. [53] Podmínky licence GPL však uvádějí, že pokud není specifikována žádná verze, lze použít kteroukoli, a Alan Cox poukázal na to, že pouze několik přispěvatelů do Linuxu specifikovalo konkrétní verzi licence GPL. [54] Blogger dospěl k závěru, že asi 40 % kódu Linuxu je konkrétně licencováno pod licencí „GPL2 nebo vyšší“ a dalších asi 10 % pod licencí „GPL“ (s nespecifikovanou verzí), což dohromady tvoří asi polovina jádra. V září 2006 průzkum mezi 29 klíčovými vývojáři jádra ukázal, že 28 z nich preferovalo GPLv2 před GPLv3 tehdy ve stavu návrhu. Torvalds to komentoval: "Myslím, že velké množství lidí zvenčí věřilo, že já jsem ten divný, protože jsem veřejně prohlásil, že nejsem velkým fanouškem GPLv3." [55]
Načítatelné moduly jádra a firmware
Není jasné, zda načítatelné moduly jádra (LKM) mají být považovány za odvozená díla podle autorského zákona , a tudíž spadají pod podmínky licence GPL. Torvalds tvrdil, že LKM, používající pouze omezenou podmnožinu „veřejných“ rozhraní jádra, někdy nelze považovat za odvozená díla, a proto je možné mít některé pouze binární ovladače a další LKM, které nepřijímají licenci GPL. Ne každý, kdo přispívá k vývoji Linuxu, však s touto interpretací souhlasí, a dokonce i sám Torvalds připouští, že mnoho LKM jsou jednoznačně odvozená díla, a ve skutečnosti napsal, že „moduly jádra JSOU odvozené práce ‚ve výchozím nastavení‘“.
Na druhou stranu Torvalds také řekl, že „šedá oblast je něco jako ovladač původně napsaný pro jiný operační systém (tj. zjevně ne původně odvozené dílo od Linuxu). [...] TO je šedá oblast a _to_ je oblast, kde si osobně myslím, že některé moduly nelze považovat za odvozená díla jednoduše proto, že nebyly navrženy pro Linux a nezávisí na žádném speciálním chování Linuxu." [56] V centru debaty jsou zejména proprietární grafické ovladače. Tyto otázky nakonec pravděpodobně vyřeší pouze soud.
Licenční bod sporu spočívá v tom, že Linux používá „binární“ firmware pro podporu určitých hardwarových zařízení. Richard Stallman tvrdí, že tento software činí Linux částečně neotevřeným softwarem a že distribuce Linuxu může také porušovat licenci GPL (která vyžaduje přítomnost veškerého zdrojového kódu). [57]
V reakci na to zahájila Free Software Foundation Latin America (FSFLA) projekt nazvaný Linux-libre , jehož cílem bylo vytvořit zcela svobodné jádro bez proprietárních modulů, které bude použito ve zcela bezplatných distribucích, jako je Trisquel GNU / Linux [ 58 ] [59] .
Soudní spory SCO
V březnu 2003 skupina SCO podala žalobu proti IBM a obvinila ji z porušení autorských práv na zdrojový kód Unixu vložením částí tohoto kódu do Linuxu. Společnost SCO navíc rozeslala dopisy několika společnostem s varováním, že používání Linuxu bez licence SCO by mohlo být porušením autorského zákona, a řekla tisku, že budou jednotlivé uživatele Linuxu žalovat. IBM poté slíbilo, že bude své linuxové zákazníky bránit. Tento soudní spor vyvolal řadu soudních sporů podaných společností SCO proti Novell , Daimler (částečně staženo v červenci 2004), AutoZone a odvetných žalob podaných společností Red Hat a dalšími proti společnosti SCO.
Na začátku roku 2007 poskytla společnost SCO konkrétní podrobnosti o údajném porušení autorských práv. Na rozdíl od předchozích tvrzení, že SCO vlastní 1 milion řádků kódu, specifikovali pouze 326 řádků kódu, z nichž většina nebyla chráněna autorským právem. [60] V srpnu 2007 soud v případu Novell rozhodl, že SCO ani nevlastní autorská práva na Unix. [61]
Poznámky
- ^ Linux : Vydání 0.01 , na kerneltrap.com . Získáno 9. ledna 2011 (z originálu archivováno 10. června 2011) .
- ^ Platformy podporované linuxovým jádrem na kernel.org . Staženo 23. července 2010 .
- ^ KOPÍROVÁNÍ , na kernel.org . _ _ Staženo 24. března 2016 .
- ^ Index: kernel / git / stable / linux-stable.git , na git.kernel.org ( archivováno z originálu 8. prosince 2016 ) .
- ^ Linus Torvalds , co byste si přáli v minixu vidět nejvíce ? , na comp.os.minix , 26. srpna 1991. Staženo 25. prosince 2008 .
- ^ Linus Torvalds , bezplatné zdroje jádra podobné minixu pro 386-AT , comp.os.minix , 5. října 1991. Staženo 25. prosince 2008 .
- ^ David W Summers, Troubles with Partitions , na alt.os.linux / comp.os.minix , 19. ledna 1992. Získáno 24. prosince 2008 ( archivováno 24. prosince 2008) .
- ^ Alan B Clegg, je to tady! , na comp.os.linux , 31. března 1992. Staženo 24. prosince 2008 ( archivováno 24. prosince 2008) .
- ^ " Data jádra Linuxu ."
- ^ " Data jádra Linuxu ."
- ^ Andrew Stuart Tanenbaum, LINUX je zastaralý , comp.os.minix , 29. ledna 1992. Získáno 25. prosince 2008 (archivováno z originálu 25. prosince 2008) .
- ^ Linus Torvalds, hybridní jádro, nikoli NT , na realworldtech.com , 9. května 2006. Staženo 6. ledna 2007 .
- ^ Andy Tanenbaum, Debata Tanenbaum-Torvalds: Část II , na cs.vu.nl , 12. května 2006. Staženo 6. ledna 2007 .
- ^ Linus Torvalds, Re: GPLv3 Position Statement , na lkml.org , 25. září 2006.
- ^ Soubor README , na git.kernel.org . _ Získáno 12. listopadu 2010 (z originálu archivováno 24. července 2012) .
- ^ Marjorie Richardso, Rozhovor: Linus Torvalds , linuxjournal.com , Linux Journal, 1. listopadu 1999. Staženo 20. srpna 2009 .
- ^ Sam Williams, Kapitola 9: Obecná veřejná licence GNU , zdarma jako ve svobodě , O'Reilly Media. Staženo 16. února 2011 .
- ^ Soubor COPYING , na git.kernel.org . _ Získáno 16. února 2011 (z originálu archivováno 21. prosince 2012) .
- ^ Nové verze lze nalézt na kernel.org
- ^ GNU Linux-libre, zdarma jako Freedo , na Free Software Foundation Latin America . Staženo 21. ledna 2015 .
"Linux, jádro vyvinuté a distribuované Linusem Torvaldsem a spol., obsahuje nesvobodný software, tj. software, který nerespektuje vaše základní svobody, a nutí vás k instalaci dalšího nesvobodného softwaru, který neobsahuje."
- ^ Operační systém Family / Linux | TOP 500 superpočítačových webů , na top500.org , 500 nejlepších superpočítačových webů, listopad 2014.
- ^ Záplata linuxového jádra pro Intel Compiler Archivováno 22. července 2011 v internetovém archivu .
- ^ Ovladače zařízení pro Linux, 2. vydání: Kapitola 2: Vytváření a spouštění modulů
- ^ Gmane Loom
- ^ Dokumentace linuxového jádra :: make: headers_install.txt
- ^
ldd /usr/bin/kwinuvádí 40 sdílených knihoven (kwin 3.5.5a);ldd /usr/bin/gnome-paneluvádí 68 (gnome-panel 2.14.3). - ^ Daniel Barlow, The Linux ELF HOWTO , na ibiblio.org , 13. září 1995. Získáno 19. července 2007 (z originálu archivováno 12. října 2007) .
- ^ ( EN , IT ) TDAH_FUIT (TDAH_, ve zkratce) The_Debian_Administrator's_Handbook_free_unofficial_Italian_translation , na bezplatném neoficiálním překladu do italštiny - FUIT na Github.com . Staženo 2. května 2022 .
- ^ Linux: 2.6.16.y žije dál | KernelTrap
- ^ Linux: Údržba stromu 2.6.16.y | KernelTrap
- ^ Archivy jádra Linuxu
- ^ linux-next a proces správy oprav [LWN.net]
- ^ Linux Kernel Mailing List, Linux 2.6.12 , na marc.info , 17. června 2005.
- ^ David Weinehall, [OZNÁMENÍ] Linux-kernel 2.0.40 aka The Moss-covered Tortoise, na kerneltrap.org , 8. února 2004 (z originálu archivováno 30. května 2012) .
- ^ Marc-Christian Petersen, Linux 2.2.27-rc2 , na kerneltrap.org , 13. ledna 2005 (archivováno z originálu 30. května 2012) .
- ^ Willy Tarreau, Linux 2.4.37-rc1 , marc.info , 7. září 2008.
- ^ Adrian Bunk, Linux 2.6.16.62 , linux-kernel , marc.info , 21. července 2008.
- ^ Úplný seznam viz soubor Linux MAINTAINERS .
- ^ Linux Kernel Archives – Volume 1 Archived 11. května 2005 na Archive.is . (Riley Williams)
- ^ Vydání zdrojového kódu jádra 1.0 , na kernel.org . Získáno 27. 10. 2008 .
- ^ Vydání zdrojového kódu jádra 1.2 , na kernel.org . Získáno 27. 10. 2008 .
- ^ Kernel 2.0 . _ x Vydání zdrojového kódu , na kernel.org . Získáno 27. 10. 2008 .
- ^ Kernel 2.2 . _ x Vydání zdrojového kódu , na kernel.org . Získáno 27. 10. 2008 .
- ^ Báječný svět Linuxu 2.2 , na kniggit.net . Získáno 27. října 2008 (z originálu archivováno 18. listopadu 2005) .
- ^ Kernel 2.4 . _ x Vydání zdrojového kódu , na kernel.org . Získáno 27. 10. 2008 .
- ^ Báječný svět Linuxu 2.4 , na kniggit.net . Získáno 27. října 2008 (z originálu archivováno 18. listopadu 2005) .
- ^ Kernel 2.6 . _ x _ y Vydání zdrojového kódu na kernel.org . Získáno 27. 10. 2008 .
- ^ Více podrobností o historii jádra řady 2.6 lze nalézt v protokolu změn, který se nachází v oblasti vydání zdrojového kódu jádra řady 2.6
- ^ David A. Wheeler, Linuxové jádro 2.6: Stojí to za víc! , na dwheeler.com , 12. října 2004. Staženo 28. června 2016 .
- ^ Ekonomický dopad FLOSS na inovace a konkurenceschopnost sektoru ICT v EU ( PDF ) , na ec.europa.eu , 20. listopadu 2006, 50-51 . Získáno 28. června 2016 (Archivováno z originálu 6. července 2015) .
- ^ Hiroo Yamagata, Pragmatik svobodného softwaru , na hotwired.goo.ne.jp , HotWired, 1997. Získáno 21. února 2007 (archivováno z originálu 10. února 2007) .
- ^ Jonathan Corbet, GPLv3 and the kernel , na lwn.net , LWN.net , 31. ledna 2006. Staženo 21. února 2007 .
- ^ Linus Torvalds, Linux-2.4.0-test8 , v archivu mailing listu jádra Linuxu , uwsg.iu.edu , Unix Systems Support Group of Indiana University , 8. září 2000. Získáno 21. února 2007 (archivováno z původní adresy URL dne 27. srpna 2006) .
- ^ Alan Cox, Re: GPL V3 a Linux , v archivu mailing listu jádra Linuxu , lwn.net , 20. ledna 2006. Staženo 21. února 2007 .
- ^ Stephen Shankland, nejlepší linuxoví programátoři pan GPL 3 , na news.com.com , News.com , 25. září 2006. Staženo 21. února 2007 .
- ^ Re: Linux GPL a klauzule o výjimce binárního modulu? Archivováno 27. září 2006 v internetovém archivu .
- ^ Richard Stallman, Linux, GNU a svoboda , na gnu.org , Free Software Foundation , 11. října 2006. Staženo 21. února 2007 .
- ^ Linux – bezplatný projekt _, na linux-libre.fsfla.org , https://www.fsfla.org/ . Získáno 6. dubna 2010 .
- ^ Trisquel GNU / Linux - libre , na trisquel.info . Získáno 6. dubna 2010 .
- ^ Zpráva ze soudní budovy 7. března na groklaw.net . Získáno 1. prosince 2008 (z originálu archivováno 7. srpna 2011) . Groklawský článek
- ^ Soudní řád: Novell vlastní autorská práva na UNIX a UnixWare na groklaw.net . Groklawský článek
Bibliografie
- Daniel Bovet, Marco Cesati, Understanding the Linux Kernel , O'Reilly, 2005, třetí vydání
- Tigran Aivazian, Linux Kernel 2.4 Internals , 2002, https://web.archive.org/web/20081216014256/http://www.moses.uklinux.net/patches/lki.html
- LinuxChanges , https://kernelnewbies.org/LinuxChanges , seznam změn provedených v jednotlivých verzích jádra
- Linus Torvalds a David Diamond, náhodou revolucionáři. Jak jsem vyrobil Linux (jen pro zábavu) , Garzanti, 2001. ISBN 88-11-73896-2 .
Související položky
- Alan Cox
- Podpora dynamických modulů jádra
- WILDEBEEST
- Linux
- Unix
- Linux-libre
- Linus Torvalds
- Linuxová konzole
- Linux Standard Base
- Bezpečnostní moduly pro Linux
- Linux se zvýšenou bezpečností
- System.map
- Kernel panika
- Linuxové jádro jejda
- Virtuální stroj založený na jádru
- Marcelo Tosatti
- Kategorie: Operační systémy využívající jádro Linux
Další projekty
Wikinews obsahuje aktuální zprávy o linuxovém jádře
Wikimedia Commons obsahuje obrázky nebo jiné soubory o jádře Linuxu
Externí odkazy
- ( EN ) Oficiální stránky na kernel.org .
- Linux na adrese packages.debian.org .
- Zdrojové úložiště Linuxu na git.kernel.org .
- Stránka hlášení chyb na bugzilla.kernel.org .
- Linux a GNU na gnu.org .