Co přinesl Kernel 2.6 nového
Kompilace jádra - Nová koncovka .ko (kernel object), zúžený výpis při kompilaci, přehlednější menu (jiná organizace kvůli jinému pohledu na hardware).
Do poslední chvíle nebylo jasné, zda-li se nové jádro bude „jmenovat“ 3.0 nebo 2.6. To vše díky velkým rozšířením jako je podpora procesorů NUMA (non uniform memory access) a procesorů bez MMU (memory managment unit).
Historie - Linux 1.0 - 1994 (podpora pouze i386). Linux1.2 -1995 (alpha, sparc, mips). Linux 2.0 1996 (další architektury + SMP). Linux 2.2 - 1999 (lepší SMP). Linux 2.4 - 2001 (opět lepší SMP + podpora USB, PC CARD, PCMCIA, PNP). Konečně Linux 2.6 – 2004.
Procesory bez MMU - (memory managment unit). Nedisponují mechanismem ochrany paměti(takže každý proces může způsobit pád jiného procesu) => menší bezpečnost + nehodí se pro více uživatelské systémy.
Podpora procesorů bez MMU znamená velký pokrok, neb sme se zbavily Intelovského omezení => možný další vývoj.
V jádře 2.6 byla přidána podpora těchto procesorů: Motorola m68k Dragonball a Coldfire (často jsou v Palm Pilotech) + procesor NEC v850.
Procesor Opteron 64-bitový - je zpětně kompatibilní s existujícími procesory od Intelu (a jejich klony). Podpora byla již v 2.4, ale v 2.6 není limit pro aplikace max. 512MB paměti.
Subarchitektury - Dříve - doměnka, že typ hardware a typ procesoru jsou svázané. Např i386 + PC/AT. Už v 2.4 byla architektura i386 na Visual Workstation od SGI. V 2.6 tento kocept byl standardizován. Snaha oddělit jen to co je skutečně nutné – je to vidět i v menuconfig.
S touto standardizací přibily 2 nové platformy Voyager od NCR (486-686 32 procesorů). PC-9800 (donedávna dominující v Japonsku - procesory 8086 až Pentium se SMP). Microsoft dodával WIN95 pro tuto platformu. V roce 2002 byla byla tato platforma výrobcem opuštěna ve prospěch PC.
Díky podpoře nových procesorů - podpora pro větší servery (používají procesory i386, ale i jiné) '=> velké místo pro optimalizaci. Architektura NUMA (Non Uniform Memory Access). Tato architektura je o krok dále za SMP s velkým počtem procesorů. SMP - jedna množina paměti, která je sdílena všemi procesory => hodně kolizí + jedna sběrnice => úzké hrdlo. NUMA má procesory se svojí pamětí - něco jako PCI karty. Zjevná podobnost NUMA s úzce provázaným clusterem. Zpoždění při přidávání nových procesorů téměř neroste. Bylo třeba napsat nový plánovač úloh.
Optimalizace pro Pentium 4 Xeon, Pentium 3-M, Pentium 4-M + další mobilní procesory od AMD. Jádro 2.6 se vyrovná s chybou AMD, kdy systém s víc jak 16 procesory občas při bootu havaroval.
Hyperthreading – byl už v 2.4.17, ale v 2.6 došlo k podstatným změnám v ködu. Jeden procesor se u Hyperthreadingu navenek tváří jako dva. Linux byl první s podporou Hyperthreadingu, přestože tyto procesory byly vydány o rok dříve. Microsoft totiž nevěděl, jestli bude chtít poplatky za jeden nebo dva procesory. Byl sepsán nový plánovač úloh, protože u 2.4 byl občas výkon s HT horší než bez HT.
Porovnání výkonu 2.4 .vs 2.6




Lepší škálovatelnost - podpora Intelovského PAE (Physical Address Extension) - 32 bitové x86 systémy až 64GB paměti, počet uživatelů a skupin se zvýšil z 65 tisíc na 4 miliardy (16bit –> 32bit), nejvyšší PID se zvýšil z 32tisíc -> 1 miliardu, což pomůže zrychlit startování aplikací na velmi vytížených systémech. Nezvýšil se počet otevřených souborů v systému, ale není třeba limit nastavovat ručně, určí se sám. Byla vylepšena podpora 64-bitového přístupu k blokovým zařízením => i na 32-bit systémech jako je i386 - souborový systém 2TB.
Interaktivita jádra - dříve pokud OS dělal něco uvnitř jádra, nemohl být rušen (u víceprocesorových systémů to platilo v rámci jednotlivých procesorů). Jádro je nyní premptivní – může být rušeno => lepší odezva na desktopech. (je třeba uzamykat částí kódu jádra, aby nevznikly chyby souběhu - tzv. Race-conditions).
Moduly - přepsány s cílem zvýšení stability a průhlednosti, koncovka .o - > .ko, aby bylo vidět, že je to kernel object. Stabilita - odstranění chyb souběhu (race-condition), které byly dlouho v jádřě - zařízení mohlo začít používat modul, který měl být odstraněn až po tom, co modul zjistil, že ho nikdo nepoužívá. Je možné zakázat uvolnění modulů z jádra. Průhlednost - moduly nemusí být tolik chytré jako dřív, aby detekovaly zařízení která podporují na PCI, PnP ISA. V 2.6 je tato funkčnost standardizována a přístupná zvenčí - bude snažší pro zavaděče modulů vidět která zařízení bude modul podporovat. Dobré třeba pro správu hardware kudzu od Red Hat (ikdyž třeba hardware úplně nezná). Můžeme také jádro donutit (pomocí /sys , což je také nový adresář, který přibyl s příchodem kernelu 2.6) pracovat s modulem o kterém si systém myslí, že to nebude fungovat.
Odstranění Big Kernel Locks - pozůstatky z pradávna, kdy byla podpora SMP v počátcích.
Zámky: dva procesory, ketré používají stejnou datovou strukturu v jádře -> zamčení. Granularita zámků znamená jak jemná je úroveň řešení. Teoreticky může být jen jeden zámek.
Není možné alokovat více paměti než je k dispozici, tj. víc než je RAM + SWAP. Dříve malloc() uspělo, ikdyž pamět nebyla k dipozici - byla přepsána mechanika přidělování paměti na dluh (memory overcommitment).
Paměť na dluh - aplikace často chtějí hodně paměti, dá se alokovat o něco málo více než je k dispozici, protože aplikace paměť stejně nevyužijí nebo jí využijí až za delší dobu. Je možno tuto vlastnost konfigurovat přes sysctl nebo /proc.
Otevřené standardy - přepsání infrastruktury vláken tak, aby umožnilo běh NPTL (Native POSIX Thread Library) – zvýšení výkonu pro Pentium Pro a vyšší ve více vláknových aplikacích. RedHat používal NTPL už v 2.4. Java od Sunu nebude fungovat (nedrží se standardu). Vzhledem k tomu, že výhod je i tak dost, dojde s největší pravděpodobností k přepsání Javy, tak aby se držela standardu a fungovala i na systémech s NTPL.
Můžeme odebrat SWAP rovnou při kompilaci jádra. Důležité pro speciální vnořené systémy kde swap není nutný.
Sjednocený model zařízení – model zařízení je infrastrukutura uvnitř jádra, která se stará o detekci HW a užívání volitelných prostředků. V linuxu 2.2 – primitivní přístup – ovladače sběrnic musely samy vědět co dělat s HW a jak ho zjišťovat. V linuxu 2.4 – první vykročení směrem ke sejdnocenému modelu. Došlo ke sjednocení PCI ,PC Card a ISA PnP. V linuxu 2.6. dochází k pokračování v tomto trendu.
Ústřední prvek – objektově orientované rozhraní, které všechny nízkoúrovňové zařízení musí používat – tzv. Kobject => sjednocený pohled na HW.
Díky tomuto novému uspořádání lze podporovat i systémy, kde je znalost HW nutná – třeba ACPI (Advanced Power Configuration and Power Interface). Na rozdíl od APM se říká jednotlivým zařízením co mají dělat. Nebo Hot plug, což je přidávání zařízení za chodu – nyní je postup stejný jako při bootu (vytvoří se kobjekt jako při detekci HW při startu systému) => jednodušší manipulace.
Adresář /sys – zde je vidět sjednocený pohled na HW – (měli jsme /proc pro procesy, devfs pro zařízení a devpts pro pseudoterminály dle UNIX98). Při přidání nového zařízení dojde k vytvoření nového adresáře (není nutné) v /sys. Admin se sem může dívat na hardware (jméno, stav, napájení, IRQ,...).
Podpora základního HW – spíš jenom vylepšení, protože Linux jde i tak s dobou. Např. sběrnice ISA až bezdrátové sběrnice. Výjimkou je ISA PnP, kde linux zaostal za komerčnímy systémy. Dřive byla tato podpora poněkud těžkopádná. V jádře 2.6 bylo vše přepsáno => mnohem lepší podpora PnP BIOSU, datábáze jmen, atd..., což vede k lepší podpoře ISA PnP.
Do nového sjednoceného modelu přibyla MCA (microchannel architecture) a EISA(extended industry standard architecture), byla přidána i databáze jmen.
Podpora AGP (accellerated graphic ports), což je vysokorychlostní sběrnice, která používá PCI protokol. Dobrá zpráva pro grafické stanice.
Podpora obecné sběrnice – tzv. legacy bus. Jsou to pouze očekávaná zařízení na jednotlivé architektuře. Př.: PC - sériový port, paralelní, PS/2. Nic důležitého, pouze kosmetická záležitost nutná k přechodu na standardní způsob zacházení s HW.
Sběrnice USB – velké rozšíření podpory. USB 2.0 (480MB oproti 12 MB 1.1). Nyní je možné mít mnohem více zařízení stejného typu. Dobré například pro Tiskové servery.
Bezdrátová zařízení - v poslední době došlo k velkému rozmachu - zařízení síťová, ale i PDA. Dříve se zařízení dělila na dlouhý dosah (amatérská rádia) a krátký (přes protokol 802.11), nyní sjednoceno => méně konfiktních situací. Nyní existuje řada uživatelských nástrojů, která funguje se všemi podporovanými zařízeními. Přechod na TCP protokol, který se lépe vyrovnává s opakujícími se zpožděními, která jsou pro bezdrátový přenos typická.
Podpora IrDA – již byla v 2.4, nyní i s úsporou energie + integrace do nového modelu.
BlueTooth – pro PDA, mobily, tiskárny. Funguje jako IrDA, ale vysílač a přijímač na sebe nemusí „vidět“.
Bloková zařízení - aktualizace IDE/ATA + SCSI zařízení. Např pálení je nyní možné přes IDE. Dříve emulace SCSI, což bylo matoucí. IDE je schopno ptát se BIOSU. Třeba řadič který IDE zařízení nezná, tak se zeptá BIOSU a nastaví hodnoty podle odpovědi. Většinou to funguje. Linux nyní podporuje SCSI-2 multipath zařízení, která mají víc než 2 LUN (logické jednotky). SCSI-2 je starší než SCSI standard (je z roku 1994). Linux je nyní shopen testovat média nestandardním způsobem jako ve WIN => lepší kompatibilita se zařízeními, která nedodržují specifikaci.
Podpora EDD (Enhanced Disk Device) BIOS. Systém ví jak se server dívá (myšleno hardwarově) na disková zařízení (ví, co je připojeno). Získání konfigurace + může zjistit z jakého zařízení byl zaveden systém => ví kam instalovat GRUB (což je dobré pro linuxové instalátory).
Všechny sběrnice byly přirozeně zařazeny do nového modelu zařízení (někdy jen kosmetické úpravy, někdy ale úplně jiný přístup).
Souborové systémy. Podpora rozšířených atributů a ACL (Access control list).
Největších změn došlo u ext2 a ext3. Atributy pro jednotlivé soubory jsou uloženy uvnitř struktury souborového systému. Některé jsou jen pro systém, jiné např. pro roota (přístupné pro čtení i zápis). Řada operačních systémů už hojně atributy využívá. UNIXová tradice trochu pokulhává - budou se muset přepsat příkazy jako je třeba tar, tak aby zachovával atributy. Použití rozšířených atributů je např. ACL (Access contrio list) což je nadmonožina UNIXovských práv => jemnější řešení zabezpečení.
Interval ukládání žurnálu může být laděn – dobré pro notebooky, aby se disk neroztáčel zbytečně.
Nový scheduler (plánovač) četní z disku. Statistické předzpracování. Dá se vybrat mezi anticipary (dobré pro desktopy) nebo deadline (databázové servery). U desktopů zlepšení až o 10000 %, ale běžně „jen“ o 200 %. U databázových serverů dochází ke zlepšení přibložně o 15 %.
Zlepšní kompatibility s jinýmy operačními systémy. Podpora správce logických disků (Dynamic Disk) Schéma z WinXP, které umožňuje lepší změny velikostí oddílů. Dále NTFS – i se zápisem (pouze v experimentální formě). A nakonec souborový systém FAT12 byl doplněn o opravu chyby obsažené v řadě MP3 přehrávačů.
Zdroje : http://www.linuxzone.cz/index.phtml?ids=10&idc=782
http://www.linuxzone.cz/index.phtml?ids=10&idc=786
http://www.linuxzone.cz/index.phtml?ids=10&idc=789
http://www.2cpu.com/articles/98_1.html
David Pospíšil