OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 28.03.2024, 11:58

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 6 ] 
Autor Zpráva
PříspěvekNapsal: 01.06.2018, 14:54 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1972
Bydliště: Most, Praha
Has thanked: 863 times
Been thanked: 697 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í).

_________________
i++ (INC) increment
i-- (DEC) decrement
i@@ (EXC) excrement


Nahoru
 Profil  
 
PříspěvekNapsal: 01.06.2018, 15:41 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 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.06.2018, 15:47 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1972
Bydliště: Most, Praha
Has thanked: 863 times
Been thanked: 697 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.

_________________
i++ (INC) increment
i-- (DEC) decrement
i@@ (EXC) excrement


Nahoru
 Profil  
 
PříspěvekNapsal: 11.10.2019, 02:46 
Offline
Profík
Uživatelský avatar

Registrován: 12.06.2013, 00:11
Příspěvky: 641
Has thanked: 1 time
Been thanked: 76 times
Nadseni chapu, ale do psani vlastniho OS (nepocitam-li mini system na MCU AVR) sem se nastesti nikdy nepustil a usetril tak hodne nervu a casu. Kazda snaha o OS pak konci tim, ze i kdyz je treba jadro doladene k dokonalosti, tak chybi ovladace a hlavne aplikace. Vyzkousel sem za tu dobu desitky OSu a vzdy sem se nakonec pokorne vratil k Widlim a DOSu, protoze proste apliakce ktere potrebuju, sou na 99% tam...
p.s. stale obcas pouziju MikroManazer (kdyz neni po ruce DN/VC), to je myslim mnohem uzitecnejsi nastroj :)

_________________
http://rayer.g6.cz, core i7-2600K, SB Audigy+YMF724+DreamBlaster, GTX970, DOS/WIN98SE/NT4/XP/Debian | retroPC: PPro 200, 192MB, SB AWE64+Live, Matrox Millenium II/8MB+Voodo1, USB 2.0


Nahoru
 Profil  
 
PříspěvekNapsal: 11.10.2019, 07:46 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
RayeR píše:
do psani vlastniho OS sem se nastesti nikdy nepustil a usetril tak hodne nervu a casu.
Ja prave naopak, napisanim vlastneho systemu som si kopec casu a nervov usetril ;)
RayeR píše:
Kazda snaha o OS pak konci tim, ze i kdyz je treba jadro doladene k dokonalosti, tak chybi ovladace a hlavne aplikace.
To je fakt. Preto som do systemu zahrnul aj podporu "standartu" takze o aplikacie nudza rozhodne nebola.


Nahoru
 Profil  
 
PříspěvekNapsal: 11.10.2019, 13:41 
Offline
Profík
Uživatelský avatar

Registrován: 12.06.2013, 00:11
Příspěvky: 641
Has thanked: 1 time
Been thanked: 76 times
A muzu se zeptat co je to za OS? Pokud se implementuje nake API, ktere umozni beh treba Win programu (Reactos) nebo linuxovych, tak je to samozrejme pro dany OS velka vyhoda. Ale ty ovladace? Uz vidim, jak si pises driver na nakou uzavrenou cinskou jebku bez jakekoliv dokumentace, reverzovani wokeniho driveru nic moc, Reactos to aspon resi kompatabilitou api i na urovni driveru (kernel api)...

_________________
http://rayer.g6.cz, core i7-2600K, SB Audigy+YMF724+DreamBlaster, GTX970, DOS/WIN98SE/NT4/XP/Debian | retroPC: PPro 200, 192MB, SB AWE64+Live, Matrox Millenium II/8MB+Voodo1, USB 2.0


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ů: 6 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 9 návštevní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