OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů
Právě je 22 črc 2018, 07:44

Všechny časy jsou v UTC + 1 hodina




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 3 ] 
Autor Zpráva
PříspěvekNapsal: 01 čer 2018, 13:54 
Offline
Kecálek
Uživatelský avatar

Registrován: 24 kvě 2018, 21:32
Příspěvky: 117
Bydliště: Most, Praha
Has thanked: 18 times
Been thanked: 33 times
Vždy mě lákalo napsat si svůj operační systém (protože se mi spousta věcí v současných systémech nelíbí). Po několika rozsáhlejších pokusech jsem to vzdal, pro jednoho člověka je to příliš velké sousto, i když ta myšlenka tam stále je. Ale jednu verzi jsem přece jen tak nějak dokončil. Chtěl jsem si vyzkoušet, jaké by to bylo napsat něco na úrovni CP/M, s novějším hardware. Systém Litos8 označuji jako 8-bitový, protože je omezený jen na 64 KB RAM (jako u 8-bitů), ale jede na PC x86 v 16-bitovém módu, jen nevyužívá segmentové registry. Výhoda, že jede na čemkoliv starém (i když u XT si už nejsem moc jistý).

Stránky projektu: http://litos.wz.cz/litos8/index_cz.htm (download)

Jak vyzkoušet: Pro praxi je systém nevyužitelný (nemá vše co by dobrý systém měl mít), ale třeba se bude někomu hodit pro inspiraci. Doporučuji zkoušet jen s přiloženým emulátorem BOCHS (spuštěním poveláku E.BAT - je to pro DOS nebo Windows). Pod BOCHS jede špatně časování (nefunguje měření rychlosti CPU, i aplikace hodiny jede špatnou rychlostí). Dá se zkoušet i ve VirtualBox (na to je EE.BAT), tam už jede časování dobře. Doporučuji nezkoušet na ostrém HW s připojeným harddiskem, aby nepoškodil jeho obsah, přece jen není funkčnost moc ověřená. .. Teď zkouším, že pod Windows 10 nejde přeložit, protože už neumožňují spouštět COM programy (naposledy jsem to zkoušel pod Windows XP) - ale dá se na zkoušku spustit v BOCHS alespoň to co je tam už přeložené, a možná že ve W10 nepůjde spustit pod VirtualBox.

Kernel se zavádí do horních 32 KB paměti, ve spodních 32 KB jede uživatelský program. Na začátku paměti je tabulka systémových služeb (tedy v podobném stylu jako CP/M). Aplikace i systém jsou vytvořené v assembleru 8086 s překladačem NASM.

Vybavení kernelu: diskety, hard disky IDE LBA s FAT12 nebo FAT16 (max. 2 GB), RAM disk (využívá RAM do 640 KB), porty COM, LPT, displej s češtinou Kamenických, standardní grafické videomódy BIOS, command interpreter (jen pár základních příkazů), základní výpočty float s koprocesorem nebo emulací.

Ukázkové aplikace: ASCII tabulka, kalkulátor s přesností 74 číslic, hodiny, info o portech, CPU, discích a paměti, videomód. Aplikace se zavádí od pevné adresy 0x1000 (pod tou adresou je tabulka skoků do systémových služeb).

Obrázek Obrázek

Složky a soubory: APPS zdrojáky aplikací, BOCHS emulátor, DISK soubory pro obraz disku, EXE překladač, INC includes, SOURCE zdroje kernelu, UTIL pomocné programy, VBOX definice pro VirtualBox, C.BAT překlad, D.BAT vyčištění překladu, E.BAT emulace s BOCHS, EE.BAT emulace s VirtualBox.

Nevýhody: Plán byl udělat kernel dostatečně bohatý na funkce, aby to aplikace měly jednoduché. Kernel dosáhl 32 KB a to tam toho ještě spousta chybí. Pro praktické využití už to dosáhlo slepé uličky. Projekt byl jen experimentem, "vyzkoušet si to".

Další plán byl 16-bitová varianta s pamětí 640 KB (tedy obdoba bohatšího DOS), pak 32-bitová varianta (4 GB) a 64-bitová. Tyto varianty už by umožňovaly provoz více programů. Ne s virtuální pamětí, ale s lineárním adresováním. Když se využijí bohaté systémové knihovny, tak programy mohou být malé a efektivní, mohou se snadno vejít do jednoho adresového prostoru a tím se vše zrychlí a zefektivní (oproti používání virtuální paměti).

Mimochodem, jeden důsledek Litos přece jen měl - že teď programuji multitaskový operační systém v práci, pro ARM. :-) Jen mám jiné představy než šéf a tak z toho nic moc nebude.

Před Litos8 byl pokus o klasický kernel v 32-bitovém módu - nedokončený kvůli náročnosti, příští verzi bych už nedělal v assembleru, ale v C. Měl některé zajímavé vlastnosti: Veškeré věci kolem času (systémové čítače, kalendář atd.) pomocí 64-bitového čísla představující absolutní čas od začátku letopočtu s přesností 100 ns, rozsah kalendáře téměř 60 tisíc let (+- 29 tisíc kolem počátku letopočtu). Kompletní správa Unicode. "Kachličkový" správce paměti (rychlý a efektivní).


Nahoru
 Profil  
 
PříspěvekNapsal: 01 čer 2018, 14:41 
Offline
Pan Štábní

Registrován: 22 kvě 2013, 20:14
Příspěvky: 1888
Bydliště: Bratislava
Has thanked: 208 times
Been thanked: 346 times
Velmi pekna praca :thumbup:
Sam mam jeden OS (8 bitovy, tiez obmedzeny na 64kB) uz za sebou, takze viem ocenit :god:
Chvalim pouzitie kamenickych, je to jedina zaroven aj plnohodnotna slovencina co sa nebije s ramikovymi znakmi. Tiez som ju pouzival.
Tip: Pokial by si si dal podmienku ze to musi bezat na 386+ tak mozes plnohodnotne vyuzit 32bit registre a mat tak linearne 4 GB pameti aj v cistom realnom rezime.

Inak, msdosove veci nejdu na 64bit windowsoch, pokial by si skusil Win10 32bit, tam by to (snad) este mohlo chodit aj priamo.


Nahoru
 Profil  
 
PříspěvekNapsal: 01 čer 2018, 14:47 
Offline
Kecálek
Uživatelský avatar

Registrován: 24 kvě 2018, 21:32
Příspěvky: 117
Bydliště: Most, Praha
Has thanked: 18 times
Been thanked: 33 times
Tam bylo záměrně omezení na 64 KB, stačí pak 16-bitové ukazatele, měl to být jen úsporný malý systém.


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 3 ] 

Všechny časy jsou v UTC + 1 hodina


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz