Po více než roční pauze - u příležitosti vydání verze 0.3.11 - bych se rád podělil o další porci novinek. Tak tedy předně obligátní odkazy:
changelog a
download.
Za poslední rok se toho odehrálo opravdu mnoho. Někteří vývojáří projekt opustili (Magnus Olsen aka GreatLord, Andrew Greenwood aka Silverblade) jiní naopak řady vývojářů rozšířili - (Giannis Adamopoulos - smiley, Andrew Hill - ash77).
Asi nejdůležitějšími změnami z pohledu běžného uživatele jsou přechod na ovladače UNIATA; práce, kterou odvedl Johannes Anderwald na podpoře audia; rozsáhlé upravy network stacku od Camerona Gutmana a pokrok, který ukazuje amd64 branch (Timo Kreuzer a Samuel Serapion).
Podpora ovladačů UNIATA umožňuje používat ReactOS na discích připojených přes SCSI nebo SATA rozhraní. Bohužel je tu stále drobný problém s resetováním řadiče, což způsobuje prodlevy při startu. Tato chyba musela být pro release "opravena" (čti hacknuta) a způsobila více než měsíční oddálení jejího vydání.
Podpora audia se pomalu dostává z experimentální fáze, do použitelného stavu. Johannes odvedl obrovský kus práce při implemetnování kompletní windows kompatibilní audio architektury. V poslední verzi je přidána podpora mixování, zachytávání a jednoduchého resamplování. Jediným krokem zpět je chyba způsobující nefunčnost audia v produktech VMWare, ale na odstranění se pracuje. Pokud chcete experimentovat, zkuste Qemu nebo VirtualBox.
Cameron Gutman se zaměřil na opravy kernel mode části síťové podpory a zároveň na importování nové implementace win sock (původní autor Alex Inosecu). Výsledkem jeho práce je mnohem vyšší stabilita, takže běžné brouzdání po internetu již není z říše snů. Bohužel část jeho práce musela být z trunku odstraněna, protože nový mechanizmus uzamykání působil značné potíže. Další vyvoj probíha proto v samostatné větvi.
Když již padla zmínka o větvích, bylo by dobré se rozepsat o těch zajímavějších.
Předně amd64 - jak již název napovídá, cílem je plně 64 bitová verze ReactOSu. První fáze, ve které bylo nutno docílit, aby bylo možné zdrojový kód vůbec přeložit je již téměř za námi. Nastává fáze, ve které bude potřeba upravit některé součásti systému tak, aby byli schopné pracovat na jiné architektuře než je x86. Jedná se zejména o low level části kódu psané přímo v assembleru. Ve finální fázi dojde ke sloučení trunku a této větve, takže bude možné přeložit jak 32 tak 64bit verzi z jednoho zdrojového kódu.
ReactX - existence platformy ReactX (reimplementace rozhraní DirectX od MS) stála a padala s Magnusem Olsenem. Vzhledem k tomu, že Magnus se již na projektu nepodílí byla tato větev uložena k ledu. Všechny úpravy knihovny DDraw, které jsme spolu s Magnusem provedli (podpora pro HEL, obecné opravy), jsem již přesunul do trunku. Nyní již jen čekáme, zda se někdo vývoje ujme. Do té doby budeme stále závislí na knihovně WineD3D, která ale plní svou funkci na jedničku.
Arwinss - nováček z dílny Alekseye Bragina, který si klade ambiciózní plán nabídnout stabilní a použitelnou alternativu k trunku. V principu se jedná o nahrazení celého win32 subsystému knihovnami Wine tj. i těch, které jinak nesdílíme (user32, gdi32, kernel32). Jelikož Wine využívá ke svému běhu X server, bylo nutné navrhnout tenkou mezivrstvu (winent.drv) a implementovat nezbytnou kernel mode podporu do odlehčené verze win32k (ovladač subsystému). Do něho bylo také nutné vložit část Wine serveru (window manager, message queue, hooky..).
V čem je tedy výhoda? V tom, že se prakticky plně spolehneme na Wine. Wine má daleko striktnější proces schvalování nových patchů, což sice znamená pomalejší tempo vývoje, ale zaručuje lepši stabilitu. Dále má Wine daleko širší uživatelskou, ale i testovací komunitu. Použije se tak kód, který sice není vnitřně schodný s win32 architekturou, ale zbavuje nás nutnosti se starat o user mode komponenty a dává navenek stejný výsledek. To by mělo dát vývojářum více času na práci těch částech systému, které sdílet nemůžeme.
Nejedná se samozřejmě o finální řešení. Cílem ReactOSu je i nadále vlastní, plně kompatibilní ovladač win32 subsystému. Arwinss by ale mohla znamenat přechod do stádia beta daleko dřív, než by to bylo možné s trunkem (na kterém se bude moci mezitím v klidu pracovat).
Na závěr bych ještě rád zmínil práci Stefana Ginsberga, kterou odvedl na podpoře debuggování (kdcom a kdbg) a neustále trvající proces přidání podpory pro MS Visual Studio, aby nebylo nutné se spoléhat jen na GCC (většina úprav - kjk::hyperion).