Arvuti operatsioonisüsteemi loomine: 13 sammu (piltidega)

Sisukord:

Arvuti operatsioonisüsteemi loomine: 13 sammu (piltidega)
Arvuti operatsioonisüsteemi loomine: 13 sammu (piltidega)

Video: Arvuti operatsioonisüsteemi loomine: 13 sammu (piltidega)

Video: Arvuti operatsioonisüsteemi loomine: 13 sammu (piltidega)
Video: Ubuntu: ID-kaardi tarkvara paigaldamine 2024, Aprill
Anonim

See wikiHow õpetab teile, kuidas planeerida ja arendada operatsioonisüsteemi, kui te ei tea, kuidas kodeerida C või C ++. Operatsioonisüsteemid haldavad arvuti riistvara ja pakuvad rakenduste käitamiseks vajalikke ressursse. Operatsioonisüsteemi nullist kirjutamine nõuab arvutiteaduse tugevat valdamist, programmeerimiskeelt nagu C või C ++, koostamist ja koodihaldustavasid.

Sammud

Osa 1 /2: Põhitõdede õppimine

Tehke arvuti operatsioonisüsteem 1. samm
Tehke arvuti operatsioonisüsteem 1. samm

Samm 1. Võtke mõned arvutiteaduse baaskursused

Erinevalt veebi arendamisest nõuab operatsioonisüsteemi loomine algoritmide, andmestruktuuride, arvuti riistvara ja ressursside haldamise tugevat mõistmist. Inimesed saavad selles asjas kraadi, seega ärge oodake, et kirjutate pärast veebipõhise õpetuse lugemist terve operatsioonisüsteemi! Harvardi arvutiteaduse sissejuhatav kursus on EDX -i kaudu veebis tasuta saadaval.

Tehke arvuti operatsioonisüsteem 2. samm
Tehke arvuti operatsioonisüsteem 2. samm

Samm 2. Õppige kõrgetasemelist programmeerimiskeelt nagu Python

Kui olete arvutiteadustest kindla aluse saanud, on järgmine samm C ja/või C ++ valdamine. Nagu arvutiteaduse õppimine, pole ka keele valdamine vabatahtlik-te ei saa operatsioonisüsteemi kodeerida, kui te ei saa kirjutada kindlaid rakendusi.

Kui olete C -s täiesti uus, vaadake Dartmouthi kursust C Programming: Getting Started, mis on EDX -i kaudu tasuta. Kui olete selle kursuse läbinud, saate läbida järgmise kursuse: C Programming: Language Foundations. Seejärel liikuge edasi järgmistele kursustele, nagu modulaarne programmeerimine ja mäluhaldus ning näpunäited ja mäluhaldus

Tehke arvuti operatsioonisüsteem 4. samm
Tehke arvuti operatsioonisüsteem 4. samm

Samm 3. Õppige koostamiskeelt

Koostamiskeeled on madala taseme keeled, mis on loodud suhtlemiseks erinevate protsessoritega. Kuna kokkupanek on eri protsessoritüüpide puhul erinev (nt x86 koostamiskeel Inteli, AMD, VIA ja muude protsessorite jaoks), peate õppima kodeeritava protsessori tüübi versiooni.

  • See avatud lähtekoodiga raamat, kui seda tervikuna lugeda, võib anda teile piisavalt tugeva arusaama operatsioonisüsteemi loomiseks.
  • Montaažikeele kunst on väga soovitatav raamat kokkupanekust, mis on saadaval nii veebis kui ka väljaspool seda.
  • Samuti peaksite palju uurima, millist tüüpi protsessorit teie operatsioonisüsteem peaks töötama. Protsessori arhitektuuri käsiraamatud leiate hõlpsalt Google'i otsingu abil ("Intel Manuals", "ARM manuals" jne).
Tehke arvuti operatsioonisüsteem 5. samm
Tehke arvuti operatsioonisüsteem 5. samm

Samm 4. Täitke opsüsteemi õpetus

OS -i õpetused juhivad teid põhilise operatsioonisüsteemi loomise protsessi. See harjutab teid protsessiga ja aitab teil välja selgitada, kas puuduvad osad. Kui olete ühe või kaks õpetust lõpetanud, saate oma päris operatsioonisüsteemi luua.

  • Bare Bones on õpetus, mis aitab teil kirjutada oma esimese lihtsa 32-bitise tuuma. Pärast õpetuse lõpuleviimist on järgmine samm oma operatsioonisüsteemi struktureerimiseks Meaty Skeletoni kasutamine.
  • Scratchi Linux on veebipõhine raamat, mis juhendab teid oma Linuxi operatsioonisüsteemi loomisel.
  • Operatsioonisüsteemid 0 kuni 1 on tasuta raamat erinevate operatsioonisüsteemide loomise kohta algusest lõpuni.
Tehke arvuti operatsioonisüsteem 3. samm
Tehke arvuti operatsioonisüsteem 3. samm

Samm 5. Selgitage välja oma operatsioonisüsteemi eesmärgid

Mida soovite, et teie operatsioonisüsteem teeks? Kuidas see välja peaks nägema? Kas peate tõesti kirjutama terve operatsioonisüsteemi või soovite lihtsalt oma töölauale teatud ilme luua? Need on kõik asjad, mida tuleb enne kodeerimise alustamist kaaluda.

  • Kaaluge arendamist koos teiste programmeerijate meeskonnaga. Kui arendajate meeskond töötab projekti kallal, lühendatakse arendusaega märkimisväärselt.
  • Lisage oma projekti eesmärgid, plaanid ja küsimused oma avalikku hoidlasse, et teistel oleks lihtne teid aidata.

Osa 2 /2: Operatsioonisüsteemi loomine

Lõbutsege arvutiga 16. samm
Lõbutsege arvutiga 16. samm

Samm 1. Valige arenduskeskkond

See on platvorm, mida kasutate uue operatsioonisüsteemi kodeerimiseks. See on isikliku eelistuse küsimus, kuid enamik inimesi kasutab kas Windowsi või UNIX -i maitset. Kui kasutate Windowsi, on hea mõte installida UNIX -keskkond, näiteks Cygwin või MinGW. Üldiselt soovite veenduda, et kasutatav keskkond sisaldab järgmist.

  • GCC (Gnu kompilaator). Kui kasutate Windowsi, saate selle installida Cygwini või MinGW -sse.
  • Binutils on tööriistade kogum, mida kasutatakse objektfailidega manipuleerimiseks. Jällegi, kui kasutate Windowsi, saate selle installida Cygwini.
  • Hea tekstiredaktor. VIM -i ja emaci kasutatakse tavaliselt UNIX -i keskkondades. Windowsi kasutajad saavad kasutada Notepadi või vaadata Notepad ++ mitme vahekaardi uuendamiseks.
  • Perl ja/või Python. Stringidega manipuleerimiseks on soovitatav kasutada ühte või mõlemat.
Tehke arvuti operatsioonisüsteem 13. samm
Tehke arvuti operatsioonisüsteem 13. samm

Samm 2. Seadistage oma versioonikontrollisüsteem

Operatsioonisüsteemi kirjutamine tähendab, et loote tõenäoliselt sadu (või tuhandeid!) Koodiridu. Kui töötate paranduste kallal, võib see segadusse ajada. Mõned kontrollitavad võimalused on CVS, Mercurial ja Subversion.

Tehke arvuti operatsioonisüsteem 6. samm
Tehke arvuti operatsioonisüsteem 6. samm

Samm 3. Otsustage alglaadur

Kui te ei soovi ise luua, võite kasutada olemasolevat, näiteks Grand Unified Bootloader (GRUB). Kui tunnete end piisavalt julgena alglaaduri kodeerimiseks, vaadake saidi OSDev.org veebisaiti Rolling Your Own Bootloader.

Tehke arvuti operatsioonisüsteem 9. samm
Tehke arvuti operatsioonisüsteem 9. samm

Samm 4. Valige kerneli disain

Tuum on teie operatsioonisüsteemi tuum, pakkudes liidest kasutaja ja arvuti riistvara vahel. Seal on monoliitsed ja mikrotuumad. Monoliitsed tuumad rakendavad kõiki kerneli teenuseid, samas kui mikrotuumadel on väike tuum koos kasutaja deemonite rakendusteenustega. Üldiselt on monoliitsed tuumad kiiremad, kuid mikrotuumadel on parem vigade eraldamine ja töökindlus.

Tehke arvuti operatsioonisüsteem 12. samm
Tehke arvuti operatsioonisüsteem 12. samm

Samm 5. Alustage väikesest

Alustage väikeste asjadega, nagu teksti kuvamine ja katkestused, enne kui jätkate selliste asjadega nagu mäluhaldus ja multitegumtöötlus. Suure hüppe asemel võite proovida teha ka lihtsa 16-bitise operatsioonisüsteemi.

Teil pole kahe nädala jooksul täielikku süsteemi. Alustage käivitatava operatsioonisüsteemiga, seejärel liikuge lahedate asjade juurde

Tehke arvuti operatsioonisüsteem 14. samm
Tehke arvuti operatsioonisüsteem 14. samm

Samm 6. Testige oma uut operatsioonisüsteemi virtuaalse masinaga

Selle asemel, et arvuti iga kord muudatuste tegemisel taaskäivitada või failid oma arendusarvutist testmasinasse üle kanda, kasutage virtuaalse masina rakendust. VMWare on tavaline valik, mis töötab nii Windowsi kui ka Linuxiga, samuti Bochs. Kontrollige võimalikke ummikuid ja muid vigu ning parandage need vastavalt vajadusele.

Tehke arvuti operatsioonisüsteem 15. samm
Tehke arvuti operatsioonisüsteem 15. samm

Samm 7. Vabastage väljalaskekandidaat

Seda saate teha, laadides oma testitud koodi üles oma avalikku hoidlasse. See võimaldab inimestel testida teie operatsioonisüsteemi ja anda teada kõikidest probleemidest, millega nad kokku puutuvad.

Lõbutsege arvutiga 28. samm
Lõbutsege arvutiga 28. samm

Samm 8. Ühendage teiste operatsioonisüsteemide arendajatega

Kogu operatsioonisüsteemide arendajate kogukond koguneb erinevatele foorumitele, sealhulgas /r /osdev Redditis ja Software Engineering Stack Exchange'is. Kui olete saanud aru põhioperatsioonisüsteemi arendamisest, lugege olemasolevaid postitusi, et näha, millised asjad arendusprotsessi käigus esile kerkivad.

Video - selle teenuse kasutamisel võidakse YouTube'iga jagada teatud teavet

Näpunäiteid

  • Kui soovite, et teie süsteem oleks kunagi elujõuline, rakendage kindlasti oma turvapõhimõtted.
  • Kui kogu arendus on tehtud, otsustage, kas soovite koodi vabastada avatud lähtekoodiga või omandiõigusega.
  • Selleks, et operatsioonisüsteem saaks hakkama mitme protsessoriga, peab teie mäluhalduril olema lukustusmehhanismid, et takistada mitmel protsessoril juurdepääsu samale ressursile korraga. Selleks kasutatavad "lukud" eeldavad planeerija olemasolu, et veenduda, et ainult üks protsessor pääseb igal ajal kriitilisele ressursile juurde ja kõik teised pannakse ootama. Planeerija sõltub aga mäluhalduri olemasolust. See on ummikseisu sõltuvuse juhtum. Selliste probleemide lahendamiseks pole standardset viisi; programmeerijana eeldatakse, et olete piisavalt osav, et välja mõelda tema viis selle lahendamiseks.
  • Ka operatsioonisüsteem võib olla kasutajasõbralik. Lisage kindlasti kasutajasõbralikke funktsioone, muutes need teie disaini lahutamatuks osaks.
  • Ärge liituge OSDev.org foorumid ja asuge ilmselgeid küsimusi esitama. Selle tulemuseks on lihtsalt "Lugege kasutusjuhendit" vastused. Peaksite lugema Vikipeediat ja erinevate tööriistade kasutusjuhendeid, mida soovite kasutada.
  • Ära alusta operatsioonisüsteemi projekt programmeerimise õppimise alustamiseks. Kui te ei tea juba C, C ++, Pascali või mõnda muud sobivat keelt, sealhulgas kursori manipuleerimine, madalatasemeline bititöötlus, bittide nihutamine, sisemine koostamiskeel jne, pole te operatsioonisüsteemi arendamiseks valmis.
  • Kui teete midagi halvasti soovitatavat, näiteks kirjutate juhuslikke baite juhuslikele I/O-portidele, kukute oma OS-i kokku ja saate (teoreetiliselt) riistvara praadida.

Soovitan: