Názor k článku Linspire a Microsoft: Další dva kamarádi od zen - Či je budúcnosť operačných systémov v .NET nevie...

  • Článek je starý, nové názory již nelze přidávat.
  • 18. 6. 2007 22:10

    zen (neregistrovaný)

    Či je budúcnosť operačných systémov v .NET nevie ani Microsoft. Jedna vec je robiť určitý výskum a druhá niečo posunúť do reálneho života. Svojho času to tiež vyzeralo, že mikrokernel je jasná budúcnosť - avšak zostalo len pri teórií. V súčasnosťi aj operačné systémy postavené nad mikrokernelom (MacOS X, QNX, čiastočne NT) majú implementovanú absolútnu väčšinu svojho API v jednom monolite. Niektoré ovládače a obsoleted APIs sa presúvajú do samostatných mikrokernel serverov a to je asi tak všetko.

    Dnešné moderné procesory už tiež vykonavajú mikrokód, ktorý si interne prekladajú do kódu nižšej úrovne - takže ten posun k určitej virtualizácíí vykonávaného programu sa už deje na úrovni hardware. Nie je dôvod sa domnievať, že to čo dokáže bytecode interpreter nedokáže CPU. V skutočnosti toho dokáže oveľa viac a rýchlejšie. Vývoj nezastane, nakoniec nové prvky na podporu virtualizácie a napr. "Execute Disable Bit" len naznačujú, že s možnostami CPU sa dá hrať donekonečna. Rovnako technológie, ktoré umožňujú rýchly prevod kódu z jedej platformy na inú (Rosetta od Apple, IBM má niečo podobné na prevod x86->POWER) ukazujú, že aj k natívnemu kódom sa dá tiež pristupovať ako k medzikódu.

    Bytecode technológie však určite majú veľkú budnúcnosť v user-space aplikáciách. Ale rovnako aj dlhú cestu k vyriešeniu mnohých problmémov. Nikto napr. zatiaľ neprišiel na rýchly algoritmus thread-safe garbage collectora. Počet jadier v procesoroch stále pribúda, takže určitá automatická paralelizácia dáva stále váčší zmysel. Tiež ste už viac-krát spomínali veci typu:
    Psaní aplikací pouze v managed jazycích (C# apod) bude mít za následek, že bude možné dát na kód záruky typu "nemůže dojít k přetečení bufferu", "kód určitě neobsahuje deadlock" atp. To dává možnost použít SW izolaci procesů.

    Môžete uviesť nejaké zdroje na dané možnosti? Osobne nemám pocit, že sa dá nad procedurálnym kódom (ktorý je vlastne stavová mašina) robiť taká statická analýza. Ak myslíte nejaký real-time check, tak ten ako som už spomínal môže robiť aj HW processor. Staticky také záruky vedia poskytnúť čisto funkcionálne jazyky, ale tam sa mainstream jednoznačne nepresúva. Napokon ani F# (MS verzia OCaml pre .NET) nie je čisto funkcionálny jazyk.

    Nemyslím si, že aplikácie kde je rýchlosť klúčová budú niekedy bežať v bytecode. OS kernel, či kernel počítačovej hry bude vždy natívne - ostatné bude stále častejšie v skriptovacích/bytecode jazykoch. Či to bude PHP, Python, Java alebo Visual Basic je úplne jedno. Nemám pocit, že by bol Microsoft nejaký zaručený líder v oblasti inovácií tohto druhu.