Portál AbcLinuxu, 1. května 2025 21:09
Tak a mame tady druhe pokracovani blogu, zabyvajici se tvorbou operacniho systemu ..
Je to uz priblizne pul roku, co jsem si zacal psat muj operacni system, jez dostal jmeno ZeX/OS a vyvoj jde stale kupredu. Prace je porad spousta, ale jsem presvedcen, ze to nejhorsi mam za sebou a ackoliv se to nemusi zdat, je to docela zabavne a hlavne zajimave a lecos uz jsem se noveho naucil, co by mne nikdy nic nenaucilo.
Za dob, co jsem psal prvni blog, venujici se teto problematice, byl vlastne jeste nic neumejici, ted uz by se dalo rici, ze za urcitych podminek je mozno ho nasadit na nejaky ten pc. Podminek ale takovych, ze by si dotycny uzivatel musel dopsat potrebnou aplikaci :-B Cela vec se ma tak, ze je system relativne pripraven ale nejsou programy, ktere by na nem bylo mozno provozovat.
Mnel bych tedy shodnotit momentalni stav .. co tedy ten OS uz vlastne umi ? Po zapnuti pc, na vas vyskoci zavadec grub, kde je mozno vybrat dva rezimy chodu. Ovsem oboji je v podstate to stejne, az na to ze druhy - rescue mod ma vypnutou detekci disku a pridavnych zarizeni coz se da vyuzit napr. pri nekompatibilnim ide radici, pokud system nenabootuje. Jeli vsechno v poradku, mnela by vas mile prekvapit doba nabehu, ktera je na cpu i486 priblizne 100ms, na rychlejsim je to pak nepostrehnutelny moment. Pote co je nabootovano jste dotazani o uzivatelske jmeno a heslo, defaultne jsou prednastaveny ucty root a guest, jejich hesla si muzete individualne precist v souboru README. Po korektnim zalogovani mate k dispozici barevne ladeny shell, ktery neni o nic obtiznejsi ovladat jako ten unixovy. Vidite-li toto poprve, je nezbytne zadat prikaz "help", ktery vam prozradi zakladni ukony, jez smite vykonavat. Prikazy jsou stejne jako v linuxu, samozrejme jich neni tolik. Mnejte na pameti, ze console jsou k dispozici 4 a lze je vsechny soucasne vyuzivat a prepinat klavesy F1 az F4.
Samotny kernel ma preemptivni multitasking, coz umoznuje kvalitni chod aplikaci, vsech procesu a dokonce i pozadavku, bez toho, ze by jim cas vykonavani nebyl pridelen v pozadovanem obdobi nebo dokonce vubec. Priorita je rozdelena nasledovne .. Kernel a jeho casti bezi na urovni 0, tedy ma k cpu pristup porad, takze kdy se mu to hodi neco vykona. Vsechno ostatni uz je na urovnich 1 az 255, tj. 1 je nejvyssi priorita, kdy je pozadavek pri dotazu ihned vykonan a 255 je takova, kdy dostane pridelen cpu cas pouze jednou za 255 tiku. Casovac jez mame pod irq0, je nastaven na 1000Hz a pokud je z nejakeho duvodu nutne ho uvest do puvodniho stavu - ~18Hz, muzete tak ucinit pomoci parametru v zavadeci "18hz".
Ted se podivame na stav driveru.. Vsechny jsou na urovni kernelu, takze se nemusime bat, ze by vam nektere ze zarizeni prestalo reagovat jen z toho duvodu, ze by havaroval nejaky program. Kazde zarizeni je pri initu nejprve registrovano pomoci
dev_t *dev_register (char *devname, char *desc, unsigned attrib, dev_handler_t *handler);
a jakmile je pripraveno k praci, muzeme s nim provadet libovolne orgie - to nam umozni handler bool (dev_handler_t) (unsigned act, ...);
, ktery nalezi do struktury dev_t *. Veskera komunikace probiha pomoci promennych, hlavne te, ktera udava akci k vykonani, tou je unsigned act
. Jake kousky HW jsou tedy podporovany ? Neni jich moc, a nejsou to vlastne ani vsechny zakladni:
Filesystem podporuje zatim jen fat12 (diskety) a fat16 (hdd), ale neni obtizne napsat dalsi, protoze vsechny fs pracuji pod vfs. Maly jednoduchy tutorial na psani vlastniho systemu souboru muzete najit v eknize pro vyvojare. ZeX/OS jako takovy lze bezproblemove pouzit na jakemkoliv nosici dat, tuto moznost mu dava hlavne grub a diky sve miniaturni podobe - 52kB (kernel) a knihovna glibc (100kB), kterou potrebujete jen pri kompilaci aplikaci, se vejde opravdu vsude. Primarne je dodavan na cd (650kB .iso) ale na foru se muzete docist jak vytvorit bootovatelnou disketu.
Ted prejdeme asi k tomu nejzajimavejsimu .. Uz neni in, kdyz nemate na pc internet, nedejboze sit, myslel jsem na to a na ZeX/OS je to mozne. Fakt je ten, ze zatim nejsou napsany zadne drivery na sitove karty, ale co - napsal jsem maly protokol IPs (Internet Protocol over Serial) a jak uz sam nazev napovida, jedna se o komunikaci prez seriovy kabel. Je treba danou vec objasnit trochu vice .. Jednoduse zastrcite kabel do com portu a druhy konec do dalsiho pc (nejlepe s linuxem), na druhem pc musite spustit aplikaci ips2ip, ktera preklada nas ips protokol do klasicke ip. Muze se to zdat, ale az tak pomaly spoj to neni, protoze protokol (ips) potrebuje u kazdeho packetu 1-4bytovou hlavicku, takze konecna max. dosazitelna rychlost pri spravne nastavenych parametrech rs232 muze byt az 128Kbps. Asi se ptate, na co mi to je, kdyz tam neni prohlizec, ale odpoved zni netcat. NetCat je nastroj, ktery lze pouzit napr. k hackovani, chatovani nebo i k nejakym pokusum. Je docasne primo soucasti jadra, takze ho muzete pouzit hned po nastartovani, pak tu mame druhou moznost, spustit ho v podobe spustitelne aplikace - je nutno ho stahnout z internetu, nejdrive jej musite skompilovat. Stejne jako v pripade systemu, je nutno mit pro tuto cinnost nainstalovany balicky nasm a gcc. Pokud mate disketu, postaci napsat "make install", coz nam binarku na disketu zkopiruje. Hrave ji pak pripojite prikazem "mount /dev/fd0 /mnt/floppy" a ve slozce /mnt/floppy pak spustite "./nc" s parametrem, ktery udava ip adresu vzdaleneho pc a port.
Asi uz toho bylo dost, tak mi nezbyva nic jineho, nez poprat hodne stesti tem, kteri by eventualne byli te odvahy a muj vytvor vyzkouseli. Pokud by se nasel nekdo kdo by chtel prispet svou praci, dvere jsou otevreny. Kompletni zdrojovy kod lze stahnout z balicku na webu nebo prez znamy git repozitar. Pokud by nekdo mnel zajem o novinky, muze si procitat forum, pro ty co potrebuji znat odpoved hned nebo vyzaduji primy kontakt je tu irc kanal #zexos na serveru irc.freenode.net. Vsichni jsou vitani
Tiskni
Sdílej:
jenze on mnel kompletne funkcni system uz od zacatku diky minuxu
Za prvé to byl minix, za druhé jste patrně podlehl docela rozšířenému omylu, že Linux vznikl z Minixu, ale to není pravda.
i
a u
su na klavesnici vedla seba, takze ta chyba je uplne bezna. Ja sa bezne mylim pri zapise mysql
, tiez mi tam obcas nabehne u
.
Je to cele pod GNU/GPL3 licenci. Myslim, ze takovy malicky hobby os nebude zajimat nikoho dalsiho, nez cloveka co se chce neco naucit.by ses divil
Treba se z tveho OS vyvine opravdu plne pouzitelny OS. Kdo vi.Jako že až na něj půjde přeportovat Emacs?
Ted se podivame na stav driveru.. Vsechny jsou na urovni kernelu,Pan Tannenbaum by tě pravděpodobně nepochválil
Samotny kernel ma preemptivni multitasking, coz umoznuje kvalitni chod aplikaci, vsech procesu a dokonce i pozadavku...Ani Chuck Moore...
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.