Operativsystemet tillåter användaren att interagera med datorns hårdvara. Systemet består av hundratusentals rader kod. Vanligtvis är operativsystemet gjort med C#, C, C ++ och monteringsprogrammeringsspråk. Operativsystemet låter dig bläddra i din dator medan du sparar och kör kommandon. Tror inte att det är enkelt att skapa ett operativsystem. Det krävs mycket kunskap för att göra det.
Steg
Steg 1. Lär dig först om programmering
Monteringsspråk är mycket viktigt; det rekommenderas starkt att du lär dig ett annat kompletterande språk på hög nivå, till exempel C-språk.
Steg 2. Bestäm vilken media du vill använda för att ladda operativsystemet
Det här mediet kan vara en CD -enhet, DVD -enhet, flash -enhet, hårddisk, diskett eller en annan dator.
Steg 3. Definiera kärnidén med en SO
Till exempel, i Windows, är kärnidén en lättanvänd GUI och mycket säkerhet.
Steg 4. Bestäm vilken processorplattform ditt operativsystem kommer att stödja
IA-32, ARM och x86_64 är de vanligaste plattformarna för persondatorer. Så alla är ditt bästa val.
Steg 5. Bestäm om du föredrar att göra allt själv från grunden, eller finns det redan en kärna som du vill bygga på
Till exempel är Linux från grunden ett projekt för människor som vill bygga sin egen Linux distro.
Steg 6. Bestäm om du kommer att använda din egen boot-loader eller en förbyggd sådan som Grand Unified Bootloader (GRUB)
Kodning av startladdaren själv kräver omfattande kunskap om hårdvara och BIOS. Som ett resultat kan detta steg hindra själva kärnprogrammeringsschemat.
Steg 7. Bestäm vilket programmeringsspråk som ska användas
Det är bra att ha ett operativsystem på ett språk som Pascal eller BASIC, men du bör använda C eller Assembly. Montering är mycket nödvändig, eftersom vissa viktiga delar av ett operativsystem kräver det. Å andra sidan innehåller språket C ++ nyckelord som kräver annan full SO för att köras.
För att kompilera ett operativsystem från C- eller C ++ - kod använder du naturligtvis den ena kompilatorn eller den andra. Därför är det en bra idé att konsultera användarhandboken/manualen/dokumentationen för den valda C/C ++ - kompilatorn, oavsett om den ingår i programvaran eller finns på distributörens webbplats. Du behöver veta många komplicerade saker om kompilatorn och för C ++ - utveckling måste du veta om kompilatorns manglingsschema och dess ABI. Du förväntas förstå de olika körbara formaten (ELF, PE, COFF, basic binär, etc.) och förstå att det exklusiva Windows -formatet, PE (.exe), är upphovsrättsskyddat
Steg 8. Definiera ditt applikationsprogrammeringsgränssnitt (API)
Ett bra API att välja mellan är POSIX eftersom det är väldokumenterat. Alla Unix -system har åtminstone delvis stöd för POSIX. Så att ansluta Unix -program till ditt operativsystem bör vara enkelt.
Steg 9. Bestäm din design
Det finns något som heter en monolitisk kärna och en mikrokärna. Monolitiska kärnor implementerar alla tjänster i kärnan, medan mikrokärnor har små kärnor buntade med användardemons distributionstjänster. I allmänhet är monolitiska kärnor snabbare, men mikrokärnor har bättre felisolering och tillförlitlighet.
Steg 10. Överväg att utveckla och arbeta i ett team
På det sättet tar det mindre tid att lösa fler problem, vilket förmodligen kommer att påskynda byggandet av ett bättre operativsystem.
Steg 11. Torka inte av hårddisken helt
Kom ihåg att radering av en enhet raderar all data på den oåterkalleligt! Använd GRUB eller en annan starthanterare för att dubbelstarta ditt system med ett annat operativsystem tills ditt operativsystem är fullt fungerande.
Steg 12. Börja smått
Börja med små saker som att visa text och pausa innan du går vidare till saker som minneshantering och sammansatt arbete. Se också till att du gör 32 -bitars- och 64 -bitarsversionerna.
Steg 13. Behåll en säkerhetskopia av den senaste fungerande källkoden
Detta steg är användbart som ett skydd om något skulle gå fel med den nuvarande versionen av SO eller utveckling. Om din dator kraschar och inte startar är det en bra idé att ha en andra kopia att arbeta med så att du kan åtgärda problemet.
Steg 14. Överväg att testa ditt nya operativsystem med en virtuell maskin
Istället för att starta om datorn varje gång du gör ändringar eller efter att du har skickat filer från din utvecklingsdator till din testmaskin kan du använda ett virtuellt maskinprogram för att köra ditt operativsystem medan ditt nuvarande operativsystem körs. Nuvarande VM -applikationer inkluderar: VMWare (som också har en serverprodukt gratis), open source -alternativ, Bochs, Microsoft Virtual PC (inte kompatibel med Linux) och Oracle VirtualBox.
Steg 15. Starta "release -kandidaten" eller betaversionen
Detta steg gör att användaren kan meddela dig om eventuella problem med ditt operativsystem.
Steg 16. Operativsystemet bör också vara användarvänligt
Se till att du lägger till användarvänliga funktioner, gör dessa till en integrerad del av din design.
Tips
- Kontrollera om det finns potentiella blockeringar och andra buggar. Buggar, blockeringar och andra problem påverkar ditt operativsystems byggprojekt.
- Se till att du implementerar säkerhetsfunktioner som högsta prioritet om du vill att systemet ska fungera korrekt.
- Använd webbplatser som OSDev och OSDever för att hjälpa dig att utveckla ditt eget operativsystem. Observera att för de flesta ändamål kommer OSDev.org -gemenskapen att vara mer än glad om du använder deras wiki och inte går med i forumet. Om du bestämmer dig för att gå med i ett forum finns det en förutsättning: du behöver verkligen veta om C eller C ++ och x86 -monteringsspråket. Du bör också förstå allmänna och komplexa programmeringskoncept som länkade listor, köer, etc. OSDev -gemenskapen, i sina bestämmelser, uttryckligen säger att dess gemenskap inte är skapad för att vårda nya programmerare.
- Gå inte med med OSDev.org -forumet och ställ sedan den uppenbara frågan. Du kommer bara att bli ombedd att läsa guiden. Läs Wikipedia och instruktionerna för vilken utrustning du vill använda.
- Om du försöker utveckla ett operativsystem anses du definitivt vara programmeringens "gud".
- Du borde också ha läst processorhandboken för den processorarkitektur du valt; om x86 (Intel), ARM, MIPS, PPC, etc. Manualer för processorarkitekturer är lätta att hitta med en Google -sökning ("Intel -manual", "ARM -manual", etc.).
- När allt utvecklingsarbete är klart bestämmer du om du vill släppa koden som öppen kod eller enligt upphovsrätten.
- Börja inte ett operativsystemsprojekt för att börja lära sig programmering. Om du inte vet inifrån och ut om C, C ++, Pascal eller något annat lämpligt språk, inklusive pekarmanipulation, lågnivåbitmanipulation, bitförskjutning, inbyggda monteringsspråk, etc., är du inte redo för operativsystem utveckling.
- Att skapa en helt ny partition för att 'expandera' SO kan vara ett bra alternativ.
- Om du vill ha ett enkelt sätt kan du överväga Linux -distros som Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD eller SUSE Studio och SUSE KIWI. Operativsystemet du skapar tillhör dock företaget som startade tjänsten först (även om du har rätt att distribuera det fritt, ändra det och köra det som du vill under GPL).
Varning
- Du får inte ett fullständigt operativsystem inom två veckor. Börja med en startbar SO, gå sedan vidare till svalare saker.
- Att slarvigt skriva ditt operativsystem på en hårddisk kan helt skada det. Var försiktig.
- Om du gör något som inte rekommenderas, till exempel att skriva slumpmässiga byte på slumpmässiga I/O -portar, kraschar du ditt operativsystem och (i teorin) kan bränna din maskinvara.
- Förvänta dig inte att operativsystemet är enkelt att bygga. Det finns många komplicerade ömsesidiga beroende. Till exempel, för att skapa ett operativsystem som kan hantera flera processorer, måste din Memory Manager ha en "låsning" -mekanism för att förhindra att flera processorer får åtkomst till samma resurs samtidigt. "Låset" som används för detta skulle kräva en schemaläggare för att säkerställa att endast en processor får tillgång till kritiska resurser vid varje given tidpunkt och alla andra måste vänta. I själva verket beror schemaläggaren på närvaron av Memory Manager. Detta är ett exempel på ett återvändsgräns. Det finns inget standard sätt att lösa denna typ av problem; varje operativsystems programmerare förväntas vara tillräckligt skicklig för att kunna sitt eget sätt att hantera det.
Ytterligare resurser
- Riktlinjer: Linux From Scratch
- Bootloader: GRUB
- Virtuella maskinapplikationer: Bochs, VM Ware, XM Virtual Box.
- Processorhandbok: Intel -manual
- SO -utvecklingssajter: OSDev, OSDever