C és C++ ban OS készítés?
SZiasztok, egy alap DOS hoz hasonló OS-t szeretnék összedobni C és C++ nyelveken. Csak azt nem tudom hogy ez hogy is nézne ki mert hogy fordítsam le egyáltalán a programot (Mert az exe az ugye Windows) ehát valaki le tudná írni nekem ennek a folyamatát vagy egy kis (Nem Minix/Linux) OS-t mondani ami OpenSource és megtudom nézni hogy hogy is kellene nekikezdeni?
Üdv! 16/F
Én viszonylag (Az ilyen korban lévőkhöz képest) jól tudok C#-ot és C++ -t illetve ennél valamivel kevésbé C-t.
Assembly-hez 0 hoz konvergál.
Assmebly tudás jól jönne pedig, de enélkül is megoldható, ha van elégséges C tudásod, vagy c++.
Nagy programozói virtuózitást nem igényel a feladat, de rengeteg infó kell ahhoz, hogy valamit alkothass, ami teszi is a dolgát.
A legrosszabb az egészbnen, hogy nincsenek .h-k, nincsen malloc, meg libc, mindent neked kell megírnod, nulláról.
Tehát képernyőkezelést, hogy arrébb menjen a kurzor, hogy scrollozzon a lap végén, hogy a keyboard lenyomásakor megjelenjen egy karakter, stb..
Az összes függvényt neked kell legyártanod.
És ez az elején nagyon frusztráló tud lenni, amíg el nem jutsz odáig, hogy legalább a státuszt lekérdezd, hogy egyáltalán hol vagy, hogy mit csinál a gép, hogy a memóriát kezelni tudd, stb.
"nincsen malloc"
Bizony, az egyik legfontosabb lépés a malloc() implementálása lesz. Mert ugye majd futtatni akarsz progikat rajta, és azok bizony az op.rendszertől fognak össze-vissza memóriát igényelni vagy éppen felszabadíttatni.
A printf() is érdekes móka, de ott talán segít a VGA kártya pár alapszolgáltatása.
Anno a diplomamunkámnak én is egy operációs rendszert készítettem C-ben. Nem nyers hardveren, hanem egy Mach nevű mikrokernelen (olyasmi, mint a Darwin XNU-ja). Itt olvashatsz róla 2.7.1-ben [link] PDF. Akkoriban még nem volt Linux. A helyedben FreeDOS-ból vagy Linuxból indulnék ki.
Bootolás után először megpróbálhatsz egy kis shellt, parancsértelmezőt írni (amolyan command.com-szerűséget). Persze egyből lefordíthatod a Bourne shellt is.
elszállt a gépem előzőnél
Nem kell újra megvalósítanod a C könyvtárból a malloc-ot, nert az a C könyvtárban már megvan. A C könyvtár malloc függvénye által igénybe vett operációs rendszer szolgáltatásokat kell megcsinálnod, ami lapozás nélküli operációs rendszerben nem nehéz arra megfelel a C könyvtárban lévő vázlatos rendszer. Több program közotti tárhelymegosztás bonyolítja a helyzetet.
Lapozást hagyd meg arra, amikor több tapasztalatod lesz vele (kellemetlen dolog processzor szinten laptáblákkal
foglalkozni, nehezen nyomkövethető is). Vagy próbálj neg Te is a Mach3 vagy más operációs rendszer készlet alapvető függvényeire építeni.
"Nem kell újra megvalósítanod a C könyvtárból a malloc-ot, nert az a C könyvtárban már megvan. "
LOL
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!