OT Chvala Linuxu, den stvrty, vecer

Marek Peca marek na duch.cz
Neděle Únor 17 22:45:17 CET 2013


Ahoj, Weku,

On Wed, 13 Feb 2013, Jan Waclawek wrote:
>
>>
>> Weku, ukaz nejaky kus sveho kodu (abych nemusel sam hledat na Tvem webu ci
>> jinde -- urci sam neco reprezentativniho).
>
> Nemysim si, ze som nejaky extra dobry programator, no ale kvoli zabave, 
> http://mikrozone.sk/pluginy/forum/forum_viewtopic.php?809 - naschval to 
> je link do fora, aby som vyuzil tuto prilezitost a pripadne navnadil aj 
> inych na "benchmarkovanie"... :-) zdrojaky su 
> http://www.efton.sk/misc/snake.zip
>
> Toto je zamerne pisane s ohladom na zverejnenie, inak ked je to len pre 
> mna sameho, tak som samozrejme vacsie prasa :-) (ale zato pisem aj taku 
> "konceptualnu" dokumentaciu)

Kod jsem si zbezne prohledl. Myslim, ze co do objemu komentaru je jich tam 
tak akorat. Nicmene nepatrne zamlzujici useky jsou tam taky, napr. fce 
Delay(), predevsim jeji nazev ;-). Komentare se ctou spatne a program 
zneprehlednuji, ale ne proto, ze by jich bylo moc, ale proto, ze pocitaji 
s nevimjak sirokou obrazovkou. Tisknes si je na standardni rychlotiskarne 
se 132 znaky na radek?

Ale ne, ten program se mne osobne zda OK, rozhodne bych nerekl, ze mame na 
objem komentaru vyrazne odlisny nazor -- zvlast, pokud je tohle spis 
program vyukovy a ukazkovy.

>> Co me tak rychle napada -- monoliticke jadro,
>
> Aha, tak ako laik neviem, co to je (aj ked som to uz pocul). Da sa to 
> vysvetlit v jednej vete tak, aby bolo zrejme aj to, preco je to zle?

Zkusim strucne: rozhodnu-li se, ze budu pouzivat pocitac s OS, bezi na nem 
pak program OS a uzivatelske programy (procesy). Ty jsou mezi sebou 
propojene urcitym rozhranim (napr. variace na tema POSIX a doplnky).
Procesy maji k dispozici sluzby OS a meziprocesni komunikace, obecne maji 
moznosti "siroke" ve srovnani s tim, co bezi uvnitr OS.

A ted, oc jde. Spousta veci se bud da dat primo do OS, nebo muze bezet 
jako obycejny program. Mikrojaderny pristup tvrdi, ze v OS by nemelo byt 
nic, nez naproste minimum prepinani uloh a ochrany pristupu k prostredkum. 
Monoliticky pristup naopak cpe do jadra OS kdejakou blbost. Nevyhody 
monolitu jsou asi zrejme (pokud ne, snad napovi priklad nize), za vyhody 
se poklada nizsi rezie, nevim, zda jeste neco.

Pro lepsi objasneni uvedu konkretni priklad ze zivota, co je v 
mikrojadernem QNX obycejnym procesem (programem, jako kazdy jiny), jinymi 
slovy v user-space, zatimco v monolitickem Linuxu je to uvnitr jadra, v 
kernel-space:

- ovladace HW (krome radice preruseni a MMU), napr. radice disku, sitovych 
karet, grafiky,...
- "ovladace" filesystemu, tj. ty kusy kodu, ktere prevedou pristup k 
souboru na pristup k binarnim usekum nekde jinde (at uz je to primo disk, 
nebo soubor v jinem filesystemu);
- podpora siti, jako napr. TCP/IP, zpristupnena user-spacu pres knihovni 
rozhrani jako jsou sockety;
- obsluha preruseni uzivatelskeho HW.
atd.

Mozna nekdo zbystril a ozve se, ze s nastroji, jako je UIO, libusb, ufs, 
devfs apod. je neco podobneho mozne i v Linuxu. Ano, je -- jsou to takove 
pozdeji dodane "brany" do userspacu, trochu a nesystematicky napodobujici 
ten mikrojaderny pristup. Dobre je, ze tam jsou, spatne je, ze byly za 
pochodu dodelany dost nesystemove.

>> zpocatku (zbytecne) spousta veci v i386 asmu.
>
> A to je preco tragicky blbe?

Protoze je pak o dost tezsi to z toho rozepisovat pro vsechny mozne 
architektury (vetsim dilem v cistem C), nez kdyby to bylo rovnou psano 
stylem "mysli nizkourovnove, pis vysokourovnove". Coz se nakonec stalo a 
je to (ted uz pry celkem) fajn.

>> Taky jsem laik, zacatky Linuxu docela dobre podle me okomentoval Linusuv
>> ucitel Tannenbaum.
>
> Aha, mate nejaky odkaz na dalsie citanie?

Prvni Gugli odkaz na prijmeni obou panu:
http://en.wikipedia.org/wiki/TanenbaumTorvalds_debate


Zdravi Marek


P.s> Weku, pred ~8 lety jsi mi rikal, at Ti nevykam, ze si pripadas ako 
dedo, tak mi to ted, prosim, neoplacej :-)


Další informace o konferenci Hw-list