Odpověď na názor
Odpovídáte na názor k článku Linspire a Microsoft: Další dva kamarádi.
Re: Věštba: příští windows poběží na Linuxu
celé vláknoMikrokernely umřely na náročnost kernel mode transition. V NT z mikrokernelů zbyla modularita a popsaný interface mezi komponentami, ale servery běží v kernel mode. Faktem je, že po slibném začátku mikrokernely odpadly, a s managed jazyky se může stát totéž.
Thread safe garbage collection je samozřejmě problém. Ovšem je možné provádět collection nezávisle pro každý proces. Singularity má levné "procesy" (SIP), takže je jich velká hromada, a tedy garbage collection není tak katastrofický.
Ohledně validace kódu doporučuji http://research.microsoft.com/os/singularity/ , a zvláště tuto publikaci:
http://research.microsoft.com/copyright/accept.asp?path=http://www.research.microsoft.com/os/singularity/publications/MSPC2006_DeconstructingIsolation.pdf&pub=ACM
V je to popis Software Isolated Process. Ve zkratce managed jazyk (C#, cokoliv jiného na .NETu, od konkurence Java) zaručuje, že aplikace nemůže například castovat integer na pointer, hrábnout mimo svůj address space, atd. Tento kód se přeloží do MSIL (u Javy by to byl bytecode). Na cílovém počítači se provede verifikace MSIL kódu, překlad do nativního (v našem případě x86) kódu, a v praxi by se výsledek zřejmě digitálně podepsal. Výsledný kód, stejně jako operační systém, běží v ring 0. Přitom je předchozí kontrolou zajištěno, že aplikace nemůže hrábnout, kam nemá. Výhodou je, že při volání systému vůbez nedochází ke kernel mode transition, takže je režie volání velmi nízká (cca 8x nižší než na tradičním systému). Pro kompatibilitu s dnešním kódem umí Singularity i "klasické procesy" v ring 3.
Samozřejmě popsaná validace řeší pouze bezpečnost, neumí třeba najít deadlock. Obecně vzato lze provést statickou analýzu kódu, která modeluje algoritmus jako stavový automat. Ten by byl zpravidla příliš velký, nicméně lze vyvodit jisté závěry pro menší kusy kódu (třeba modul, class), a na vyšší úrovni abstrakce z toho vyvozovat závěry. Jo do managed jazyků je třeba zavést invarianty, jinak je statická analýza poněkud problematická.
Jisté nástroje jsou i pro C/C++ (PREfast), ale v unmanaged jazyku v principu těžko odhadnout, co se stane po castu integeru na pointer ;). Pro .NET nabízí dnes MS FxCop, ale to je samozřejmě jen začátek.
OS (včetně kernelu) může být napsán převážně v managed jazyku (samozřejmě nakonec přeloženého do nativního kódu). Výše je vidět, jaké výhody to může přinést. MS je podle mě v této oblasti leaderem, protože má rozjeté zajímavé projekty, a má dostatek kvalitních lidí i peněz, aby to dotáhnul do konce. Otázka je, jestli to bude v příští verzi Windows, nebo až v té další. A samozřejmě je další otázka, jestli to trh přijme (a MS získá pár desítek let nádskok nad konkurencí), nebo se na tom MS složí. Za 10 let to bude jasnější ;)
Pravidla pro diskutující
Přidáním čtenářského příspěvku do diskusí či fóra souhlasíte s tím, že budete dodržovat následující pravidla. Při jejich hrubém porušení se vystavujete riziku smazání příspěvku, jeho modifikaci, v krajním případě i zablokování přístupu do diskusí.
Redakce ze zásady nezasahuje do čtenářských diskusí a zavazuje se, že nebude mazat ani modifikovat příspěvky, kromě případů, kdy tyto porušují některé z následujících pravidel. V takové situaci je na zvážení redakce, zda příspěvek modifikuje s viditelným upozorněním, či přímo smaže. Redakce nikdy nemaže „nesouhlasné komentáře“ jen proto, že jsou nesouhlasné. Vítáme střet názorů, ale vždy v rámci slušné a kultivované debaty.
Příspěvky nesmí obsahovat:
- Vulgární či hrubé výrazy.
- Urážlivé výroky na adresu druhé osoby či skupiny osob.
- Texty, které mají za cíl jen vyprovokovat emotivní reakci (trolling).
- Rasové útoky či útoky na jakoukoliv jinou menšinu či skupinu obyvatel.
- Komerční nabídky a affiliate odkazy.
- Odkazy na warez, sériová čísla, licenční kódy, pornografii a další nevhodný materiál stejně jako žádosti o poskytnutí tohoto obsahu.
- Prokazatelně protiprávní obsah.
Informace o soukromí: U všech přidaných komentářů provozovatel ukládá IP adresu a hostname odesílatele. U neregistrovaných uživatelů se na webu zobrazuje část hostname, případně IP adresy, neumožňující identifikovat konkrétní počítač.
Povolené značky XHTML: a, br, code, em, li, ol, p, pre, strong, sub, sup, ul

