Operacijski sistem uporabniku omogoča interakcijo s strojno opremo računalnika. Sistem je sestavljen iz več sto tisoč vrstic kode. Običajno je operacijski sistem izdelan s programskimi jeziki C#, C, C ++ in montažo. Operacijski sistem vam omogoča brskanje po računalniku, medtem ko shranjujete in izvajate ukaze. Ne mislite, da je ustvarjanje operacijskega sistema enostavno. Za njegovo izdelavo je potrebno veliko znanja.
Korak
Korak 1. Najprej se naučite programiranja
Sestavni jezik je zelo pomemben; zelo priporočljivo je, da se naučite drugega komplementarnega jezika na visoki ravni, kot je jezik C.
Korak 2. Odločite se, kateri medij želite uporabiti za nalaganje operacijskega sistema
Ta medij je lahko pogon CD, DVD pogon, bliskovni pogon, trdi disk, disketa ali drug računalnik.
Korak 3. Opredelite osrednjo idejo SO
Na primer, v sistemu Windows je glavna ideja enostaven za uporabo grafični vmesnik in veliko varnosti.
Korak 4. Določite, katero procesorsko platformo podpira vaš operacijski sistem
IA-32, ARM in x86_64 so najpogostejše platforme za osebne računalnike. Torej, vsi so vaša najboljša izbira.
Korak 5. Odločite se, ali raje vse naredite sami iz nič, ali je že na voljo jedro, na katerem bi želeli graditi
Linux je na primer projekt za ljudi, ki želijo zgraditi lastno distribucijo Linuxa.
Korak 6. Odločite se, ali boste uporabili lasten zagonski nalagalnik ali vnaprej pripravljen, na primer Grand Unified Bootloader (GRUB)
Če želite sami kodirati zagonski nalagalnik, boste potrebovali obsežno znanje o strojni opremi in BIOS -u. Posledično lahko ta korak ovira dejanski urnik programiranja jedra.
Korak 7. Odločite se, kateri programski jezik boste uporabili
Operacijski sistem v jeziku, kot sta Pascal ali BASIC, je v redu, vendar morate uporabiti C ali Assembly. Sestavljanje je zelo potrebno, saj to zahtevajo nekateri pomembni deli operacijskega sistema. Po drugi strani jezik C ++ vsebuje ključne besede, ki za izvajanje potrebujejo druge polne SO.
Za sestavljanje operacijskega sistema iz kode C ali C ++ boste seveda uporabili enega ali drugega prevajalnika. Zato je dobro, da si ogledate uporabniški priročnik/priročnik/dokumentacijo za prevajalnik C/C ++ po vaši izbiri, ne glede na to, ali je vključen v programsko opremo ali je na voljo na spletnem mestu distributerja. O prevajalniku morate vedeti veliko zapletenih stvari, za razvoj C ++ pa morate vedeti o shemi krmiljenja prevajalnika in njegovem ABI. Pričakuje se, da boste razumeli različne izvedljive formate (ELF, PE, COFF, osnovne binarne datoteke itd.) In razumeli, da je ekskluzivni format Windows, PE (.exe) zaščiten z avtorskimi pravicami
Korak 8. Določite svoj vmesnik za programiranje aplikacij (API)
Eden izmed dobrih API -jev za izbiro je POSIX, saj je dobro dokumentiran. Vsi sistemi Unix imajo vsaj delno podporo za POSIX. Zato bi morala biti povezava programov Unix z vašim operacijskim sistemom enostavna.
Korak 9. Odločite se za svojo zasnovo
Obstajata tako monolitno jedro kot mikro jedro. Monolitna jedra izvajajo vse storitve v jedru, medtem ko imajo mikro jedra majhna jedra, povezana s storitvami uvajanja uporabniškega demona. Na splošno so monolitna jedra hitrejša, vendar imajo mikrojedra boljšo izolacijo napak in zanesljivost.
Korak 10. Razmislite o razvoju in delu v skupini
Tako traja manj časa za reševanje več težav, kar bo verjetno pospešilo izgradnjo boljšega OS.
Korak 11. Ne obrišite trdega diska v celoti
Ne pozabite, da bo izbris pogona nepovratno izbrisal vse podatke na njem! Uporabite GRUB ali drug zagonski upravitelj, da dvakrat zaženete sistem z drugim operacijskim sistemom, dokler vaš operacijski sistem popolnoma ne deluje.
Korak 12. Začnite z majhnim
Začnite z majhnimi stvarmi, kot je prikaz besedila, in se ustavite, preden se lotite stvari, kot so upravljanje pomnilnika in sestavljeno delo. Poskrbite tudi za 32 -bitno in 64 -bitno različico.
Korak 13. Ohranite varnostno kopijo zadnje delujoče izvorne kode
Ta korak je uporaben kot zaščita v primeru, da bi šlo kaj narobe s trenutno različico SO ali razvojem. Če se računalnik zruši in se ne zažene, je dobro, da imate drugo kopijo za delo, da odpravite težavo.
Korak 14. Razmislite o preizkusu novega operacijskega sistema z navideznim strojem
Namesto da znova zaženete računalnik vsakič, ko naredite spremembe ali po pošiljanju datotek iz razvojnega računalnika na preskusno napravo, lahko uporabite aplikacijo navideznega stroja za zagon operacijskega sistema, medtem ko je trenutni operacijski sistem v teku. Trenutne aplikacije VM vključujejo: VMWare (ki ima tudi brezplačno na voljo strežniški izdelek), odprtokodne alternative, Bochs, Microsoft Virtual PC (ni združljiv z Linuxom) in Oracle VirtualBox.
Korak 15. Zaženite različico »kandidata za izdajo« ali različico beta
Ta korak vam bo omogočil, da vas uporabnik obvesti o morebitnih težavah z operacijskim sistemom.
Korak 16. Operacijski sistem mora biti tudi uporabniku prijazen
Dodajte uporabniku prijazne funkcije, naj bodo te sestavni del vašega oblikovanja.
Nasveti
- Preverite morebitne zastoje in druge napake. Napake, zastoji in druga vprašanja bodo vplivala na vaš projekt izdelave operacijskega sistema.
- Če želite, da se sistem pravilno izvaja, uporabite varnostne funkcije kot glavno prednostno nalogo.
- S pomočjo spletnih mest, kot sta OSDev in OSDever, boste lažje razvili svoj operacijski sistem. Prosimo, upoštevajte, da bo za večino namenov skupnost OSDev.org več kot vesela, če uporabite njihov wiki in se ne pridružite forumu. Če se odločite, da se pridružite forumu, obstaja predpogoj: resnično morate poznati C ali C ++ in montažni jezik x86. Prav tako morate razumeti splošne in zapletene programske koncepte, kot so povezani seznami, čakalne vrste itd. Skupnost OSDev v svojih predpisih izrecno navaja, da njena skupnost ni ustvarjena za nego novih programerjev.
- Ne pridružujte se s forumom OSDev.org in nato postavite očitno vprašanje. Navodilo boste prebrali le. Preberite Wikipedijo in navodila za opremo, ki jo želite uporabljati.
- Če poskušate razviti operacijski sistem, zagotovo veljate za "boga" programiranja.
- Prav tako bi morali prebrati priročnik za procesor za izbrano arhitekturo procesorja; ali x86 (Intel), ARM, MIPS, PPC itd. Priročnike za procesorske arhitekture je enostavno najti z Googlovim iskanjem ("Intel priročnik", "ARM priročnik" itd.).
- Ko so vsa razvojna dela končana, se odločite, ali želite kodo izdati kot odprto kodo ali z avtorskimi pravicami.
- Ne začni projekt operacijskega sistema za začetek učenja programiranja. Če ne veste znotraj in zunaj o C, C ++, Pascal ali kakšnem drugem ustreznem jeziku, vključno z manipulacijo kazalca, nizko-nizko manipulacijo, premikom bitov, vgrajenimi jeziki montaže itd., Niste pripravljeni na operacijski sistem razvoj.
- Ustvarjanje popolnoma nove particije za "razširitev" SO je lahko dobra možnost.
- Če želite enostaven način, razmislite o distribucijah Linux, kot so Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD ali SUSE Studio in SUSE KIWI. Vendar pa operacijski sistem, ki ga ustvarite, pripada podjetju, ki je prvo začelo storitev (čeprav imate pravico, da ga prosto distribuirate, spremenite in zaženete, kot želite pod GPL).
Opozorilo
- V dveh tednih ne boste dobili celotnega operacijskega sistema. Začnite z zagonskim SO, nato pojdite na hladnejše stvari.
- Nepazljiv zapis operacijskega sistema na trdi disk ga lahko popolnoma poškoduje. Bodi previden.
- Če naredite nekaj, kar ni priporočljivo, na primer napišete naključne bajte na naključna V/I vrata, boste zrušili operacijski sistem in (v teoriji) bi lahko opekli vašo strojno opremo.
- Ne pričakujte, da bo operacijski sistem enostavno sestaviti. Obstaja veliko zapletenih soodvisnosti. Če želite na primer ustvariti operacijski sistem, ki lahko upravlja več procesorjev, mora imeti vaš upravitelj pomnilnika mehanizem "zaklepanje", ki preprečuje, da bi več procesorjev hkrati dostopalo do istega vira. "Zaklepanje", uporabljeno za to, bi zahtevalo od načrtovalca, da zagotovi, da samo en procesor v vsakem trenutku dostopa do kritičnih virov, vsi drugi pa morajo počakati. Dejansko je razporejevalnik odvisen od prisotnosti upravitelja pomnilnika. To je primer odvisnosti od slepe ulice. Ni standardnega načina za reševanje tovrstnih težav; od vsakega programerja operacijskega sistema se pričakuje, da bo dovolj vešč, kako se z njim spoprijeti.
Dodatni viri
- Smernice: Linux iz nič
- Nalagalnik: GRUB
- Aplikacije za virtualne stroje: Bochs, VM Ware, XM Virtual Box.
- Priročnik za procesor: Intel priročnik
- SO razvojna mesta: OSDev, OSDever