Hur man gör ett datoroperativsystem: 13 steg (med bilder)

Innehållsförteckning:

Hur man gör ett datoroperativsystem: 13 steg (med bilder)
Hur man gör ett datoroperativsystem: 13 steg (med bilder)

Video: Hur man gör ett datoroperativsystem: 13 steg (med bilder)

Video: Hur man gör ett datoroperativsystem: 13 steg (med bilder)
Video: How to Install Ubuntu - Step by Step Tutorial 2024, April
Anonim

Denna wikiHow lär dig hur du planerar och utvecklar ett operativsystem om du inte vet hur du kodar i C eller C ++. Operativsystem hanterar datorhårdvara och tillhandahåller de resurser som program behöver för att köra. Att skriva ett operativsystem från grunden kräver ett starkt kunnande inom datavetenskap, ett programmeringsspråk som C eller C ++, montering och kodhanteringsmetoder.

Steg

Del 1 av 2: Lär dig grunderna

Gör ett datoroperativsystem Steg 1
Gör ett datoroperativsystem Steg 1

Steg 1. Ta några grundläggande datavetenskapskurser

Till skillnad från att utveckla för webben kräver att skapa ett operativsystem en stark förståelse för algoritmer, datastrukturer, datorhårdvara och resurshantering. Människor får examen i det här, så förvänta dig inte att skriva ett helt operativsystem efter att ha läst en onlinehandledning! Harvards Intro to Computer Science -kurs är tillgänglig online via EDX utan kostnad.

Gör ett datoroperativsystem Steg 2
Gör ett datoroperativsystem Steg 2

Steg 2. Lär dig ett programmeringsspråk på hög nivå som Python

När du väl har en solid grundläggande förståelse för datavetenskap är nästa steg att behärska C och/eller C ++. Precis som att lära sig datavetenskap är det inte valfritt att behärska ett språk-du kommer inte att kunna koda ett operativsystem om du inte kan skriva solida applikationer.

Om du är helt ny på C, kolla in Dartmouths C Programming: Getting Started -kurs, som är gratis via EDX. När du har slutfört den kursen kan du gå nästa kurs i serien: C Programming: Language Foundations. Fortsätt sedan till efterföljande kurser som modulär programmering och minneshantering och pekare och minneshantering

Gör ett datoroperativsystem Steg 4
Gör ett datoroperativsystem Steg 4

Steg 3. Lär dig ett monteringsspråk

Monteringsspråk är språk på låg nivå som är utformade för att kommunicera med olika processorer. Eftersom montering är olika för olika processortyper (t.ex. x86 -monteringsspråk för Intel, AMD, VIA och andra processorer) måste du lära dig versionen för den typ av processor du kodar för.

  • Denna bok med öppen källkod, om den läses i sin helhet, kan ge dig en tillräckligt bra förståelse för att bygga ett operativsystem.
  • The Art of Assembly Language är en rekommenderad bok om montering tillgänglig både på och offline.
  • Du bör också göra en hel del forskning om vilken typ av processorer som ditt operativsystem ska köras på. Manualerna för processorarkitektur kan enkelt hittas med en Google -sökning ("Intel Manuals", "ARM manuals", etc.).
Gör ett datoroperativsystem Steg 5
Gör ett datoroperativsystem Steg 5

Steg 4. Slutför en handledning för operativsystemet

OS -handledning kommer att leda dig genom processen att skapa ett grundläggande operativsystem. Detta vänjer dig vid processen och hjälper dig att ta reda på om det är några bitar du saknar. När du har slutfört en eller två tutorials är du på god väg att skapa ditt eget operativsystem.

  • Bare Bones är en handledning som hjälper dig att skriva din första enkla 32-bitars kärna. Efter att ha slutfört handledningen är nästa steg att använda Meaty Skeleton för att strukturera ditt eget operativsystem.
  • Linux från Scratch är en online -bok som leder dig genom att skapa ditt eget Linux -operativsystem.
  • Operativsystem från 0 till 1 är en gratisbok om att skapa olika operativsystem från början till slut.
Gör ett datoroperativsystem Steg 3
Gör ett datoroperativsystem Steg 3

Steg 5. Ta reda på dina operativsystemmål

Vad vill du att ditt operativsystem ska göra? Hur ska det se ut? Behöver du verkligen skriva ett helt operativsystem eller vill du bara skapa ett visst utseende för ditt skrivbord? Allt detta är att tänka på innan du börjar koda.

  • Överväg att utvecklas med ett team av andra programmerare. Att ha ett team av utvecklare som arbetar med projektet kommer att minska utvecklingstiden avsevärt.
  • Lägg till dina projektmål, planer och frågor i ditt offentliga arkiv så att det är lätt för andra att hjälpa dig.

Del 2 av 2: Bygga ditt operativsystem

Ha dator kul Steg 16
Ha dator kul Steg 16

Steg 1. Välj en utvecklingsmiljö

Detta är plattformen du kommer att använda för att koda ditt nya operativsystem. Det är en fråga om personlig preferens, men de flesta använder antingen Windows eller en smak av UNIX. Om du använder Windows är det en bra idé att installera en UNIX -miljö som Cygwin eller MinGW. Du vill i allmänhet se till att vilken miljö du använder innehåller följande:

  • GCC (Gnu -kompilatorn). Om du använder Windows kan du installera det i Cygwin eller MinGW.
  • Binutils är en samling verktyg som används för att manipulera objektfiler. Återigen, om du använder Windows kan du installera det i Cygwin.
  • En bra textredigerare. Vim och emac används ofta i UNIX -miljöer. Windows-användare kan använda Anteckningar eller kolla in Anteckningar ++ för en uppgradering med flera flikar.
  • Perl och/eller Python. En eller båda rekommenderas för strängmanipulation.
Gör ett datoroperativsystem Steg 13
Gör ett datoroperativsystem Steg 13

Steg 2. Konfigurera ditt versionskontrollsystem

Att skriva ett operativsystem innebär att du sannolikt kommer att skapa hundratals (eller tusentals!) Koderader. När du arbetar med revideringar kan det bli förvirrande. Några alternativ att checka ut är CVS, Mercurial och Subversion.

Gör ett datoroperativsystem Steg 6
Gör ett datoroperativsystem Steg 6

Steg 3. Bestäm en bootloader

Om du inte vill skapa din egen kan du använda en befintlig som Grand Unified Bootloader (GRUB). Om du känner dig vågad nog att koda en bootloader, kolla in Rolling Your Own Bootloader på OSDev.org.

Gör ett datoroperativsystem Steg 9
Gör ett datoroperativsystem Steg 9

Steg 4. Välj en kärndesign

Kärnan är kärnan i ditt operativsystem och ger ett gränssnitt mellan användaren och datorns hårdvara. Det finns monolitiska kärnor och mikrokärnor. Monolitiska kärnor implementerar alla tjänster i kärnan, medan mikrokärnor har en liten kärna i kombination med användardemoner som implementerar tjänster. I allmänhet är monolitiska kärnor snabbare, men mikrokärnor har bättre felisolering och tillförlitlighet.

Gör ett datoroperativsystem Steg 12
Gör ett datoroperativsystem Steg 12

Steg 5. Börja smått

Börja med små saker som att visa text och avbrott innan du går vidare till saker som minneshantering och multitasking. Du kan också försöka göra ett enkelt 16-bitars operativsystem, istället för att ta ett stort steg.

Du kommer inte att ha ett komplett system på två veckor. Börja med ett operativsystem som startar och fortsätt sedan till de coola grejerna

Gör ett datoroperativsystem Steg 14
Gör ett datoroperativsystem Steg 14

Steg 6. Testa ditt nya operativsystem med en virtuell maskin

Istället för att starta om datorn varje gång du gör ändringar eller måste överföra filerna från din utvecklingsdator till din testmaskin, använd en virtuell maskinapplikation. VMWare är ett vanligt alternativ som fungerar med både Windows och Linux, liksom Bochs. Kontrollera om det finns potentiella blockeringar och andra buggar och reparera dem efter behov.

Gör ett datoroperativsystem Steg 15
Gör ett datoroperativsystem Steg 15

Steg 7. Släpp en "släppkandidat

Du kan göra detta genom att ladda upp din testade kod till ditt offentliga arkiv. Detta gör att människor kan testa ditt operativsystem och rapportera om alla problem de stöter på.

Ha dator kul Steg 28
Ha dator kul Steg 28

Steg 8. Nätverk med andra operativsystemutvecklare

Det finns en hel grupp av operativsystemutvecklare som samlas på olika forum, inklusive /r /osdev på Reddit och Software Engineering Stack Exchange. En du har fått grepp om att utveckla ett grundläggande operativsystem, läs befintliga inlägg för att se vad som händer under utvecklingsprocessen.

Video - Genom att använda denna tjänst kan viss information delas med YouTube

Tips

  • Var noga med att implementera säkerhetsfunktioner som din högsta prioritet om du någonsin vill att ditt system ska vara livskraftigt.
  • När all utveckling är klar bestämmer du om du vill släppa koden som öppen källkod eller proprietär.
  • För att ett operativsystem ska kunna hantera flera processorer måste din Memory Manager ha "låsande" mekanismer för att förhindra att flera processorer får åtkomst till samma resurs samtidigt. De "lås" som används för detta kommer att kräva närvaro av en schemaläggare för att se till att endast en processor får tillgång till en kritisk resurs vid varje given tidpunkt och att alla andra väntar. Ändå beror schemaläggaren på närvaron av en Memory Manager. Detta är ett fall av ett fastlåst beroende. Det finns inget standard sätt att lösa problem som detta; Som programmerare förväntas du vara skicklig nog att ta reda på sitt eget sätt att hantera det.
  • Ett operativsystem kan också vara användarvänligt. Se till att lägga till användarvänliga funktioner, vilket gör dessa till en integrerad del av din design.
  • Gå inte med OSDev.org -forumen och börja ställa uppenbara frågor. Det kommer helt enkelt att resultera i "Läs manualen" svar. Du bör försöka läsa Wikipedia och manualerna för de olika verktygen du vill använda.
  • Börja inte ett operativsystemsprojekt för att börja lära sig programmering. Om du inte redan kan C, C ++, Pascal eller något annat lämpligt språk inifrån och ut, inklusive pekarmanipulation, bitmanipulation på låg nivå, bitförskjutning, inline-monteringsspråk, etc., är du inte redo för utveckling av operativsystem.
  • Om du gör något felrådigt, som att skriva slumpmässiga byte till slumpmässiga I/O-portar, kommer du att krascha ditt operativsystem och kan (i teorin) steka din maskinvara.

Rekommenderad: