Sådan laver du et computeroperativsystem: 13 trin (med billeder)

Indholdsfortegnelse:

Sådan laver du et computeroperativsystem: 13 trin (med billeder)
Sådan laver du et computeroperativsystem: 13 trin (med billeder)

Video: Sådan laver du et computeroperativsystem: 13 trin (med billeder)

Video: Sådan laver du et computeroperativsystem: 13 trin (med billeder)
Video: How to install software in Linux (properly) 2024, April
Anonim

Denne wikiHow lærer dig, hvordan du planlægger og udvikler et operativsystem, hvis du ikke ved, hvordan du koder i C eller C ++. Operativsystemer administrerer computerhardware og leverer de ressourcer, som applikationer skal køre. At skrive et operativsystem fra bunden kræver en stærk beherskelse af datalogi, et programmeringssprog som C eller C ++, samling og kodehåndteringspraksis.

Trin

Del 1 af 2: Lær det grundlæggende

Lav et computeroperativsystem Trin 1
Lav et computeroperativsystem Trin 1

Trin 1. Tag nogle grundlæggende computervidenskabskurser

I modsætning til at udvikle til internettet kræver oprettelse af et operativsystem en stærk forståelse af algoritmer, datastrukturer, computerhardware og ressourcehåndtering. Folk får grader i disse ting, så forvent ikke at skrive et helt operativsystem efter at have læst en online tutorial! Harvards Intro to Computer Science -kursus er tilgængeligt online via EDX uden omkostninger.

Lav et computeroperativsystem Trin 2
Lav et computeroperativsystem Trin 2

Trin 2. Lær et programmeringssprog på højt niveau som Python

Når du har fået en solid grundlæggende forståelse for datalogi, er det næste trin at mestre C og/eller C ++. Ligesom at lære om datalogi, er det ikke valgfrit at beherske et sprog-du vil ikke kunne kode et operativsystem, hvis du ikke kan skrive solide applikationer.

Hvis du er helt ny inden for C, så tjek Dartmouths C Programming: Getting Started -kursus, som er gratis via EDX. Når du har gennemført dette kursus, kan du tage det næste kursus i serien: C Programmering: Language Foundations. Gå derefter videre til efterfølgende kurser som modulær programmering og hukommelsesstyring og pegere og hukommelsesstyring

Lav et computeroperativsystem Trin 4
Lav et computeroperativsystem Trin 4

Trin 3. Lær et samlingssprog

Samlingssprog er sprog på lavt niveau designet til at kommunikere med forskellige processorer. Da samlingen er forskellig for forskellige processortyper (f.eks. X86 -samlingssprog til Intel, AMD, VIA og andre processorer), skal du lære versionen for den type processor, du koder til.

  • Denne open source-bog kan, hvis den læses i sin helhed, give dig en solid nok forståelse til at opbygge et operativsystem.
  • The Art of Assembly Language er en stærkt anbefalet bog om samling tilgængelig både online og offline.
  • Du bør også undersøge meget om, hvilken type processor (er) dit operativsystem skal køre på. Manualerne til processorarkitektur kan let findes ved hjælp af en Google -søgning ("Intel Manuals", "ARM manuals" osv.).
Lav et computeroperativsystem Trin 5
Lav et computeroperativsystem Trin 5

Trin 4. Gennemfør en selvstudium i operativsystemet

OS -tutorials vil guide dig gennem processen med at oprette et grundlæggende operativsystem. Dette vænner dig til processen og hjælper dig med at finde ud af, om der mangler stykker. Når du har gennemført en eller flere tutorials, er du godt i gang med at oprette dit helt eget operativsystem.

  • Bare Bones er en tutorial, der hjælper dig med at skrive din første enkle 32-bit kerne. Efter at have gennemført selvstudiet er det næste trin at bruge Meaty Skeleton til at strukturere dit eget operativsystem.
  • Linux fra Scratch er en online bog, der leder dig igennem oprettelsen af dit eget Linux -operativsystem.
  • Operativsystemer fra 0 til 1 er en gratis bog om oprettelse af forskellige operativsystemer fra start til slut.
Lav et computeroperativsystem Trin 3
Lav et computeroperativsystem Trin 3

Trin 5. Find ud af dine operativsystemmål

Hvad vil du have, at dit operativsystem skal gøre? Hvordan skal det se ud? Har du virkelig brug for at skrive et helt operativsystem, eller ønsker du bare at skabe et bestemt look til dit skrivebord? Dette er alle ting, du skal overveje, før du begynder at kode.

  • Overvej at udvikle med et team af andre programmører. At have et team af udviklere, der arbejder på projektet, vil reducere udviklingstiden betydeligt.
  • Føj dine projektmål, planer og spørgsmål til dit offentlige lager, så det er let for andre at hjælpe dig.

Del 2 af 2: Opbygning af dit operativsystem

Hav computer sjov Trin 16
Hav computer sjov Trin 16

Trin 1. Vælg et udviklingsmiljø

Dette er den platform, du vil bruge til at kode dit nye operativsystem. Det er et spørgsmål om personlig præference, men de fleste mennesker bruger enten Windows eller en smag af UNIX. Hvis du bruger Windows, er det en god idé at installere et UNIX -miljø som Cygwin eller MinGW. Du vil generelt være sikker på, at uanset hvilket miljø du bruger, omfatter følgende:

  • GCC (Gnu -kompilatoren). Hvis du bruger Windows, kan du installere det i Cygwin eller MinGW.
  • Binutils er en samling værktøjer, der bruges til at manipulere objektfiler. Igen, hvis du bruger Windows, kan du installere det i Cygwin.
  • En god tekstredaktør. Vim og emacs bruges almindeligvis i UNIX -miljøer. Windows-brugere kan bruge Notesblok eller tjekke Notepad ++ for en opgradering med flere faner.
  • Perl og/eller Python. En eller begge anbefales til strengmanipulation.
Lav et computeroperativsystem Trin 13
Lav et computeroperativsystem Trin 13

Trin 2. Konfigurer dit versionskontrolsystem

At skrive et operativsystem betyder, at du sandsynligvis vil oprette hundredvis (eller tusinder!) Af kodelinjer. Når du arbejder med revisioner, kan det blive forvirrende. Nogle muligheder at tjekke ud er CVS, Mercurial og Subversion.

Lav et computeroperativsystem Trin 6
Lav et computeroperativsystem Trin 6

Trin 3. Beslut dig for en bootloader

Hvis du ikke vil oprette din egen, kan du bruge en eksisterende som Grand Unified Bootloader (GRUB). Hvis du føler dig tør nok til at kode en bootloader, skal du tjekke Rolling Your Own Bootloader på OSDev.org.

Lav et computeroperativsystem Trin 9
Lav et computeroperativsystem Trin 9

Trin 4. Vælg et kernedesign

Kernen er kernen i dit operativsystem og giver en grænseflade mellem brugeren og computerens hardware. Der er monolitiske kerner og mikrokerner. Monolitiske kerner implementerer alle tjenesterne i kernen, mens mikrokerner har en lille kerne kombineret med brugerdæmoner, der implementerer tjenester. Generelt er monolitiske kerner hurtigere, men mikrokerne har bedre fejlisolering og pålidelighed.

Lav et computeroperativsystem Trin 12
Lav et computeroperativsystem Trin 12

Trin 5. Start i det små

Begynd med små ting såsom visning af tekst og afbrydelser, før du går videre til ting som f.eks. Hukommelsesstyring og multitasking. Du kan også prøve at lave et simpelt 16-bit operativsystem i stedet for at tage et stort spring.

Du får ikke et fuldt system om to uger. Start med et operativsystem, der starter, og gå derefter videre til de fede ting

Lav et computeroperativsystem Trin 14
Lav et computeroperativsystem Trin 14

Trin 6. Test dit nye operativsystem med en virtuel maskine

I stedet for at genstarte din computer, hver gang du foretager ændringer eller skal overføre filerne fra din udviklingscomputer til din testmaskine, skal du bruge et virtuelt maskinprogram. VMWare er en almindelig mulighed, der fungerer med både Windows og Linux, og det samme er Bochs. Undersøg potentielle dødlåse og andre fejl og reparer dem efter behov.

Lav et computeroperativsystem Trin 15
Lav et computeroperativsystem Trin 15

Trin 7. Slip en "frigivelseskandidat

Du kan gøre dette ved at uploade din testede kode til dit offentlige lager. Dette giver folk mulighed for at teste dit operativsystem og rapportere tilbage om eventuelle problemer, de støder på.

Hav computer sjov Trin 28
Hav computer sjov Trin 28

Trin 8. Netværk med andre operativsystemudviklere

Der er et helt samfund af operativsystemudviklere, der samles på forskellige fora, herunder /r /osdev på Reddit og Software Engineering Stack Exchange. En du har fået greb om at udvikle et grundlæggende operativsystem, læs eksisterende indlæg for at se, hvad der kommer op under udviklingsprocessen.

Video - Ved at bruge denne service kan nogle oplysninger blive delt med YouTube

Tips

  • Sørg for at implementere sikkerhedsfunktioner som din højeste prioritet, hvis du nogensinde vil have dit system til at være levedygtigt.
  • Når al udviklingen er udført, skal du beslutte, om du vil frigive koden som open source eller proprietær.
  • For at et operativsystem kan håndtere flere processorer, skal din Memory Manager have "låsemekanismer" på plads for at forhindre flere processorer i at få adgang til den samme ressource på samme tid. De "låse", der bruges til dette, vil kræve tilstedeværelse af en planlægger for at sikre, at kun en processor til enhver tid får adgang til en kritisk ressource, og at alle de andre venter. Men planlæggeren afhænger af tilstedeværelsen af en Memory Manager. Dette er et tilfælde af en fastlåst afhængighed. Der er ingen standard måde at løse problemer som dette; som programmerer forventes det, at du er dygtig nok til at finde ud af sin egen måde at håndtere det på.
  • Et operativsystem kan også være brugervenligt. Sørg for at tilføje brugervenlige funktioner, hvilket gør disse til en integreret del af dit design.
  • Deltag ikke OSDev.org -fora og begynd at stille indlysende spørgsmål. Det vil simpelthen resultere i "Læs manualen" svar. Du bør prøve at læse Wikipedia og manualerne til de forskellige værktøjer, du ønsker at bruge.
  • Start ikke et operativsystemprojekt for at begynde at lære programmering. Hvis du ikke allerede kender C, C ++, Pascal eller et andet passende sprog med vrangen ud, herunder markørmanipulation, bit-manipulation på lavt niveau, bitskift, inline-montagesprog osv., Er du ikke klar til udvikling af operativsystem.
  • Hvis du gør noget, der er dårligt anbefalet, som f.eks. At skrive tilfældige bytes til tilfældige I/O-porte, krasjer du dit operativsystem og kan (i teorien) stege din hardware.

Anbefalede: