Skapa ett operativsystem

Operativsystem gör det möjligt för människor att interagera med en dators hårdvara; de består av hundratusentals rader kod. Vanligtvis är de gjorda med C#, C, C++ och assembler-programmeringsspråk. Operativsystem låter dig navigera på en dator, aktivera datalagring och köra kommandon. Tror inte det är lätt att göra ett operativsystem. Det kräver mycket kunskap.

Steg

Bild med titeln Skapa ett datoroperativsystem Steg 1
1. Lär dig programmera innan du börjar. Montering är viktigt och ytterligare ett högnivåprogrammeringsspråk som C rekommenderas starkt.
Bild med titeln Skapa ett datoroperativsystem Steg 2
2. Bestäm vilket media du vill ladda ditt operativsystem på. Detta kan vara en CD-enhet, DVD-enhet, flashenhet, hårddisk, diskett eller någon annan dator.
Bild med titeln Skapa ett datoroperativsystem Steg 3
3. Bestäm vad kärnidén är med operativsystemet. I Windows, till exempel, är ett lättanvänt GUI och stark säkerhet kärnidén.
Bild med titeln Skapa ett datoroperativsystem Steg 4
4. Bestäm vilken processorplattform ditt operativsystem kommer att stödja. IA-32, ARM och x86_64 är de vanligaste arkitekturerna för persondatorer, så det är din bästa insats.
Bild med titeln Skapa ett datoroperativsystem Steg 5
5. Bestäm om du vill bygga allt själv från grunden, eller om det finns en befintlig kärna du vill bygga på. Linux From Scratch är ett exempelprojekt för dig som vill bygga sin egen Linux-distro.
Bild med titeln Skapa ett datoroperativsystem Steg 6
6. Bestäm om du vill använda din egen bootloader eller en befintlig, som Grand Unified Bootloader (GRUB). Eftersom kodning av din egen bootloader kräver omfattande kunskap om hårdvaran och BIOS, kan det sakta ner planeringen för programmering av själva kärnan.
Bild med titeln Skapa ett datoroperativsystem Steg 7
7. Bestäm vilket programmeringsspråk som ska användas. Även om det är möjligt att skapa ett operativsystem på ett språk som Pascal eller BASIC, har du det bättre med C eller Assembly. Montering är absolut nödvändigt eftersom vissa viktiga delar av ett operativsystem kräver det. C++ å andra sidan innehåller språkelement som kräver ett annat fullständigt operativsystem för att köras.
För att kunna kompilera ett operativsystem från C- eller C++-kod behöver du självklart någon form av kompilator. Du bör därför läsa användarhandboken/manualerna/dokumentationen för din valda C/C++-kompilator, oavsett om den medföljer programvaran eller finns på distributörens webbplats. Du kommer att behöva veta många komplicerade saker om din kompilator och, för att utveckla i C++, måste du ha kunskap om kompilatorns manglingschema och ABI. Du kommer att se de olika körbara formaten (ELF, PE, COFF, vanlig binär, etc.).), samt det faktum att Windows inbyggda format, PE (.exe), är upphovsrättsskyddad.
Bild med titeln Skapa ett datoroperativsystem Steg 8
8. Bestäm vilket applikationsprogrammeringsgränssnitt (API) som ska användas. Ett bra API att välja är POSIX eftersom det är väldokumenterat. Alla Unix-system har åtminstone delvis stöd för POSIX, så det skulle vara trivialt att porta Unix-program till ditt operativsystem.
Bild med titeln Skapa ett datoroperativsystem Steg 9
9. Beslutar om designen. Det finns monolitiska kärnor och mikrokärnor. Monolitiska kärnor kör alla tjänster i kärnan, medan mikrokärnor kombinerar en liten kärna med kombinerade användardemoner som implementerar tjänster. I allmänhet är monolitiska kärnor snabbare, men mikrokärnor har bättre felisolering och tillförlitlighet.
Bild med titeln Skapa ett datoroperativsystem Steg 10
10. Överväg att utveckla och arbeta i ett team. På så sätt behövs mindre tid för att lösa fler problem, vilket kan producera ett bättre OS snabbare.
Bild med titeln Skapa ett datoroperativsystem Steg 11
11. Radera inte din hårddisk helt. Kom ihåg att om du torkar din enhet raderas all data oåterkalleligt! Använd GRUB eller annan starthanterare för att ställa in en dubbelstart med ett annat operativsystem tills ditt eget system är fullt fungerande.
Bild med titeln Skapa ett datoroperativsystem Steg 12
12. Börja smått. Börja med små saker som att visa text och avbrott innan du går vidare till de större problemen som minneshantering och multitasking. Se också till att göra en 32-bitars och 64-bitarsversioner.
Bild med titeln Skapa ett datoroperativsystem Steg 13
13. Håll en säkerhetskopia av din senast fungerande källkod. Detta ger ett mått av skydd ifall något går hemskt fel med den aktuella versionen av ditt operativsystem eller dess utveckling. Om din dator kraschar och inte längre kan starta är det en bra idé att ha en andra kopia att arbeta med så att du kan felsöka.
Bild med titeln Skapa ett datoroperativsystem Steg 14
14. Överväg att testa ditt nya operativsystem med en virtuell maskin. Istället för att starta om din dator varje gång du gör ändringar, eller överföra filer från din utvecklingsdator till din testmaskin, kan du använda en virtuell maskin för att köra ditt operativsystem under ditt nuvarande operativsystem. Några av VM-programmen inkluderar VMWare (har även gratis tillgänglig servermjukvara), open source-alternativet Bochs, Microsoft Virtual PC (inte kompatibel med Linux) och Oracle VirtualBox.
Bild med titeln Skapa ett datoroperativsystem Steg 15
15. Släpp en "släppkandidat".Detta gör att användare kan varna dig om potentiella problem med ditt operativsystem.
Bild med titeln Skapa ett datoroperativsystem Steg 16
16. Ett operativsystem kan också vara användarvänligt, så se till att lägga till användarvänliga funktioner, vilket gör det till en integrerad del av din design.

Tips

  • Kontrollera för eventuella dödlägen och andra fel. Fel, dödlägen och andra problem kommer att börja dyka upp i ditt OS-projekt.
  • Om du någonsin vill att ditt system ska vara lönsamt, se till att implementera säkerhetsfunktioner som din högsta prioritet.
  • Med webbplatser som OSDev och OSDever kan du utveckla ditt eget operativsystem. Obs: För de flesta ändamål kan OSDev.org-gemenskapen skulle hellre se deras wiki för frågor och inte delta i forumet. Om du bestämmer dig för att gå med i forumet finns det krav: du måste ha en grundlig kunskap om C eller C++ och x86 assembler. Du bör också förstå vanliga och komplexa programmeringskoncept som länkade listor, köer etc. OSDev-gemenskapen anger uttryckligen i sina regler att gemenskapen inte är avsedd att vara barnvakt för nya programmerare.
  • `Gå inte med OSDev.org-forum för att börja ställa uppenbara frågor direkt efter. Detta kommer helt enkelt att resultera i svar som""läs manualen/läs manualen". Läs Wikipedia och manualerna för de olika verktyg du vill använda.
  • Om du försöker utveckla ett operativsystem säger det sig självt att du förväntas vara en programmeringsgud.
  • Du måste också ha läst processormanualerna för den processorarkitektur du har valt; vare sig det är x86 (Intel), ARM, MIPS, PPC, etc. är. Handledningar om processorarkitektur kan lätt hittas med en Google-sökning ("Intels manualer", "ARM manualer" etc.).
  • När all utveckling är klar kan du bestämma om du vill släppa koden som öppen källkod eller proprietär.
  • Börja inte med ett operativsystemsprojekt för att lära sig programmering. Om du inte redan har grundliga kunskaper i C, C++, Pascal eller något annat lämpligt språk, inklusive pekarmanipulation, lågnivåbitmanipulation, bitskiftning, inline assemblerspråk, etc., då är du verkligen inte redo för utvecklingen av ditt eget operativsystem.
  • Det kan vara klokt att skapa en helt ny partition för `utveckling` av operativsystemet.
  • Operativsystemet du skapar tillhör då företaget som startade tjänsten först (även om du har rätt till gratis distribution och att modifiera det som du vill och köra det under GPL).

    Varningar

    • Du kommer inte att ha skapat ett fullständigt operativsystem på två veckor. Börja med ett operativsystem som kan starta och gå sedan vidare till det roliga.
    • Om du gör något så dåligt som att skriva slumpmässiga bytes till slumpmässiga I/O-portar, kommer ditt operativsystem att krascha och du kan (i teorin) skada din hårdvara.
    • Räkna inte med att det ska vara lätt att bygga ett välfungerande operativsystem. Det finns alla typer av komplicerade ömsesidiga beroenden. Till exempel, för att tillåta ett operativsystem att hantera flera processorer måste du använda "låsmekanismer" för minneshantering för att förhindra att flera processorer använder samma resurs/resurs samtidigt. De "lås" används för detta kräver närvaron av en schemaläggare/schemaläggare för att säkerställa att endast en processor kan komma åt en kritisk resurs vid varje given tidpunkt, med alla andra som väntar. Men schemaläggaren beror återigen på närvaron av en minneshanterare. Detta är ett fall av ett dödläge beroende. Det finns inget standardsätt att lösa problem som detta; varje operativsystemsprogrammerare förväntas vara tillräckligt skicklig för att hitta sitt eget sätt att hantera det.
    • Slarvig skrivning av ditt operativsystem till hårddisken kan skada den fullständigt. Var försiktig.

    Förnödenheter

    • En dator
    • En CPU för den arkitektur du ska utveckla
    • Tillräckligt minne (RAM) för en virtuell maskin
    • Ett "värd" OS (används för att utveckla källkoden för Assembler (och andra), samt bygga och paketera den medan den fortfarande är i ett tidigt skede, så småningom kan ditt operativsystem vara värd för sig självt)
    • En färgkodad programmeringsredigerare (använd denna om du inte har en IDE - Integrated Development Environment)
    • En kompilator
    • En CD/DVD-enhet

    Оцените, пожалуйста статью