Kako narediti računalniški operacijski sistem: 13 korakov (s slikami)

Kazalo:

Kako narediti računalniški operacijski sistem: 13 korakov (s slikami)
Kako narediti računalniški operacijski sistem: 13 korakov (s slikami)

Video: Kako narediti računalniški operacijski sistem: 13 korakov (s slikami)

Video: Kako narediti računalniški operacijski sistem: 13 korakov (s slikami)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, April
Anonim

Ta wikiHow vas uči, kako načrtovati in razviti operacijski sistem, če ne veste, kako kodirati v C ali C ++. Operacijski sistemi upravljajo strojno opremo računalnika in zagotavljajo vire, ki jih aplikacije potrebujejo za zagon. Za pisanje operacijskega sistema od začetka je potrebno močno obvladovanje računalništva, programskega jezika, kot sta C ali C ++, postopkov sestavljanja in upravljanja kod.

Koraki

1. del od 2: Učenje osnov

Naredite računalniški operacijski sistem 1. korak
Naredite računalniški operacijski sistem 1. korak

Korak 1. Vzemite nekaj osnovnih tečajev računalništva

Za razliko od razvoja za splet ustvarjanje operacijskega sistema zahteva dobro razumevanje algoritmov, podatkovnih struktur, računalniške strojne opreme in upravljanja virov. Ljudje dobijo te diplome, zato po branju spletne vadnice ne pričakujte, da boste napisali celoten operacijski sistem! Harvardov tečaj Uvod v računalništvo je na voljo prek EDX -a brezplačno.

Naredite računalniški operacijski sistem 2. korak
Naredite računalniški operacijski sistem 2. korak

Korak 2. Naučite se programskega jezika na visoki ravni, kot je Python

Ko boste dobro razumeli računalništvo, je naslednji korak obvladati C in/ali C ++. Tako kot učenje računalništva tudi obvladovanje jezika ni neobvezno-operacijskega sistema ne boste mogli kodirati, če ne morete pisati trdnih aplikacij.

Če ste novi v C, si oglejte Dartmouth's C Programming: Getting Started, ki je brezplačen prek EDX. Ko zaključite ta tečaj, lahko opravite naslednji tečaj v seriji: Programiranje C: jezikovne osnove. Nato pojdite na naslednje tečaje, kot so modularno programiranje in upravljanje pomnilnika ter kazalci in upravljanje pomnilnika

Ustvarite računalniški operacijski sistem 4. korak
Ustvarite računalniški operacijski sistem 4. korak

Korak 3. Naučite se jezika montaže

Sestavljalni jeziki so jeziki nizke ravni, namenjeni komunikaciji z različnimi procesorji. Ker je sestava za različne vrste procesorjev različna (npr. Jezik sestavljanja x86 za procesorje Intel, AMD, VIA in druge), se boste morali naučiti različice za vrsto procesorja, za katerega kodirate.

  • Ta odprtokodna knjiga, če jo preberete v celoti, vam lahko da dovolj trdno razumevanje za izgradnjo operacijskega sistema.
  • Art of Assembly Language je zelo priporočljiva knjiga o sestavljanju, ki je na voljo tako v spletu kot tudi brez njega.
  • Veliko bi morali raziskati tudi vrsto procesorjev, na katerih naj bi deloval vaš operacijski sistem. Priročnike za procesorsko arhitekturo lahko preprosto najdete z Googlovim iskanjem ("Priročniki Intel", "Priročniki ARM" itd.).
Naredite računalniški operacijski sistem 5. korak
Naredite računalniški operacijski sistem 5. korak

Korak 4. Izpolnite vadnico za operacijski sistem

Vadnice za OS vas bodo vodile skozi postopek ustvarjanja osnovnega operacijskega sistema. To vas navadi na postopek in vam pomaga ugotoviti, ali vam kakšen kos manjka. Ko opravite eno ali dve vadnici, boste na dobri poti, da ustvarite svoj lasten operacijski sistem.

  • Bare Bones je vadnica, ki vam pomaga napisati prvo preprosto 32-bitno jedro. Po zaključku vadnice je naslednji korak uporaba Meaty Skeletona za strukturiranje lastnega operacijskega sistema.
  • Linux iz programa Scratch je spletna knjiga, ki vas vodi skozi ustvarjanje lastnega operacijskega sistema Linux.
  • Operacijski sistemi od 0 do 1 so brezplačna knjiga o ustvarjanju različnih operacijskih sistemov od začetka do konca.
Naredite računalniški operacijski sistem 3. korak
Naredite računalniški operacijski sistem 3. korak

Korak 5. Ugotovite cilje svojega operacijskega sistema

Kaj želite, da naredi vaš operacijski sistem? Kako naj bi to izgledalo? Ali morate res napisati celoten operacijski sistem ali samo želite ustvariti določeno podobo namizja? Vse to je treba upoštevati, preden začnete kodirati.

  • Razmislite o razvoju z ekipo drugih programerjev. Skupina razvijalcev, ki dela na projektu, bo znatno skrajšala čas razvoja.
  • Dodajte svoje cilje projekta, načrte in vprašanja v svoje javno skladišče, da vam bodo drugi lahko pomagali.

2. del od 2: Gradnja vašega operacijskega sistema

Zabavajte se z računalnikom Korak 16
Zabavajte se z računalnikom Korak 16

Korak 1. Izberite razvojno okolje

To je platforma, ki jo boste uporabili za kodiranje novega operacijskega sistema. To je stvar osebnih preferenc, vendar večina ljudi uporablja Windows ali okus UNIX -a. Če uporabljate Windows, je dobro, da namestite okolje UNIX, kot sta Cygwin ali MinGW. Na splošno se želite prepričati, da katero koli okolje, ki ga uporabljate, vključuje naslednje:

  • GCC (prevajalnik Gnu). Če uporabljate Windows, ga lahko namestite v Cygwin ali MinGW.
  • Binutils je zbirka orodij, ki se uporabljajo za manipulacijo predmetnih datotek. Če uporabljate Windows, ga lahko namestite v Cygwin.
  • Dober urejevalnik besedil. Vim in emacs se običajno uporabljajo v okoljih UNIX. Uporabniki sistema Windows lahko uporabljajo Notepad ali pa si za nadgradnjo z več zavihki ogledajo Notepad ++.
  • Perl in/ali Python. Za manipulacijo nizov je priporočljivo eno ali oboje.
Ustvarite računalniški operacijski sistem 13. korak
Ustvarite računalniški operacijski sistem 13. korak

Korak 2. Nastavite sistem za nadzor različic

Pisanje operacijskega sistema pomeni, da boste verjetno ustvarili na stotine (ali na tisoče!) Vrstic kode. Ko delate na popravkih, je to lahko zmedeno. Nekatere možnosti za preverjanje so CVS, Mercurial in Subversion.

Ustvarite računalniški operacijski sistem 6. korak
Ustvarite računalniški operacijski sistem 6. korak

Korak 3. Odločite se za zagonski nalagalnik

Če ne želite ustvariti svojega, lahko uporabite obstoječega, na primer Grand Unified Bootloader (GRUB). Če menite, da ste dovolj drzni, da kodirate zagonski nalagalnik, si oglejte Rolling Your Own Bootloader na OSDev.org.

Ustvarite operacijski sistem za računalnik 9. korak
Ustvarite operacijski sistem za računalnik 9. korak

Korak 4. Izberite zasnovo jedra

Jedro je jedro vašega operacijskega sistema in nudi vmesnik med uporabnikom in strojno opremo računalnika. Obstajajo monolitna jedra in mikro jedra. Monolitna jedra izvajajo vse storitve v jedru, medtem ko imajo mikrojedra majhno jedro v kombinaciji z uporabniškimi demoni, ki izvajajo storitve. Na splošno so monolitna jedra hitrejša, vendar imajo mikrojedra boljšo izolacijo napak in zanesljivost.

Ustvarite računalniški operacijski sistem 12. korak
Ustvarite računalniški operacijski sistem 12. korak

Korak 5. Začnite z majhnim

Začnite z majhnimi stvarmi, kot je prikaz besedila in prekinitev, preden se premaknete na stvari, kot sta upravljanje pomnilnika in večopravilnost. Namesto velikega preskoka lahko poskusite narediti preprost 16-bitni operacijski sistem.

V dveh tednih ne boste imeli popolnega sistema. Začnite z operacijskim sistemom, ki se zažene, nato pa pojdite na kul stvari

Ustvarite računalniški operacijski sistem 14. korak
Ustvarite računalniški operacijski sistem 14. korak

Korak 6. Preizkusite svoj novi operacijski sistem z navideznim strojem

Namesto da znova zaženete računalnik vsakič, ko naredite spremembe ali prenesete datoteke iz svojega razvojnega računalnika na preskusno napravo, uporabite aplikacijo navideznega stroja. VMWare je pogosta možnost, ki deluje tako z operacijskim sistemom Windows kot z Linuxom, prav tako pa tudi z Bochsom. Preverite morebitne zastoje in druge hrošče ter jih po potrebi popravite.

Ustvarite računalniški operacijski sistem 15. korak
Ustvarite računalniški operacijski sistem 15. korak

Korak 7. Spustite "kandidata za izpustitev"

To lahko storite tako, da naložite preizkušeno kodo v javno skladišče. Tako bodo ljudje lahko preizkusili vaš operacijski sistem in poročali o vseh težavah, s katerimi se srečujejo.

Zabavajte se z računalnikom Korak 28
Zabavajte se z računalnikom Korak 28

Korak 8. Povežite se z drugimi razvijalci operacijskih sistemov

Na različnih forumih se zbira cela skupnost razvijalcev operacijskih sistemov, vključno z /r /osdev na Redditu in Exchangeu programskega inženiringa. Če ste razumeli razvoj osnovnega operacijskega sistema, preberite obstoječe objave, da vidite, kaj se dogaja med razvojnim procesom.

Video - z uporabo te storitve se lahko nekateri podatki delijo z YouTubom

Nasveti

  • Če želite, da bo vaš sistem uspešen, uporabite varnostne funkcije kot svojo prednostno nalogo.
  • Ko je razvoj končan, se odločite, ali želite kodo izdati kot odprtokodno ali lastniško.
  • Če želite, da operacijski sistem upravlja z več procesorji, mora imeti vaš upravitelj pomnilnika vzpostavljene mehanizme za zaklepanje, ki več procesorjem preprečujejo dostop do istega vira hkrati. "Zaklepanje", ki se uporablja za to, bo zahtevalo prisotnost načrtovalca, ki bo zagotovil, da samo en procesor v vsakem trenutku dostopa do kritičnega vira, vsi ostali pa bodo čakali. Toda razporejevalnik je odvisen od prisotnosti upravitelja pomnilnika. To je primer slepe odvisnosti. Standardnega načina za reševanje takih težav ni; kot programer se pričakuje, da boste dovolj usposobljeni, da ugotovite, kako se bo s tem spopadel.
  • Operacijski sistem je lahko tudi uporabniku prijazen. Ne pozabite dodati uporabniku prijaznih funkcij, zaradi česar so te sestavni del vašega oblikovanja.
  • Ne pridružite se forumih OSDev.org in začnite postavljati očitna vprašanja. To bo preprosto povzročilo "Preberite priročnik" odgovori. Poskusite prebrati Wikipedijo in priročnike za različna orodja, ki jih želite uporabiti.
  • Ne začnite projekt operacijskega sistema za začetek učenja programiranja. Če še ne poznate C, C ++, Pascal ali kakšnega drugega ustreznega jezika navznoter, vključno z manipulacijo kazalca, manipulacijo bitov na nizki ravni, premikom bitov, vgrajenim jezikom montaže itd., Niste pripravljeni na razvoj operacijskega sistema..
  • Če naredite nekaj nerazumnega, na primer napišete naključne bajte na naključna V/I vrata, boste zrušili operacijski sistem in lahko (v teoriji) opečete strojno opremo.

Priporočena: