















Tjek for mulige deadlocks og andre fejl. Fejl, dødvande og andre problemer vil begynde at dukke op i dit OS-projekt. Hvis du nogensinde ønsker, at dit system skal være levedygtigt, skal du sørge for at implementere sikkerhedsfunktioner som din højeste prioritet. Med websteder som OSDev og OSDever kan du udvikle dit eget styresystem. Bemærk: Til de fleste formål er OSDev.org-fællesskabet foretrækker, at du konsulterer deres wiki for spørgsmål og ikke deltager i forummet. Hvis du beslutter dig for at deltage i forummet, er der krav: du skal have et indgående kendskab til C eller C++ og x86 assembler. Du bør også forstå almindelige og komplekse programmeringskoncepter såsom linkede lister, køer osv. OSDev-fællesskabet angiver udtrykkeligt i sine regler, at Fællesskabet ikke er beregnet til at passe nye programmører. `Deltag ikke OSDev.org-fora for at begynde at stille åbenlyse spørgsmål lige efter. Dette vil blot resultere i svar som""læs manualen/læs manualen". Læs Wikipedia og manualerne til de forskellige værktøjer, du vil bruge. Hvis du forsøger at udvikle et styresystem, siger det sig selv, at du forventes at være en programmeringsgud. Du skal også have læst processormanualerne til den processorarkitektur, du har valgt; det være sig x86 (Intel), ARM, MIPS, PPC osv. er. Processorarkitektur tutorials kan nemt findes med en Google-søgning ("Intel manualer", "ARM manualer" etc.). Når al udvikling er færdig, kan du beslutte, om du vil frigive koden som open source eller proprietær. Start ikke med et operativsystemprojekt for at lære programmering. Hvis du ikke allerede har et indgående kendskab til C, C++, Pascal eller et hvilket som helst andet passende sprog, herunder pointermanipulation, low-level bitmanipulation, bit shifting, inline assemblersprog osv., så er du virkelig ikke klar til udviklingen af dit eget styresystem. Det kan være klogt at oprette en helt ny partition til `udvikling` af OS.
Opret et operativsystem
Indhold
Operativsystemer gør det muligt for folk at interagere med en computers hardware; de består af hundredtusindvis af linjer kode. Normalt er de lavet med C#, C, C++ og assembler programmeringssprog. Operativsystemer giver dig mulighed for at navigere på en computer, aktivere datalagring og køre kommandoer. Tror ikke det er nemt at lave et styresystem. Det kræver meget viden.
Trin

1. Lær at programmere, før du starter. Samling er afgørende, og et andet ekstra programmeringssprog på højt niveau, såsom C, anbefales stærkt.

2. Bestem, hvilket medie du vil indlæse dit OS på. Dette kan være et cd-drev, dvd-drev, flashdrev, harddisk, diskette eller enhver anden pc.

3. Bestem, hvad kerneideen er om OS. I Windows, for eksempel, er en brugervenlig GUI og stærk sikkerhed kerneideen.

4. Bestem, hvilken processorplatform dit operativsystem vil understøtte. IA-32, ARM og x86_64 er de mest almindelige arkitekturer til personlige computere, så det er dit bedste bud.

5. Beslut om du vil bygge det hele selv fra bunden, eller om der er en eksisterende kerne du vil bygge på. Linux From Scratch er et eksempelprojekt for dem, der ønsker at bygge deres egen Linux-distro.

6. Beslut om du vil bruge din egen bootloader eller en eksisterende, såsom Grand Unified Bootloader (GRUB). Da kodning af din egen bootloader kræver omfattende viden om hardware og BIOS, kan det bremse planlægningen af programmering af selve kernen.

7. Bestem hvilket programmeringssprog du vil bruge. Selvom det er muligt at oprette et operativsystem på et sprog som Pascal eller BASIC, er du bedre stillet med C eller Assembly. Samling er absolut nødvendig, da nogle vitale dele af et operativsystem kræver det. C++ på den anden side indeholder sprogelementer, der kræver et andet fuldt OS for at køre.
For at kunne kompilere et operativsystem fra C- eller C++-kode skal du naturligvis have en form for compiler. Du bør derfor læse brugervejledningen/manualerne/dokumentationen til din valgte C/C++ compiler, uanset om den er leveret med softwaren eller tilgængelig på distributørens hjemmeside. Du bliver nødt til at vide mange komplicerede ting om din compiler, og for at udvikle i C++ skal du have kendskab til compilerens mangling-skema og ABI. Du vil se de forskellige eksekverbare formater (ELF, PE, COFF, almindelig binær osv.).), samt det faktum, at det oprindelige Windows-format, PE (.exe), er ophavsretligt beskyttet.

8. Beslut, hvilken API (Application Programming Interface) du vil bruge. En god API at vælge er POSIX, da den er veldokumenteret. Alle Unix-systemer har i det mindste delvis understøttelse af POSIX, så det ville være trivielt at portere Unix-programmer til dit OS.

9. Beslutning om designet. Der er monolitiske kerner og mikrokerner. Monolitiske kerner udfører alle tjenester i kernen, mens mikrokerner kombinerer en lille kerne med en kombineret brugerdæmoner, der implementerer tjenester. Generelt er monolitiske kerner hurtigere, men mikrokerner har bedre fejlisolering og pålidelighed.

10. Overvej at udvikle og arbejde i et team. På den måde kræves der mindre tid til at løse flere problemer, hvilket kan producere et bedre OS hurtigere.

11. Slet ikke din harddisk fuldstændigt. Husk, at sletning af dit drev vil slette alle data irreversibelt! Brug GRUB eller en anden boot manager til at konfigurere en dual boot med et andet operativsystem, indtil dit eget system er fuldt funktionsdygtigt.

12. Start i det små. Start med små ting som at vise tekst og afbrydelser, før du går videre til de større problemer som hukommelsesstyring og multitasking. Sørg også for at lave en 32-bit og 64-bit version.

13. Hold en sikkerhedskopi af din senest fungerende kildekode. Dette giver en grad af beskyttelse, hvis noget går grueligt galt med den aktuelle version af dit operativsystem eller dets udvikling. Hvis din computer går ned og ikke længere er i stand til at starte op, er det en god idé at have en anden kopi at arbejde med, så du kan fejlfinde.

14. Overvej at teste dit nye operativsystem med en virtuel maskine. I stedet for at genstarte din computer hver gang du foretager ændringer, eller overføre filer fra din udviklingscomputer til din testmaskine, kan du bruge en virtuel maskine til at køre dit OS under dit nuværende OS. Nogle af VM-programmerne inkluderer VMWare (har også frit tilgængelig serversoftware), open source-alternativet Bochs, Microsoft Virtual PC (ikke kompatibel med Linux) og Oracle VirtualBox.

15. Frigiv en `frigivelseskandidat`.Dette vil give brugerne mulighed for at advare dig om potentielle problemer med dit operativsystem.

16. Et operativsystem kan også være brugervenligt, så sørg for at tilføje brugervenlige funktioner, hvilket gør det til en integreret del af dit design.
Tips
Det operativsystem, du opretter, tilhører derefter det firma, der startede tjenesten først (selvom du har ret til gratis distribution og til at ændre det som du ønsker og køre det under GPL).
Advarsler
- Du vil ikke have oprettet et fuldt operativsystem om to uger. Start med et OS, der kan starte, og fortsæt derefter til de sjove ting.
- Hvis du gør noget så dårligt som at skrive tilfældige bytes til tilfældige I/O-porte, vil dit OS gå ned, og du kan (i teorien) beskadige din hardware.
- Forvent ikke, at det bliver nemt at bygge et velfungerende styresystem. Der er alle slags komplicerede indbyrdes afhængigheder. For at tillade et operativsystem at håndtere flere processorer, skal du f.eks. bruge `låsemekanismer` til hukommelsesstyring for at forhindre flere processorer i at bruge den samme ressource/ressource på samme tid. Det "låse" bruges til dette kræver tilstedeværelsen af en planlægger/planlægger for at sikre, at kun én processor kan få adgang til en kritisk ressource på et givet tidspunkt, mens alle andre venter. Men planlæggeren afhænger igen af tilstedeværelsen af en Memory Manager. Dette er et tilfælde af en dødvandeafhængighed. Der er ingen standard måde at løse problemer som dette; enhver operativsystemprogrammør forventes at være dygtig nok til at finde deres egen måde at håndtere det på.
- Skødesløs skrivning af dit operativsystem til harddisken kan ødelægge det fuldstændigt. Vær forsigtig.
Fornødenheder
- En computer
- En CPU til den arkitektur, du vil udvikle
- Tilstrækkelig hukommelse (RAM) til en virtuel maskine
- Et `værts` OS (bruges til at udvikle Assembler (og andre) kildekoden, samt bygge og pakke det, mens det stadig er i de tidlige stadier, til sidst kan dit OS hoste sig selv)
- En farvekodet programmeringseditor (brug denne, hvis du ikke har et IDE - Integrated Development Environment)
- En compiler
- Et cd/dvd-drev
Artikler om emnet "Opret et operativsystem"
Оцените, пожалуйста статью
Populær