Ami be kell szerezni:
Telepítsd a VirtualBox-ot, vagy hasonlót. Telepítsd rá az MS-DOS-t. Ehhez tuti rengeteg dokumentációt találsz, de próbálkozhatsz FreeDOS-al is.
Tegyél föl valami egyszerü DOS C fordítót és assembly fordítót a friss virtuáls gépre.
DOS-os hexa-editor fog kelleni kesöbb.
Alap tudás:
Az oprendszer és a BIOS funkcióit (mint pl képernyőkezelés, filekezelés) interruptokon keresztül érheted el. Nézz utána hogyan lehet interruptot hívni C-ben vagy assembly-ben.
Legegyszerűbb oprendszer részletei:
Ha sikerült meghívni egypár DOS-os interruptot, nézd meg hogy lehet grafikus módra átváltani, és ott színes pixeleket kirakni. VESA szabványhoz keress rövid példa kódokat, az kell ide.
Vagy annyi is elég, ha a BIOSsal ki tudsz rakatni a szöveges képernyőre néhány karaktert. <- Inkább ezt javaslom, és mehetsz tovább.
Írj olyan "tömörítö" programot, ami nem tömörít, viszont egy fix méretü archívált fájlba bele tudjon pakolni fájlokat, illetve ki tudja onnan olvasni azokat. Ez a DOS-os program használhat C fájlkezelést az archívum megnyitására.
Legegyszerübb "just works": nincsenek könyvtárak, az archívum elején egy filenév-filehossz táblázat fix mérettel, utána fix méretü helyek az egyes fileok tartalmának.
Nézd meg a BIOS-on keresztül hogy tudsz írni-olvasni a merevlemezre. Irj belőle primitív fájlkezelést:
- read_whole_file(fajlnév, memoria kezdete)
- write_whole_file (filenév, memoria kezdete, hossza)
Teszteld DOS alatt.
Kösd össze ezeket:
Készíts egy olyan változatot az archiválóból, ami a DOS filekezelés helyett a BIOS hívásaiddal nyitja meg az archívumod. Ez lesz a filerendszer drivered.
A filerendszeredben legyen egy "init" nevű szöveges file. Ennek minden sora egy filenév lesz, amit végre kell hajtani. Az oprendszered annyit csináljon, hogy nyissa meg az init-et, töltse be a benne megjelölt fileokat, futtassa egyiket a másik után. A legeszerübb, erre a rendszerre irt programod irja ki hogy "hello world 2011".
Memoria kezelő OS rész:
A betöltött programok egy fix kezdetű, fix hosszúságú memoriacimre töltödnek. Ez a kódmemoria, ahol az épp futó alkalmazás kódja van.
A fix memoriacím fölötti területet korlátlanul használhatják az alkalmazások adatok tárolására, külön allokáció nem kell.
A fix memoriacím alatti területen az operációs rendszered számára fenntartott területet lesz.
Ez egy alap, olyan irányba fejleszted ami csak érdekel:
- a programjaidba fordított BIOS hivásos rutinok kerüljenek át az oprendszeredbe, ezek lesznek az op.rsz. funkciói
- bővítsd az oprendszered nyujtotta grafikus, stb funkciókat
- írhatsz egyszerű command interpretert
- net, usb driverek
- védett mód
- flexibilisebb filesystem
- egyszerü multitasking
PS:
Telepítéskor csinálj több partíciót. Elsőre mehet a DOS, másodikat nem kell formázni, ide kerül majd az új rendszer. DOS-ból az "archiváló"-val kényelmesen tudod majd írni, olvasni a saját rendszered fájljait.