Egy operációs rendszert szeretnék írni. Hogy induljak el?
Tudom, hogy nem vagyok normális, de itt van a nyár, valamivel el szeretném foglalni magam, és akkor legyen hasznos (tanulok belőle...).
Matek-Infó osztályba járok, az infó jól megy. C++ -t tanulunk, de valamennyire tudok Pascalba, meg Javába programozni, Objektum Orientált programozással nincs bajom, szálkezelés megy (úgy ahogy).
Nem akarok világmegváltó operációs rendszert írni, de örülnék, ha mondjuk a linux kernelt felhasználva lenne egy olyan operációs rendszerem, ami le tudja fordítani az általam írt programokat, tudja futtatni azokat, menteni, és hasonlók.
Legjobb az lenne, ha én írnám meg a kernelt is, de szerintem az nagyon hosszú lenne.
"Amúgy ha jól emlékszem, különböző processzusok között vannak szétosztva a feladatok, amiket a számítógép végre kell hajtson, adattárolás: gondolom a RAM (pl. egy programba a változók értékét ott tárolja)"
Egyáltalán nem. :)
MiskoL! Te csönd.
A hosszú úgy is az első lépéssel kezdődik.
Ahogy egy sikeres cég is egy gondolattal kezdődik.
Az egy másik dolog hogy csak a kitalációk 0,00002%-a valósul meg, de honnan gondolod, hogy nem éppen ő lesz az?
Ő legalább valamit tesz azért, hogy jobb legyen és valamelyest közelebb kerüljön a megvalósításhoz, még akkor is ha lehetetlenséget súrolja a megvalósítási volumene. De akkor is tanul belőle, nem úgy mint a gyk-nak a 99%-a.
Nekem az egyik álmom, hogy MMO-t készítsek egy saját csapattal. És én nem vagyok gyerek a 24évesen és lassan az egyetemet vége felénél.
Az a baj ezzel a kibszott világgal, hogy a felnőttek csak célt látnak, álmokat nem nagyon, mert a teljesítés bekorlátozza a látóteret.
Nézd meg a gyerekeket, akik még 8-14évesen kitalálják "én ez akarok lenni" féle álmokkal. Nekik még van álmuk. Aki ezt elveszíti felnőtt korára, az el is vesztette az önmegvalósítását.
Szóval az a kérdés: Van-e értelme olyan álmot üldözni ami lehetetlennek tűnik? (pl. ez?) Persze, mert mindenből lehet tanulni.
Volt egy eset Amerikában (forrást nem tudok mutatni), hogy a tanár nő kérte a gyerekeket, hogy írják le mit akarnak majd később csinálni. Gyerek leírta, hogy szállítmányozással akar foglalkozni, mert van jó ötlete. Tanárnő "kiröhögte". Azóta az ő szállítmányozási cége Amerikában a Top3-ban van.
Erről ennyit.
Mi epp egy MMO-t keszitunk ha erdekel :)
Kedves kérdező!
A c++ ismereteid rendkívül hasznosak lehetnek egy operációs rendszer megírásában. De önmagában nem elég. Sőt, ami azt illeti kevés. Itt inkább c-re és assambly ismeretekre lenne szükség. Illetve hardverközeli ismeretekre is.
Próbálj meg előbb erre a két nyelvre átállni. Bár a c-s részeket is értelemszerűen megírhatod c++-ban is.
De az assambly-t nem tudod kihagyni. A linux alapú op. rendszerhez, ami karakteres volna: ismerned kellen annak rendszerhívásait. Nem egyet kettőt legalább 100-at. Ez alapján írnod kéne egy bash klón-t aminek megint nincs értelme( a spanyol viasz újrafeltalálása miatt)
Próbálj meg inkább mindezek előtt egy virtuális gépen futtatni egy olyan "nem operációs" rendszert, ami bootolásból kiír egy szöveget.
Ehhez
Itt találsz segítséget.
Ez tiszta assambly lesz sajnos.
De pl. a hello world bootloader keresés is igen értelmes találatokat ad.
Ha ezzel megvagy, haladj szépen sorjában:
-írj programot ami a billentyűzetről képes karaktereket kiírni. Ez már sokkal nehezebb feladat lesz.
A számítógép a billentyűzetről soha sem a betű kódját kapja meg, hanem a karakter sorszámát. Ezeket konvertálnod kell előbb karakterekké. Ehhez mondjuk Tannenbaum Operációs rendszerek című könyve adhat segítséget.
Tehát két dolgot tehetsz:
1.) Feladod(sajnos sokan itt buknak el az ilyen ötletek)
2.) Megpróbálsz egy primitív linux alapú operációs rendszert írni(magyarán újraírod egy karakteres rendszer főbb parancsait beleértve a bash-t is)
3. Az általam leírt módon indulsz el, így később esélyed lehet egy új operációs rendszer írására.
Szgép architecturákhoz kell értened elsőként. Az oprendszerek folyamatok, mem kezelés várhat. Adatot beolvasni a ramból kiirni oda v a vinyora, akkor regiszterek melyik mire való, milyen parancsok mit csinálnak egyes regiszterekkel.. Bitek, hexaszámok, digitális hálózatok ilyenekkel kell foglalkoznod. És elsőre nem pc-t kell programozni mert egy olyan cpu utasításkészlete túl tág. AVR v PIC microchipekkel kezd (uC) azoknak kb 100 utasítása van és a uC architektje is 1xű.
Itt van nekem Á megvan:
ATmega16/32,ATmega406 utasításkészlet ki van nyomtatva igen kb 4 oldal és olyan 100 valamennyi ut. Am hobbielektronika.hu-n van ilyen uC-ről tutorial. AVR assembler néven keresd a cikkek között. Ennek van értelme nekiállni mert el fogsz érni célokat és át fogod látni h egy opre mibe is kerül ezek után.
Ha akarsz küld privátot magam is foglalkoztam ilyenekkel és ez a uC-es dolog szintén tervbe van. Jah az egyetlen hátulütője h az elektronikai részét is meg kell csinálni. Forrasztgatni, bekötni feszt szabályozni áramellátás stb. De legalább nem lesz olyan szemkifolyós egyésznapos gépnézős amibe bele lehet unni.
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!