Portál AbcLinuxu, 8. května 2025 01:02
The Hurd is a very modern design. It is more modern than Linux or the BSDs, because it uses a microkernel instead of a monolithic kernel. It is also more modern than Apple's Darwin or Microsoft's NT microkernel, since the it has a multi-sever design, as opposed to the single-server design of Darwin and NT. This makes the Hurd an ideal platform for students interested in operating systems, since its design closely matches the recommendations of current operating system theory. In addition, the Hurd's modular nature makes it much easier to understand than many other kernel projects.
Vysvětlí mi někdo, jakou výhodu má Hurd oproti Linuxu, BSD atp.Hurd je mikrojádro. Linux je monolitické jádro. Mikrojádro je designově mnohem robustnější, protože v privilegovaném režimu procesoru běží jen velmi malý základ (u kterého se v některých případech dá ověřit bezchybnost matematickým důkazem) a zbytek OS, jako např. ovladače na disk, souborový systém, síť, ... běží jako nezávislé procesy. Naproti tomu v monolitickém jádře (linuxu) je tohle všechno součástí toho jednoho privilegovaného jádra. Pokud v Linuxu havaruje ovladač grafické karty, dojde k pádu celého systému a musíte restartovat počítač, pokud havaruje grafická karta coby proces v mikrojádru, stačí restartovat ten ovladač.
Pokud v Linuxu havaruje ovladač grafické karty, dojde k pádu celého systému a musíte restartovat počítač, pokud havaruje grafická karta coby proces v mikrojádru, stačí restartovat ten ovladač.
No ono to je spíš tak že grafika z neznámých příčin nejde (zmrzne, nezobrazuje co má, v intel driverech už je dokonce detekce zmrznutí GPU), ale zbytek systému vesele běží dál. Pokud tam teda není nějaká brutální chyba, nebo prasecká realizace. Stačí reload toho modulu. Mi přijde stejné jako u toho mikrojádra, když máme moduly.
Nějak jsem asi nepochápal k čemu to mikrojádro je. x86 architektura je tak skoro navržená že kernel v ring0 a zbytek v ring3, obsluha page faultu atd. Moc se nestává, že by linux zmrz (spíš hodí oops a člověk si toho snad ani nevšimne) a pochybuju, že by to hurd vydržel (nečekaná reakce HW, reversované drivery, binární sračky).
A driver by prostě padat nemělTo je ale jen přání a navždy to přání bude. Žádný kus software není dokonalý a nikdy nebude. Takže pokud je možné chránit sw před chybama jiného sw, tak by se toho mělo využít. Zrovna předevčírem jsem zjišťoval proč mi umírá systém s KMS při zhasnutí displeje. Kdyby to nebyl monolit, tak bych si alespoň mohl přečíst log...
Zrovna předevčírem jsem zjišťoval proč mi umírá systém s KMS při zhasnutí displeje. Kdyby to nebyl monolit, tak bych si alespoň mohl přečíst log...To lze všelijakými obezličkami obejít, ale jinak souhlasím.
Žádný kus software není dokonalý a nikdy nebude.Toto nieje pravda, väčšinou je práve problém s HW tým že sa driverov pridávajú rôzne hacky aby to chodilo aj na nespolahlivom HW, tak potom to občas ide, občas nie.
Dokaž to.Žádný kus software není dokonalý a nikdy nebude.Toto nieje pravda.
head
, presne se da definovat, do jake mnoziny spadaji vstupni data a jak se maji zobrazit na vystupu, vse probiha za kazdych okolnosti podle definice (i kdyz se mu preda binarni soubor, jelikoz je vse predem definovane a jsou osetreny vyjimky). Predpokladam, ze nikdo nemuze dokazat opak (jasne ze komplexnejsi programy dokonale pravdepodobne nebudou).
Nějak jsem asi nepochápal k čemu to mikrojádro je.Rozdíl mezi ovladačem v Hurdu a v Linuxu je něco jako rozdíl mezi normálním programem v Linuxu a v DOSu.
No ono to je spíš tak že grafika z neznámých příčin nejde (zmrzne, nezobrazuje co má, v intel driverech už je dokonce detekce zmrznutí GPU)Přesně. Např. v Nouveau je inicializační sekvence přímo v binárním kódu pro daný GPU, jenomže ono se spíš stává, že když už vytuhne grafika, tak takovým způsobem, že na nějakou inicializační sekvenci nebo RESET přerušení z vysoka kálí a nezbývá nic jiného než ji odpojit od přívodu elektrické energie.
Mi přijde stejné jako u toho mikrojádra, když máme moduly. Nějak jsem asi nepochápal k čemu to mikrojádro je. x86 architektura je tak skoro navržená že kernel v ring0 a zbytek v ring3, obsluha page faultu atd. Moc se nestává, že by linux zmrz (spíš hodí oops a člověk si toho snad ani nevšimne) a pochybuju, že by to hurd vydržel (nečekaná reakce HW, reversované drivery, binární sračky).Možná by bylo vhodné dodat, že GNU/Hurd nebyl ani tak koncipován na nějaké desktopové brutality, ale spíše na poklidný chod na serverech (či spíše na tehdejších mainframech). Sám už se degraduje tím jaké ovladače vůbec má (na Desktop spíše něco nemyslitelného, ale vzhledem k množství dostupného HW se ani není co divit), ale třeba pro clustery nabízí úplně nové možnosti využití.
Pokud v Linuxu havaruje ovladač grafické karty, dojde k pádu celého systému a musíte restartovat počítač, pokud havaruje grafická karta coby proces v mikrojádru, stačí restartovat ten ovladač.Coz je pekna idea, ale v praxi narazi na hromadu problemu: 1) na x86 obvykle neni IOMMU (i kdyz casy se pomalu meni), takze zarizeni jako takove ma pristup k cele pameti. Takze pokud ovladac napr. spatne naprogramuje bus-master transfery z PCI zarizeni, tak muze klidne prepsat libovolnou pamet a shodit tak cely system. 2) ovladac, ktery chybne obsluhuje interrupty, muze snadno zablokovat celou interrupt line a tim zablokovat funkcnost vsem zarizenim, ktere ji sdili. Tady by zase pokrok mohly prinest message signaled interrupts. 3) Zarizeni na PCI muze snadno pri spatnem chovani zablokovat PCI sbernici. Spatne chovani muze byt zpusobeno chybou ovladace. V takovem pripade proste pocitac zatuhne. Zde mozna (nevim) pomuze PCIexpress.
To je omezení (některého) HW. Spousta HW tím netrpí,Asi treba drivery USB zarizeni tim netrpi, ale body 1)-3) trpi prevazna vetsina netrivialnich PCI zarizeni (a nejspis i PCIe).
Personally, I'm not interested in making device drivers look like user-level. They aren't, they shouldn't be, and microkernels are just stupid.
… even if the Hurd didn't depend on Linux code (and as far as I know, it does, but since I think they have their design heads firmly up their *sses anyway with that whole microkernel thing, I've never felt it was worth my time even looking at their code), I don't believe a religiously motivated development community can ever generate as good code except by pure chance.
My personal opinion of Mach is not very high. Frankly, it's a piece of crap. It contains all the design mistakes you can make, and even managed to make up a few of its own.
In short: just say NO TO DRUGS, and maybe you won't end up like the Hurd people.nepochybně
"True, linux is monolithic, and I agree that microkernels are nicer.". Názory jednoznačne mení, čo je dobré.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.