Nechci moc rypat. Je to urcite uzitecny pocin, spousta lidi si alespon neco vyzkousi, ale misto takovehoto serialu by myslim bylo lepsi dat odkaz na knizky od Tanenbauma (autor Minixu).
Ono je to sice prima udelat hello world, ale bez znalosti dalsich veci (algoritmy na prepinani tasku, mutexy, alokaci pameti, …) to moc pouzitelne nebude. A v tom je ta sila OS, treba napsat dobry alokator pameti je velky problem.
Na ARM7 jsem splacal taskswitcher (nebudeme tomu rikat OS) asi za den. Nejvetsi problem byl s ladenim s obnovou stavu threadu, jinak to je pochopitelne snadne.
Dobre jsou taky odkazy na historicke unixy v jednom mem clanku: http://martin.hinner.info/…les/unix.pdf (na konci „The Unix Heritage Society“ vede k archivu vseho mozneho…).
Minix bych třeba nepovažoval za dobře navržený systém:
Příklad: nabootujte to LIVE-CD (na fyzickém počítači, nikoli virtuálním), nalogujte se na na dvě konzole, na jedné konzoli zadejte ls -laR / a na druhé pouze pište znaky do shellu. Znaky se na obrazovce neobjevují. Minix totiž při čekání na I/O neprovádí žádné jiné syscally.
Další problém Minuxu 3 je synchronní posílání zpráv, když dva procesy proti sobě pošlou zprávu, tak dostanou chybu -EDEADLOCK a musí se z toho nějak vzpamatovat bez ztráty funkčnosti.
Jestli chce někdo nějaký OS na zkoumání, ať si vezme Linux 1.0 nebo 2.0, ten je ještě dost jednoduchý bez přílišných abstrakcí. A 2.0 ti na součaných počítačích možná i poběží.
Minix je podle mě krásnou ukázkou toho, do jakých problémů se člověk může dostat s mikrojádrem. Nicméně i tak si myslím, že Minix za pozornost rozhodně stojí.
Pokud by zájemci nevadilo to, že se nejedná o unixoid, doporučil bych ke zkoumání systém XINU a poněkud starší a místy dost tendenční, nicméně pro začátečníka stále jednu z nejlepších českých knih na dané téma – O. Čada: Operační systémy. Na tom, co tato kniha probírá, se dá už stavět a člověk získá ucelenou představu o základních mechanismech. Navíc XINU, který je v této knize popisován včetně fragmentů kódu v C, tvořících jeho rozhodující část, bych označil za nejjednodušší funkční model plnohodnotného operačního systému, jaký si asi lze vymyslet. Obsahuje jednoduchou správu procesů včetně preemptivního multitaskingu, velmi jednoduché IPC (zprávy, semafory), vlastní systém ovladačů, jednoduchovou blokovou správu paměti, postrádá jakékoliv ochrany, čímž se jeho kód stává mimořádně čitelný, prostý všeho „rušivého“. Řekl bych, že jako úvod do problematiky tento učebnicový OS převyšuje Minix o řád.
Pro zájemce o Unix bych doporučoval od M. J. Bacha „Principy operačního systému Unix“ – skvělá knížka odhalující vnitřní mechanismy, vazby a algoritmy v klasickém Unixu. Stejně jako u předchozí knížky i tady schopnější čtenář dokáže po jejím přečtení celý systém implementovat svými silami.
Ovšem jednoznačně nejlepší jsou dle mého názoru ke studiu Tanenbaumovy knihy „Operating Systems: Design and Implementation“ nebo „Modern Operating Systems“ (v mnoha částech se vzájemně překrývají, první je zaměřena více prakticky – součástí je i výpis Minixu, na němž se v průběhu výkladu demonstruje praktická realizace a odlišnosti od teorie). Pro ty, kdo by se problematikou OS chtěli vážně zabývat, bych je označil za povinnou literaturu. :-)