Tietokoneen käyttöjärjestelmän luominen: 13 vaihetta (kuvien kanssa)

Sisällysluettelo:

Tietokoneen käyttöjärjestelmän luominen: 13 vaihetta (kuvien kanssa)
Tietokoneen käyttöjärjestelmän luominen: 13 vaihetta (kuvien kanssa)

Video: Tietokoneen käyttöjärjestelmän luominen: 13 vaihetta (kuvien kanssa)

Video: Tietokoneen käyttöjärjestelmän luominen: 13 vaihetta (kuvien kanssa)
Video: Ubuntu Linux 12.04 LTS perusteet, osa 6 / 8: Ubuntun sovellusvalikoima 2/2 2024, Huhtikuu
Anonim

Tämä wikiHow opettaa sinulle käyttöjärjestelmän suunnittelun ja kehittämisen, jos et osaa koodata C- tai C ++ - kielellä. Käyttöjärjestelmät hallitsevat tietokonelaitteistoa ja tarjoavat resursseja, joita sovellukset tarvitsevat suorittaa. Käyttöjärjestelmän kirjoittaminen tyhjästä edellyttää vahvaa tietotekniikan hallintaa, ohjelmointikieltä, kuten C tai C ++, kokoonpanoa ja koodinhallintakäytäntöjä.

Askeleet

Osa 1/2: Perusteiden oppiminen

Luo tietokoneen käyttöjärjestelmä Vaihe 1
Luo tietokoneen käyttöjärjestelmä Vaihe 1

Vaihe 1. Suorita tietotekniikan peruskurssit

Toisin kuin verkkokehitys, käyttöjärjestelmän luominen edellyttää vahvaa ymmärrystä algoritmeista, tietorakenteista, tietokonelaitteistosta ja resurssienhallinnasta. Ihmiset saavat tutkintoja tästä asiasta, joten älä odota koko käyttöjärjestelmän kirjoittamista online -opetusohjelman lukemisen jälkeen! Harvardin tietojenkäsittelytieteen kurssi on saatavilla verkossa ilmaiseksi EDX: n kautta.

Luo tietokoneen käyttöjärjestelmä Vaihe 2
Luo tietokoneen käyttöjärjestelmä Vaihe 2

Vaihe 2. Opi korkean tason ohjelmointikieli, kuten Python

Kun olet saanut vankan perustiedon tietotekniikasta, seuraava askel on hallita C ja/tai C ++. Kuten tietojenkäsittelytieteen oppiminen, kielen hallitseminen ei ole valinnaista-et voi koodata käyttöjärjestelmää, jos et voi kirjoittaa kiinteitä sovelluksia.

Jos olet uusi C: ssä, tutustu Dartmouthin C Programming: Getting Started - kurssiin, joka on ilmainen EDX: n kautta. Kun olet suorittanut kurssin, voit suorittaa sarjan seuraavan kurssin: C Ohjelmointi: Kielen perusteet. Siirry sitten seuraaville kursseille, kuten modulaarinen ohjelmointi ja muistinhallinta sekä osoittimet ja muistinhallinta

Luo tietokoneen käyttöjärjestelmä Vaihe 4
Luo tietokoneen käyttöjärjestelmä Vaihe 4

Vaihe 3. Opi kokoonpanokieli

Kokoonpanokielet ovat matalan tason kieliä, jotka on suunniteltu kommunikoimaan eri prosessorien kanssa. Koska kokoonpano on erilainen eri prosessorityypeille (esim. X86 -kokoonpanokieli Intelille, AMD: lle, VIA: lle ja muille suorittimille), sinun on opittava koodaamasi suorittimen versio.

  • Tämä avoimen lähdekoodin kirja, jos se luetaan kokonaan, voi antaa sinulle riittävän vankan ymmärryksen käyttöjärjestelmän rakentamisesta.
  • Art of Assembly Language on erittäin suositeltava kokoonpanokirja, joka on saatavana sekä verkossa että offline-tilassa.
  • Sinun pitäisi myös tehdä paljon tutkimusta siitä, minkä tyyppisiä suorittimia käyttöjärjestelmäsi pitäisi käyttää. Suoritinarkkitehtuurin käsikirjat löytyvät helposti Google -haun avulla ("Intel Manuals", "ARM manuals" jne.).
Luo tietokoneen käyttöjärjestelmä Vaihe 5
Luo tietokoneen käyttöjärjestelmä Vaihe 5

Vaihe 4. Suorita käyttöjärjestelmän opetusohjelma

Käyttöoppaat opastavat sinut peruskäyttöjärjestelmän luomisen prosessissa. Tämä saa sinut tottumaan prosessiin ja auttaa sinua selvittämään, puuttuuko sinulta osia. Kun olet suorittanut opetusohjelman tai kaksi, olet hyvin matkalla oman käyttöjärjestelmän luomiseen.

  • Bare Bones on opetusohjelma, jonka avulla voit kirjoittaa ensimmäisen yksinkertaisen 32-bittisen ytimen. Opetusohjelman suorittamisen jälkeen seuraava askel on rakentaa oma käyttöjärjestelmäsi Meaty Skeletonin avulla.
  • Scratchin Linux on online -kirja, joka opastaa sinua luomaan oman Linux -käyttöjärjestelmän.
  • Käyttöjärjestelmät 0-1 on ilmainen kirja eri käyttöjärjestelmien luomisesta alusta loppuun.
Luo tietokoneen käyttöjärjestelmä Vaihe 3
Luo tietokoneen käyttöjärjestelmä Vaihe 3

Vaihe 5. Selvitä käyttöjärjestelmän tavoitteet

Mitä haluat käyttöjärjestelmäsi tekevän? Miltä sen pitäisi näyttää? Tarvitsetko todella kirjoittaa koko käyttöjärjestelmän tai haluatko vain luoda tietyn ulkoasun työpöydällesi? Kaikki nämä asiat on otettava huomioon ennen koodauksen aloittamista.

  • Harkitse kehittämistä muiden ohjelmoijaryhmän kanssa. Jos kehittäjäryhmä työskentelee projektin parissa, se vähentää kehitysaikaa merkittävästi.
  • Lisää projektisi tavoitteet, suunnitelmat ja kysymykset julkiseen arkistoosi, jotta muiden on helppo auttaa sinua.

Osa 2/2: Käyttöjärjestelmän rakentaminen

Pidä tietokoneen hauskaa Vaihe 16
Pidä tietokoneen hauskaa Vaihe 16

Vaihe 1. Valitse kehitysympäristö

Tämä on alusta, jota käytät uuden käyttöjärjestelmän koodaamiseen. Se on henkilökohtaisten mieltymysten asia, mutta useimmat ihmiset käyttävät joko Windowsia tai UNIX -makua. Jos käytät Windowsia, kannattaa asentaa UNIX -ympäristö, kuten Cygwin tai MinGW. Yleensä haluat varmistaa, että käyttämäsi ympäristö sisältää seuraavat:

  • GCC (Gnu -kääntäjä). Jos käytät Windowsia, voit asentaa sen Cygwiniin tai MinGW: hen.
  • Binutils on kokoelma työkaluja, joita käytetään objektitiedostojen käsittelyyn. Jälleen, jos käytät Windowsia, voit asentaa sen Cygwiniin.
  • Hyvä tekstieditori. Vim- ja emacs -tiedostoja käytetään yleisesti UNIX -ympäristöissä. Windows-käyttäjät voivat käyttää Notepadia tai tarkistaa Notepad ++: n usean välilehden päivityksestä.
  • Perl ja/tai Python. Yksi tai molemmat suositellaan merkkijonon käsittelyyn.
Luo tietokoneen käyttöjärjestelmä Vaihe 13
Luo tietokoneen käyttöjärjestelmä Vaihe 13

Vaihe 2. Määritä versionhallintajärjestelmäsi

Käyttöjärjestelmän kirjoittaminen tarkoittaa, että luot todennäköisesti satoja (tai tuhansia!) Koodirivejä. Kun työskentelet korjausten parissa, tämä voi olla hämmentävää. Joitakin tarkistettavia vaihtoehtoja ovat CVS, Mercurial ja Subversion.

Luo tietokoneen käyttöjärjestelmä Vaihe 6
Luo tietokoneen käyttöjärjestelmä Vaihe 6

Vaihe 3. Päätä bootloader

Jos et halua luoda omaa, voit käyttää olemassa olevaa, kuten Grand Unified Bootloader (GRUB). Jos sinusta tuntuu tarpeeksi rohkealta koodata käynnistyslatain, tutustu Rolling Your Own Bootloader -sivustolle osoitteessa OSDev.org.

Luo tietokoneen käyttöjärjestelmä Vaihe 9
Luo tietokoneen käyttöjärjestelmä Vaihe 9

Vaihe 4. Valitse ytimen rakenne

Ydin on käyttöjärjestelmäsi ydin, joka tarjoaa käyttöliittymän käyttäjän ja tietokoneen laitteiston välille. On olemassa monoliittisia ja ytimiä. Monoliittiset ytimet toteuttavat kaikki ytimen palvelut, kun taas mikroydimissä on pieni ydin yhdistettynä käyttäjädemonien toteuttamispalveluihin. Yleensä monoliittiset ytimet ovat nopeampia, mutta mikroydimillä on parempi vianeristys ja luotettavuus.

Luo tietokoneen käyttöjärjestelmä Vaihe 12
Luo tietokoneen käyttöjärjestelmä Vaihe 12

Vaihe 5. Aloita pienestä

Aloita pienistä asioista, kuten tekstin näyttämisestä ja keskeytyksistä, ennen kuin siirryt muistinhallintaan ja moniajoon. Voit myös yrittää tehdä yksinkertaisen 16-bittisen käyttöjärjestelmän suuren harppauksen sijasta.

Sinulla ei ole täydellistä järjestelmää kahden viikon kuluessa. Aloita käynnistyvällä käyttöjärjestelmällä ja siirry sitten viileisiin asioihin

Luo tietokoneen käyttöjärjestelmä Vaihe 14
Luo tietokoneen käyttöjärjestelmä Vaihe 14

Vaihe 6. Testaa uusi käyttöjärjestelmä virtuaalikoneella

Käytä virtuaalikoneen sovellusta sen sijaan, että käynnistät tietokoneen uudelleen joka kerta, kun teet muutoksia tai joudut siirtämään tiedostot kehitystietokoneestasi testikoneeseesi. VMWare on yleinen vaihtoehto, joka toimii sekä Windowsin että Linuxin kanssa, samoin Bochs. Tarkista mahdolliset umpikujat ja muut viat ja korjaa ne tarvittaessa.

Luo tietokoneen käyttöjärjestelmä Vaihe 15
Luo tietokoneen käyttöjärjestelmä Vaihe 15

Vaihe 7. Vapauta "julkaisukandidaatti

Voit tehdä tämän lataamalla testatun koodisi julkiseen arkistoosi. Näin käyttäjät voivat testata käyttöjärjestelmääsi ja raportoida kaikista ongelmista, joihin he törmäävät.

Pidä tietokoneen hauskaa Vaihe 28
Pidä tietokoneen hauskaa Vaihe 28

Vaihe 8. Verkko muiden käyttöjärjestelmien kehittäjien kanssa

Koko käyttöjärjestelmäkehittäjien yhteisö kokoontuu eri foorumeille, mukaan lukien /r /osdev Redditissä ja Software Engineering Stack Exchange. Kun olet saanut käsityksen peruskäyttöjärjestelmän kehittämisestä, lue olemassa olevat viestit nähdäksesi, millaisia asioita tulee esiin kehitysprosessin aikana.

Video - Käyttämällä tätä palvelua joitakin tietoja voidaan jakaa YouTuben kanssa

Vinkkejä

  • Varmista, että otat turvallisuusominaisuudet ensisijaiseksi tavoitteeksi, jos haluat järjestelmän olevan elinkelpoinen.
  • Kun kaikki kehitys on tehty, päätä, haluatko julkaista koodin avoimena lähdekoodina vai omistettuna.
  • Jotta käyttöjärjestelmä pystyy käsittelemään useita suorittimia, muistinhallinnassa on oltava käytössä lukitusmekanismit, jotka estävät useita prosessoreita käyttämästä samaa resurssia samanaikaisesti. Tätä varten käytetyt "lukot" edellyttävät aikatauluttajan läsnäoloa sen varmistamiseksi, että vain yksi prosessori käyttää kriittistä resurssia milloin tahansa ja kaikki muut odottavat. Ajastin riippuu kuitenkin muistinhallinnan läsnäolosta. Tässä on kyse umpikujasta riippuvuudesta. Ei ole olemassa tavanomaista tapaa ratkaista tällaisia ongelmia; ohjelmoijana sinulta odotetaan riittävän taitoa selvittää oma tapa käsitellä sitä.
  • Käyttöjärjestelmä voi olla myös käyttäjäystävällinen. Muista lisätä käyttäjäystävällisiä ominaisuuksia, jolloin ne ovat olennainen osa suunnittelua.
  • Älä liity OSDev.org -foorumeilla ja ala kysyä ilmeisiä kysymyksiä. Se yksinkertaisesti johtaa "Lue käyttöohje" vastauksia. Sinun pitäisi yrittää lukea Wikipedia ja eri työkalujen käyttöoppaat, joita haluat käyttää.
  • Älä aloita käyttöjärjestelmäprojekti ohjelmoinnin oppimisen aloittamiseksi. Jos et vielä osaa C-, C ++-, Pascal- tai jotakin muuta sopivaa kieltä, mukaan lukien osoittimen käsittely, matalan tason bittikäsittely, bittisiirto, sisäinen kokoonpanokieli jne., Et ole valmis käyttöjärjestelmän kehittämiseen.
  • Jos teet jotain harkitsematonta, kuten kirjoitat satunnaisia tavuja satunnaisiin I/O-portteihin, kaatat käyttöjärjestelmäsi ja voit (teoriassa) paistaa laitteistosi.

Suositeltava: