Portál AbcLinuxu, 8. května 2025 14:07
operování jádra za živa
Pahýl je znám z české Wikipedie. Pomalý je běžný překlad běžného přívlastku. Navíc autor sousloví změkčil uvozovkami, jak pravidla žádají. Jinak řečeno tohle byl záměr a já jsem se dobře pobavil.
Oproti tomu pro termíny jako "directory", "mail folder" atp. je závěr přesně opačný, protože je přesně opačná i situace lidí, kteří je používají: jsou to už dnes laici žijící normálně v ČR, mluvící česky a používající tyto termíny v běžné mluvě i psané formě … Proto naopak považuji myšlenku národního obrození, samozřejmě moderně chápanou (bez nacionalistických extrémů), za nejen stále živou, ale zrovna v naší branži extrémně potřebnou.
Vytváření vlastních překladů (nebo někdy jen přepisů) termínů používaných v běžném životě je ale proces, který se děje v každé době a v každé zemi - a děje se i u národů, které byly vždy natolik svébytné, že hnutí odpovídající našemu národnímu obrození nikdy nepotřebovaly. Tím (ne)pokračováním v národním obrození jsem myslel právě to, že dnes už nejsme v situaci, kdy by bylo potřeba povzbuzovat umírajícího národního ducha tím, že bychom za každou cenu počešťovali úplně všechno.
Smysl live kernel patching není vyhnout se odstávkám úplně. Jde o to, aby v případě kritické chyby v jádře (např. remote root exploit) bylo možné odložit tu odstávku na reboot do doby, kdy se to bude hodit (až update projde interní QA zákazníka, až bude maintanance window, až doběhne měsíc trvající simulace, …).
Rozhodně je tedy mylná představa, že se budou live patche generovat pro všechny opravy (to obecně ani nejde) a rebootovat se nebude nikdy. Jde o to, aby když přijde kritický problém, s jehož opravou nelze čekat dny až týdny, opatchovalo se živé jádro a s rebootem na nový update se mohlo počkat na vhodný okamžik.
Ono uplne klidne staci aby se muslimove a zide mezi sebou dohodli jestli vypadek bude v patek, sobotu anebo v nedeli.Jo, ten byl dobrej, diky
S tim RACem to ale moc nechapu. Zrovna tehle SW taky umi hot-patching.Sam sebe jiste opatchovat umi, ale kdyz je chyba v externi knihovne, treba OpenSSL nebo v GLibc tak ti to nepomuze.
Kdyz uz mas tendle napad... muzes zkusit napsat vlastni nastroj pro patchovani userspace-u a udelat hype kolem nehoJdu na to. Pojmenuju to usplice a pak to zkusim prodat Oraclu za mega penez ;)
zatím to vypadá na hybrid, který se blíží ideálu mikrojádra s tunou modulů pro každý úkol včetně uprdnutí si
To si vůbec nemyslím. I kernel thready běží pořád ve stejném paměťovém prostoru a se stejnou úrovní oprávnění jako "core" jádro. Navíc když si vezmu typický driver zařízení, třeba síťové karty, tak mám sice oddělenou hardirq a softirq část, ale nejen že IRQ handler je součástí jádra, ale ani ta softirq část neběží zdaleka vždy v rámci kernel threadu. Takže ideálu mikrokernelu, kde by byly drivery zařízení striktně odděleny od "core" jádra, nejsme o moc blíž než na začátku.
I kernel thready běží pořád ve stejném paměťovém prostoru a se stejnou úrovní oprávnění jako "core" jádroTo je vlastně fakt. Jenže díky tomu taky hodně stoupá složitost samotného monolitického blobu. Ono už z názvů funkcí lze vytušit, že provést nějaký jednoduchý úkol v jádře nemusí být jenom tak. Tohleto on-line patchování tomu jen nasazuje korunku (přitom by stačilo zabít příslušný proces a spustit ho znova).
Ten nárůst komplexity je zjevný, ale ona není samoúčelná. Ve starých jádrech sice byla spousta věcí jednodušší, ale tehdejší jádra nemusela být schopna běhat na 4096 procesorech a obsluhovat 6 TB paměti nebo čtyřicetigigabitové ethernetové karty, život vývojářů nekomplikovaly věci jako namespaces nebo cgroups atd.
Pokud si dobře vzpomínám na někdejší debaty na téma monolitické jádro vs. mikrokernel, tak hlavní problém byl právě v tom, že úplně čistý mikrokernel měl sice spoustu designových předností, ale nikdo ho nedokázal implementovat tak, aby to bylo neprůstřelné a efektivitou se to vyrovnalo monolitickým jádrům. A za jeden z hlavních důvodů toho, proč se z mnoha různých systémů prosadil právě Linux, považuji to, že Linus je pragmatik, neopájí se tolik vznešenými idejemi a má čich na výběr toho řešení, které bude rozumně fungovat. Což ve výsledku znamená, že v Linuxu je sice spousta designových kompromisů a nouzových řešení, nad kterými srdce neplesá, ale na druhou stranu se moc často nestává, že by se prosadilo řešení, které je sice teoreticky dokonalé, ale v praxi buď pořádně nefunguje nebo je zoufale neefektivní.
Ve starých jádrech sice byla spousta věcí jednodušší, ale tehdejší jádra nemusela být schopna běhat na 4096 procesorech a obsluhovat 6 TB paměti nebo čtyřicetigigabitové ethernetové karty, život vývojářů nekomplikovaly věci jako namespaces nebo cgroups atd.Pravda. Jen by nebyly složité samotné subsystémy a ovladače, nýbrž servery v uživatelském prostoru.
Pokud si dobře vzpomínám na někdejší debaty na téma monolitické jádro vs. mikrokernel, tak hlavní problém byl právě v tom, že úplně čistý mikrokernel měl sice spoustu designových předností, ale nikdo ho nedokázal implementovat tak, aby to bylo neprůstřelné a efektivitou se to vyrovnalo monolitickým jádrům. A za jeden z hlavních důvodů toho, proč se z mnoha různých systémů prosadil právě Linux, považuji to, že Linus je pragmatik, neopájí se tolik vznešenými idejemi a má čich na výběr toho řešení, které bude rozumně fungovat. Což ve výsledku znamená, že v Linuxu je sice spousta designových kompromisů a nouzových řešení, nad kterými srdce neplesá, ale na druhou stranu se moc často nestává, že by se prosadilo řešení, které je sice teoreticky dokonalé, ale v praxi buď pořádně nefunguje nebo je zoufale neefektivní.Moje pozorování? Ten pragmatismus se k tomu idealismu vždycky pragmatickou cestou stejně propracuje. Dle mého názoru prostě složitost jádra furt poroste až jednoho dle prostě Linus prohlásí „Tenhle bloatware já udržovat nebudu. Smazat a znovu přepsat!“ a stejně se to k něčemu jako je GNU/Hurd jednou propracuje. Akorát to bude dýl trvat.
…a stejně se to k něčemu jako je GNU/Hurd jednou propracuje. Akorát to bude dýl trvat.
Dokud neuvidím, neuvěřím. :-)
Připomíná mi to, jak jsem se někdy v roce 1993 nebo 1994 začal zajímat o to, jak dostat na PC nějaký unixový systém, a kamarád mi zasvěceně vysvětloval, že unix, to už je odepsaná záležitost, že teď je skvělý nový systém plan9, který je navržen mnohem lépe a že to je budoucnost…
plan9, který je navržen mnohem lépe a že to je budoucnost…To je v podstatě to, o čem Grunt mluví. Vždyť linux k tomu už skoro dospěl, jen je podstatně ošklivější a táhne si s sebou některé opravdu nepěkné dedictví (tty například).
tty napříkladHuh? Co je špatně na tty?
Vždyť linux k tomu už skoro dospěl
Jak se to projevuje?
Opravdu myslíte, že takhle nějak si to lidé, kteří navrhovali plan9, představovali?Ne, to si nemyslím. Na druhou stranu spousta z technologií, které tam uvedli byla portována v nějaké alternativě do linuxu.
/proc
, používání UTF a FUSE jsou takové hlavní příklady, které nemusí být nutně tak elegantní, jak byly navrženy v plan9, ale funkčně jsou na tom dost podobně. Tím nechci hanit plan9, ani nějak vyzdvihovat linux.
Osobně by se mi líbilo, kdyby se plan9 pohnul k větší praktické použitelnosti a z dlouhodobého hlediska se mu chci věnovat víc, až na to někdy budu mít čas.
/proc, používání UTF a FUSE jsou takové hlavní příklady, které nemusí být nutně tak elegantní, jak byly navrženy v plan9, ale funkčně jsou na tom dost podobně
Tomu se tuším říká post hoc ergo propter hoc. Unicode se vyvíjel nezávisle na plan9 a postupný příklon k němu měl pramálo společného s tím, že si ho vybrali (i) v plan9. K FUSE už jsem se vyjádřil. A procfs existoval i v řadě jiných systémů, a to dokonce i před plan9. Stránka na wikipedii sice tvrdí, že implementace v Linuxu vznikla jako klon té z plan9, ovšem s poznámkou "citation needed". Ale i kdyby to byla pravda, stejně je to moc málo na to, aby se dalo tvrdit "Vždyť linux k tomu už skoro dospěl."
Unicode se vyvíjel nezávisle na plan9 a postupný příklon k němu měl pramálo společného s tím, že si ho vybrali (i) v plan9.Unicode vs UTF. Afaik UTF-8 vzniklo právě pro plan9, ale můžu se mýlit.
Ale i kdyby to byla pravda, stejně je to moc málo na to, aby se dalo tvrdit "Vždyť linux k tomu už skoro dospěl."Mě to stačí :)
Unicode vs UTF.
V tom případě ale také UTF vs. UTF-8.
Afaik UTF-8 vzniklo právě pro plan9, ale můžu se mýlit.
Podle wikipedie sice s poslední úpravou oproti předchozím kódováním přišel Ken Thompson, který v té době pracoval na plan9, a plan9 byl prvním systémem, který UTF-8 začal používat, ale přesto bych to nepovažoval za nějakou featuru převzatou z plan9.
Moje pozorování? Ten pragmatismus se k tomu idealismu vždycky pragmatickou cestou stejně propracuje.Tohle je docela dobré pozorování, které platí i v programovacích jazycích. Za pár (desítek) let bude vše hybrid mezi erlangem, smalltalkem a lispem :)
Co je ale důležitější Linuz umí vést projekt tak, aby jeho vývoj byl trvale udržitelný. Prostě žádné nakupení featur (včetně návrhových featur) s tím, že se to vyčistí později (na což nedojde a další vývojář v pořadí provede refaktor, protože není v jeho silách porozumět kódu, který napsal předchozí vývojář). A to není jen o pragmatismu.
+1
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.