Moj operacny system

Počítače stolní, notebooky, tablety, tiskárny, scanery a vše, co nějak souvisí s PC

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
inflater
Příspěvky: 60
Registrován: 10 srp 2008, 02:00

Moj operacny system

#1 Příspěvek od inflater »

zdravim,
vidiet ze mi ta elektronika nejde a teda by som vam chcel oznamit, ze sa tak trocha venujem do programovania a PC. skusil som vytvorit vlastny 32bit operacny system, http://derrick.xf.cz z nudy. tvorba prvej verzie co je na webe mi zabrala asi dva mesiace (volny cas z letnych prazdnin) a teda od vas by som chcel ci by ste sa na to pozreli a popripade ak vlastnite nejake to PC s disketovkou, aj ten OS odskusali... vopred diky moc.

neobsahuje to ziadne graficke prostredie a teda sa to trocha podoba na MS-DOS, ale mozem vas ubezpecit ze sa jedna odznova nakodene 32bitove jadro v protected mode... ;) islo o dost tazku robotu, vsetko je napisane v assembleri.

programovanie operacnych systemov je to najtazsie z programovania pre pocitace :)

ak by ste chceli, spravil som vlastnu stranku kde mam vsetky mozne pokusy co som vytvaral v delphi... http://inflater.wz.cz . zatim ziadna slava ale budem tam pridavat aj uzitocnejsie programy :)

Zirafka
Příspěvky: 819
Registrován: 20 srp 2006, 02:00

#2 Příspěvek od Zirafka »

Jo funguje :-)

Hrozně se mi líbí příkazy na smazání hesla Biosu nebo jeho poškození :D

Jen při zadání příkazu "ld" se vypíše chyba, že nemůže přistupovat k sektoru. Ale obsah diskety se zobrazí, včetně popisků.

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#3 Příspěvek od rnbw »

Tiez som kedysi chcel nieco take spravit, ale potom ma to preslo. Existuje Linux, kde je vacsina veci urobena v C a tym padom to nie je viazane len na x86.

Uživatelský avatar
inflater
Příspěvky: 60
Registrován: 10 srp 2008, 02:00

#4 Příspěvek od inflater »

Jo, tam nastav 16bitovy driver disketovky, lebo ten moj 32bit je seredne odflaknuty, ale aspon ze trocha ide :D - vsetky tieto kravinky najdes v setup utilite.

a ten grilovany parek si nevsimajte, vtedy som troska blbol :)

Dneska som pridal do sekcie "mini utilitiek" program co zistuje prvocisla... a po dlhej dobe s programovanim coskoro oprasim delphi a spravim aj nieco uzitocnejsie. :)

Uživatelský avatar
inflater
Příspěvky: 60
Registrován: 10 srp 2008, 02:00

#5 Příspěvek od inflater »

Dostal som otazku ci by sa v tom OS dali pustat MS-DOS programy - emulaciu prerusenia int 21h by som sice spravit mohol, ale neviem ako by sa zachovali tie aplikacie co boli urcene povodne pre 16bitovy rezim a adresovanie segment a ofset... jedine riesenie by bola emulacia asi taka, ze presunut jadro do vyssej RAMky a nacitat dos aplikaciu pod 640K a spravit emulaciu int 21h, ale pred tym prepnut do 16-bitoveho rezimu. Neviem sice ci by to bolo to prave orechove... vacsina ludi by asi rovno pouzila boot disketu alebo pouzila google.

Na druhu stranu, ako hodnotite obsah oboch stranok? Co by ste chceli pridat do sekcie PC, software, HW?

Uživatelský avatar
Zmije
Příspěvky: 1513
Registrován: 30 čer 2005, 02:00
Bydliště: Pardubický kraj

#6 Příspěvek od Zmije »

Zdravim. Stránky jsou zajímavé, škoda že tam nejsou k vidění žádné zdrojáky, os jsem si chtěl vyzkoušet, ale bohužel jsem nenašel žádnou funkční disketu, tak snad někdy později. Nešlo by udělat nejnutnější věci v asm a potom zbytek v C, jako to má linux? v asm se zbytečně nadřeš. Já jsem o prázdninách taky trochu experimentoval (v podstatě jsem jen opsal zdroják z http://www.root.cz/clanky/piseme-operacni-system-boot/ ), pouze reálný mód a výpis textu, Bavil jsem se s jedním programátorem a ten mi řikal, že podoné pokusy s os dělal na SŠ, dostal se přibližně stejně daloko jako ty a skončil ve chvíli, kdy měl emulovat reálný režim v chráněném režimu, takže to nejtěžší máš teprv před sebou.

Uživatelský avatar
inflater
Příspěvky: 60
Registrován: 10 srp 2008, 02:00

#7 Příspěvek od inflater »

emulovat realmode v chranenom rezime? :) hehe... VM 8086, to znam ;). ono sa to da este obist tym ze sa z chraneneho rezimu prepina do realneho a nas5, toho vyuziva aj moj OS ked prepnes na 16bitovy driver disketovky, kedze ako vidis, 32bitovy trocha zlobi. a v rychlosti to ani nepoznat, teda ak sa nepouziva multitasking. dobry priklad: Windows 95 a disketovka. :P

ohladom toho C, mas pravdu, ale ja som si nikdy v OSdev nebral priklad z inych operacnych systemov, teda akurat raz a to z www.dex4u.com . ale potom som sa na to vyklaslal lebo to vyzeralo ako keby som kopiroval jeho kod...
Ccko moc neovladam... len delphi /pascal/ ale skoda ze pascal nie je taky portabilny ako je C. co narobime... :(

ten OS som napisal len tak zo srandy a necakal som k nemu uz cosi prilepsovat... staci 0.0.1 verzia, lebo dneska sme v zlej dobe na taketo veci; keby sme boli v roku 1982 tak to uz je ina rec. :) dnes uz ide tak vyvoj dopredu ze ludia rozoznavaju cely OS iba podla toho ake ma graficke rozhranie. :roll:

k tym zdrojakom, no... zdrojaky niektorych programov mam, ale ostatne ako som pisal sa mi stratili kdesi v starom kompe a neviem ci su tam a povacsina zmizla navzdy. keby si chcel tak mi napis na ICQ (dozvies sa ho na stranke) a mozem ti dajake exemplare poslat :)

Uživatelský avatar
Zmije
Příspěvky: 1513
Registrován: 30 čer 2005, 02:00
Bydliště: Pardubický kraj

#8 Příspěvek od Zmije »

Pokud nepoužíváš multitásking, tak je přepínání jednodušší způsob. Přepínat pokaždé když potřebuješ nějaký ovladač není příliš udržitelné, co když bude potřebovat číst z diskety nějaký 32bit program? To jako uložíš paměť, přepneš, přečteš data, přepneš zpět, nahraješ paměť a tak pořád dokola? Co se týče přechodu na C, tak nejsem programátor, takže nevim co by to přesně obnášelo, jestli by stačilo portovat jen knihovny pro tvůj os, nebo by byla třeba úprava kompilátoru (např. GCC), ale pokud se chceš věnovat nízkoúrovňovému programování os, ale i embed zařízení, bez C se neobejdeš, tady nejde o to si brát přiklady z jiných os, tohle je rozhodně dobrý příklad, ale C bylo přímo vytvořeno pro programování os, tady jde o jeho vlastnosti. Jak jsi psal u paskalu jsi narazil na problém velké provázanosti s os, není tolik multiplatformní, nemá tak výkonný kompilátor a co jsem se učil já, je jen 16 bitový (ikdyž to už možná neplatí).

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#9 Příspěvek od rnbw »

Ked chce niekto pouzivat programy pre DOS, tak existuje FreeDOS. Alebo v DOSemu v Linuxe, ked pri tom potrebuje aj nieco dalsie robit. Takze robit novy OS preto, aby tam niekto spustal programy pre DOS je blbost.

Uživatelský avatar
Zmije
Příspěvky: 1513
Registrován: 30 čer 2005, 02:00
Bydliště: Pardubický kraj

#10 Příspěvek od Zmije »

Blbost je to v případě, že člověku jde jen o tu funkci, pokud se chce naučit, jak systém pracuje a vyzkoušet si základní práci s hw na nízké úrovni, je to velmi dobrá zkušenost. Třeba bude jednou pracovat na jádře linuxu, nebo pro něj psát ovladače... Taky pro jednoúčelové řídící počítače se ještě stále píše os na míru, např. na počítači řídícím signalizaci na trati je prý os na miru v asm, kvůli spolehlivosti.

Uživatelský avatar
inflater
Příspěvky: 60
Registrován: 10 srp 2008, 02:00

#11 Příspěvek od inflater »

ale pokud se chceš věnovat nízkoúrovňovému programování os, bez C se neobejdeš
Sorry, ale toto je blbost na Ntu. ASM mas najnizsi level a jediny nizkourovnovy jazyk - nizsie nez ASM uz ist nemozes (akurat len skompilovany strojovy kod). Dobry priklad je napr. MenuetOS ( www.menuetos.org ) ktory bol napisany komplet v ASM a podporuje aj x86, aj x86-64.

Ale suhlasim ze v Ccku je to lahsie oproti platformam, ale pokial sa nejedna o seriozny projekt tak naco? Takisto mat cosi na nadstavbe Linuxu nie je ziadna vyhra. Linux je stabilny len preto, lebo hlavne jadro ma dier ako Windows, este aj viac, a len postupne addony a patche a opravy ho robia stabilnym. Navyse linux je mikrojadro a moj OS je konsolidovany ako monoliticke jadro - hlavne drivery v binarke, zatial ziadna modularita, kernel aj shell v jednom subori, kernel sa stara o vsetky veci. Mikrojadro (microkernel) je trocha o niecom inom.

Uživatelský avatar
Zmije
Příspěvky: 1513
Registrován: 30 čer 2005, 02:00
Bydliště: Pardubický kraj

#12 Příspěvek od Zmije »

Asi jsem špatně vyjádřil, nepochybuji o tom že nižší jazyk než asm už není a že teoreticky v něm lze všechno udělat, ale pokud v něm budete psát větší projekt, brzy zjistíte, že se přestáváte orientovat ve vlastním kódu (natož v kolegově) a že příliš často podrobně řešíte prakticky stejné poblémy.

Uživatelský avatar
Zmije
Příspěvky: 1513
Registrován: 30 čer 2005, 02:00
Bydliště: Pardubický kraj

#13 Příspěvek od Zmije »

Ještě bych doplnil, že v asm se už moc neprogramují ani embed zařízení, protože v komerčním prostředí to znamená výrazné zdržení a zbytečné výdaje, docela by mě zajímalo kolik lidí zde píše např. pro ATmegu nebo pro msp v asm. To neznamená, že asm zatracuji, ale rozhodně v něm nemá smysl psát celý kód.

Uživatelský avatar
rnbw
Příspěvky: 32312
Registrován: 21 bře 2006, 01:00
Bydliště: Bratislava

#14 Příspěvek od rnbw »

Nehovorim, ze pisanie OS je blbost. Blbost je pisanie noveho OS, v ktorom sa budu spustat programy pre DOS.

Linux nie je mikrojadro, ale monoliticke jadro. Bugov je tam ako nasranych a vzhladom na rozsah kodu je to pochopitelne. Vacsina z nich je v malo pouzivanych castiach kodu - tzn. v driveroch na exoticky HW, osetreniach zriedkavych chybovych stavov a pod. Vysledok je ten, ze v praxi je to velmi pouzitelne a stabilne - nie je problem, aby server bezal rok. A ked mi nieco nefunguje, tak nie je problem najst bug a pripadne ho aj opravit.

Inak podporujem tvoj zaujem o OS - cim viac ludi vo vyvoji (open source), tym lepsie. Som zvedavy, kedy prijde tvoj prvy patch do Linuxu :)

Uživatelský avatar
Zmije
Příspěvky: 1513
Registrován: 30 čer 2005, 02:00
Bydliště: Pardubický kraj

#15 Příspěvek od Zmije »

S tim souhlasím, jádro a věci až po příkazovou řádku jsou v linuxu na dobré úrovní, ale od X_k nahoru to za moc nestojí, příjde mi to stále ještě dost nehomogenní a málo funkční, snad se to pomalu lepší, už to bude rok co windows používám jen v případech, kdy není jiná možnost. Ale pokud chce být programátorem a studovat na VŠ stejně se bude C muset alespoň trochu naučit, já jsem na elektrofakultě, která je u nás od IT oddělená, ale jeden semestr programování v C jsme měli povinně, nehledě na to že kombinace C s vkládaným asm mi přijde docela zajímavá.

Odpovědět

Zpět na „Výpočetní technika“