















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.
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

1. Lär dig programmera innan du börjar. Montering är viktigt och ytterligare ett högnivåprogrammeringsspråk som C rekommenderas starkt.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

15. Släpp en "släppkandidat".Detta gör att användare kan varna dig om potentiella problem med ditt operativsystem.

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
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
"Skapa ett operativsystem"
Оцените, пожалуйста статью