[72] Super. Proč jsou tedy Windows poskládané z komponent (i MSIE je maličká aplikace poskládaná z HTML rendereru, toolbarů, filtrů, XML parseru a dalších komponent), a unixy dodnes v podstatě monolitické?
[73] Máte pravdu, o prioritizaci I/O jsme se bavili, a jistou rudimentální podporu prioritizace I/O requestů Linux má. Konkrétně umí nastavit prioritu pro celý proces. Kupodivu Windows umí nastavit prioritu per handle, a umí rezervovat přenosové pásmo. Celkem rozdíl, nemyslíte?
[74] Tak si zkuste na Linuxu přehrávat MP3, a zároveň kopírovat soubory z gigabitové sítě na disk HDD co to dá. Nevím, jestli k problému povede konkrétně tenhle test, ale s trochou snahy rychle uspějete. Problémem u Linuxu je fakt, že se po dobu obsluhy přerušení zakážou všechna přerušení. Také to, že kernel je nepreemptivní (preemptivní kernel má Linux jen experimentálně, a běžná distra preemptivní kernel nejedou z důvodu jeho nespolehlivosti) vede k pomalé odezvě na přerušení. Popisuje to třeba tenhle článek zde na rootu, viz link níže, v sekci přerušení. Takže se zkuste trochu doučit :)
http://www.root.cz/clanky/porovnani-linux-freebsd/
"Časté zakazování všech přerušení a nemožnost selektivního zakázání několika přerušení je problém Linuxu. Na Linuxu se přerušení zakazují, v podstatě kdykoli je potřeba provádět nějakou operaci se strukturami, které mohou být nějakým přerušením modifikovány. Bohužel se zakazují například i při psaní na konzoli (neboť kód z přerušení může na konzoli zapisovat), posílání požadavků na IDE disk a spoustě jiných příležitostí. To vede k veliké latenci přerušení a důsledek je například takový, že se ztrácejí packety na paralelní lince nebo chrochtá zvuková karta, pokud uživatel například přepne konzoli."
Řeknete mi, jak chcete podtékání bufferu řešit "obecně a férově"? Když přehráváte multimédia a obsluhujete gigabitovou síť s desítkami tisíc interruptů za sekundu, může to buď "férově" skončit lehce pomalejší komunikací po síti a škubáním audia/videa, nebo můžete přiškrtit síť. Ve Windows by default přiškrtíte síť, a můžete si samozřejmě vybrat, že necháte multimédia bez této ochrany. Jak vidíte, Linux podobné možnosti nemá, protože je problém už na úrovni podpory přerušení, nepreemptivního kernelu atd.
Vista je částečně psané v .NETu. Co to má společného s primárním API systému? Když na to přijde, můžete napsat OS v assembleru, a primární API může být psané pro Pascal :)
Konfiguraci sítě na Linuxu jsem viděl. Opravdu bych doporučil raději command line. A jak jsem již dříve psal, je srandovní, že unixy nemají API pro správu sítě, management uživatelů, správu deamonů a procesů. Tyto věci si buď řeší každý unix ve vlastní režii, nebo standardními POSIX utilitami (což ovšem není API). Zřejmě poptávka po takových API v sedmdesátých letech minulého století neexistovala, a když se vývoj unixů definitivně zastavil, není už cesta, jak novou funkcionalitu do unixů dostat.
[77] Chcete mi poslat příspěvek přes PayPal? ;)
Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. GNU/Linuxem a Unixem obecně se zabývá již více než deset let a věnuje se především jeho nasazení v počítačových sítích a bezpečnostní politice. Zde bloguje o Root.cz, Linuxu, internetu a světě kolem sebe.
Přečteno 112 390×
Přečteno 89 797×
Přečteno 73 181×
Přečteno 58 138×
Přečteno 54 442×