Hvordan lage et datamaskinoperativsystem: 13 trinn (med bilder)

Innholdsfortegnelse:

Hvordan lage et datamaskinoperativsystem: 13 trinn (med bilder)
Hvordan lage et datamaskinoperativsystem: 13 trinn (med bilder)

Video: Hvordan lage et datamaskinoperativsystem: 13 trinn (med bilder)

Video: Hvordan lage et datamaskinoperativsystem: 13 trinn (med bilder)
Video: Slik installerer du Java fra pc'n din 2024, April
Anonim

Denne wikiHow lærer deg hvordan du planlegger og utvikler et operativsystem hvis du ikke vet hvordan du koder i C eller C ++. Operativsystemer administrerer maskinvare og gir ressurser som applikasjoner trenger for å kjøre. Å skrive et operativsystem fra bunnen av krever sterk kunnskap om datavitenskap, et programmeringsspråk som C eller C ++, montering og kodehåndteringspraksis.

Trinn

Del 1 av 2: Lær det grunnleggende

Lag et datamaskinoperativsystem Trinn 1
Lag et datamaskinoperativsystem Trinn 1

Trinn 1. Ta noen grunnleggende datavitenskapskurs

I motsetning til å utvikle for nettet, krever det å lage et operativsystem en sterk forståelse av algoritmer, datastrukturer, maskinvare og ressursstyring. Folk får grader i dette, så ikke forvent å skrive et helt operativsystem etter å ha lest en online opplæring! Harvards Intro to Computer Science -kurs er tilgjengelig online via EDX uten kostnad.

Lag et datamaskinoperativsystem Trinn 2
Lag et datamaskinoperativsystem Trinn 2

Trinn 2. Lær et programmeringsspråk på høyt nivå som Python

Når du har fått en solid grunnleggende forståelse av datavitenskap, er neste trinn å mestre C og/eller C ++. Som å lære om informatikk, er det ikke valgfritt å mestre et språk-du vil ikke kunne kode et operativsystem hvis du ikke kan skrive solide applikasjoner.

Hvis du er helt ny på C, sjekk ut Dartmouths C Programming: Getting Started -kurs, som er gratis gjennom EDX. Når du har fullført det kurset, kan du ta det neste kurset i serien: C Programming: Language Foundations. Gå deretter videre til påfølgende kurs som modulær programmering og minnestyring og pekere og minnestyring

Lag et datamaskinoperativsystem Trinn 4
Lag et datamaskinoperativsystem Trinn 4

Trinn 3. Lær et forsamlingsspråk

Monteringsspråk er språk på lavt nivå designet for å kommunisere med forskjellige prosessorer. Siden montering er forskjellig for forskjellige prosessortyper (f.eks. X86 -samlingsspråk for Intel, AMD, VIA og andre prosessorer), må du lære versjonen for prosessortypen du koder for.

  • Denne åpen kildekode-boken, hvis den er lest i sin helhet, kan gi deg en solid nok forståelse for å bygge et operativsystem.
  • The Art of Assembly Language er en sterkt anbefalt bok om montering tilgjengelig både på og offline.
  • Du bør også undersøke mye om hvilken type prosessor (er) operativsystemet ditt skal kjøre på. Håndbøkene for prosessorarkitektur kan enkelt bli funnet ved hjelp av et Google -søk ("Intel Manuals", "ARM manuals", etc.).
Lag et datamaskinoperativsystem Trinn 5
Lag et datamaskinoperativsystem Trinn 5

Trinn 4. Fullfør en opplæring i operativsystemet

OS -opplæringsprogrammer vil lede deg gjennom prosessen med å lage et grunnleggende operativsystem. Dette gjør deg vant til prosessen og hjelper deg med å finne ut om det er noen stykker du mangler. Når du har fullført en opplæring eller to, er du godt i gang med å lage ditt eget operativsystem.

  • Bare Bones er en opplæring som hjelper deg med å skrive din første enkle 32-biters kjerne. Etter å ha fullført opplæringen, er neste trinn å bruke Meaty Skeleton til å strukturere ditt eget operativsystem.
  • Linux fra Scratch er en online bok som leder deg gjennom å lage ditt eget Linux -operativsystem.
  • Operativsystemer fra 0 til 1 er en gratis bok om å lage forskjellige operativsystemer fra start til slutt.
Lag et datamaskinoperativsystem Trinn 3
Lag et datamaskinoperativsystem Trinn 3

Trinn 5. Finn ut operativsystemets mål

Hva vil du at operativsystemet skal gjøre? Hvordan skal det se ut? Trenger du virkelig å skrive et helt operativsystem, eller ønsker du bare å skape et bestemt utseende for skrivebordet ditt? Dette er alle ting du bør vurdere før du begynner å kode.

  • Vurder å utvikle med et team av andre programmerere. Å ha et team med utviklere som jobber med prosjektet vil kutte utviklingstiden betraktelig.
  • Legg til prosjektmålene dine, planene og spørsmålene i det offentlige depotet ditt, slik at det er enkelt for andre å hjelpe deg.

Del 2 av 2: Bygg ditt operativsystem

Ha det gøy med datamaskinen Trinn 16
Ha det gøy med datamaskinen Trinn 16

Trinn 1. Velg et utviklingsmiljø

Dette er plattformen du vil bruke til å kode det nye operativsystemet. Det er et spørsmål om personlig preferanse, men de fleste bruker enten Windows eller en smak av UNIX. Hvis du bruker Windows, er det en god idé å installere et UNIX -miljø som Cygwin eller MinGW. Du vil generelt sørge for at det miljøet du bruker inkluderer følgende:

  • GCC (Gnu -kompilatoren). Hvis du bruker Windows, kan du installere det i Cygwin eller MinGW.
  • Binutils er en samling verktøy som brukes til å manipulere objektfiler. Igjen, hvis du bruker Windows, kan du installere det i Cygwin.
  • En god tekstredigerer. Vim og emacs brukes ofte i UNIX -miljøer. Windows-brukere kan bruke Notisblokk, eller sjekke Notepad ++ for en oppgradering med flere faner.
  • Perl og/eller Python. En eller begge er anbefalt for strengmanipulering.
Lag et datamaskinoperativsystem Trinn 13
Lag et datamaskinoperativsystem Trinn 13

Trinn 2. Sett opp ditt versjonskontrollsystem

Å skrive et operativsystem betyr at du sannsynligvis vil opprette hundrevis (eller tusenvis!) Av kodelinjer. Når du jobber med revisjoner, kan dette bli forvirrende. Noen alternativer å sjekke ut er CVS, Mercurial og Subversion.

Lag et datamaskinoperativsystem Trinn 6
Lag et datamaskinoperativsystem Trinn 6

Trinn 3. Bestem deg for en bootloader

Hvis du ikke vil lage din egen, kan du bruke en eksisterende som Grand Unified Bootloader (GRUB). Hvis du føler at du tør å kode en oppstartslaster, kan du sjekke Rolling Your Own Bootloader på OSDev.org.

Lag et datamaskinoperativsystem Trinn 9
Lag et datamaskinoperativsystem Trinn 9

Trinn 4. Velg en kjernedesign

Kjernen er kjernen i operativsystemet, og gir et grensesnitt mellom brukeren og maskinvaren. Det er monolitiske kjerner og mikrokjerner. Monolitiske kjerner implementerer alle tjenestene i kjernen, mens mikrokerneler har en liten kjerne kombinert med brukerdemoner som implementerer tjenester. Generelt er monolitiske kjerner raskere, men mikrokern har bedre feilisolering og pålitelighet.

Lag et datamaskinoperativsystem Trinn 12
Lag et datamaskinoperativsystem Trinn 12

Trinn 5. Start i det små

Begynn med små ting som å vise tekst og avbrudd før du går videre til ting som minnestyring og multitasking. Du kan også prøve å lage et enkelt 16-biters operativsystem, i stedet for å ta et stort sprang.

Du vil ikke ha et fullt system på to uker. Start med et operativsystem som starter, og gå videre til de kule tingene

Lag et datamaskinoperativsystem Trinn 14
Lag et datamaskinoperativsystem Trinn 14

Trinn 6. Test det nye operativsystemet med en virtuell maskin

I stedet for å starte datamaskinen på nytt hver gang du gjør endringer eller må overføre filene fra utviklingsdatamaskinen til testmaskinen, kan du bruke et virtuelt maskinprogram. VMWare er et vanlig alternativ som fungerer med både Windows og Linux, og det samme er Bochs. Se etter potensielle dødelåser og andre feil og reparer dem etter behov.

Lag et datamaskinoperativsystem Trinn 15
Lag et datamaskinoperativsystem Trinn 15

Trinn 7. Slipp en "utgivelseskandidat

Du kan gjøre dette ved å laste opp den testede koden til det offentlige depotet ditt. Dette gjør at folk kan teste operativsystemet ditt og rapportere om eventuelle problemer de støter på.

Ha det gøy med datamaskinen Trinn 28
Ha det gøy med datamaskinen Trinn 28

Trinn 8. Nettverk med andre operativsystemutviklere

Det er et helt fellesskap av operativsystemutviklere som samles på forskjellige fora, inkludert /r /osdev på Reddit og Software Engineering Stack Exchange. En du har fått grep om å utvikle et grunnleggende operativsystem, les eksisterende innlegg for å se hva slags ting som kommer opp under utviklingsprosessen.

Video - Ved å bruke denne tjenesten kan noe informasjon bli delt med YouTube

Tips

  • Sørg for å implementere sikkerhetsfunksjoner som din topp prioritet hvis du noen gang vil at systemet skal være levedyktig.
  • Etter at all utvikling er ferdig, bestemmer du om du vil frigjøre koden som åpen kildekode eller proprietær.
  • For at et operativsystem skal kunne håndtere flere prosessorer, må Memory Manager ha "låsemekanismer" på plass for å forhindre at flere prosessorer får tilgang til den samme ressursen samtidig. "Låsene" som brukes for dette vil kreve tilstedeværelse av en planlegger for å sikre at bare en prosessor får tilgang til en kritisk ressurs til enhver tid, og at alle de andre må vente. Planleggeren er imidlertid avhengig av tilstedeværelsen av en Memory Manager. Dette er et tilfelle av en fastlåst avhengighet. Det er ingen standard måte å løse problemer som dette; Som programmerer forventes det at du er dyktig nok til å finne ut sin egen måte å håndtere det på.
  • Et operativsystem kan også være brukervennlig. Sørg for å legge til brukervennlige funksjoner, noe som gjør disse til en integrert del av designet ditt.
  • Ikke bli med OSDev.org -forumene og begynn å stille åpenbare spørsmål. Det vil ganske enkelt resultere i "Les håndboken" svar. Du bør prøve å lese Wikipedia og manualene for de forskjellige verktøyene du ønsker å bruke.
  • Ikke start et operativsystemprosjekt for å begynne å lære programmering. Hvis du ikke allerede kjenner C, C ++, Pascal eller et annet passende språk innvendig og utvendig, inkludert pekermanipulering, bitmanipulering på lavt nivå, bitforskyvning, innebygd monteringsspråk, etc., er du ikke klar for utvikling av operativsystem.
  • Hvis du gjør noe dårlig anbefalt, for eksempel å skrive tilfeldige byte til tilfeldige I/O-porter, krasjer du operativsystemet ditt og kan (i teorien) steke maskinvaren.

Anbefalt: