Wkudk

Hvordan man laver en computer operativsystem

Operativsystemer tillader folk at interagere med hardware, er de lavet af 10000-vis af 100-vis af linjer kode. De er som regel lavet med følgende programmeringssprog: C, C + + og forsamling.

Steps

Hvordan man laver en computer operativsystem. Lær programmering før du begynder.
Hvordan man laver en computer operativsystem. Lær programmering før du begynder.
  1. 1
    Lær programmering før du begynder. Assembly Language er afgørende, er en anden supplerende lavt niveau sprog som C anbefales kraftigt.
  2. 2
    Beslut hvilke medier, du vil indlæse dit OS på. Det kan være en diskette, cd-drev, dvd-drev, flash-drev, en harddisk eller en anden pc.
  3. 3
    Beslut hvad du vil dit OS at gøre. Uanset om det er en fuldt ud i stand OS med en grafisk brugergrænseflade (GUI), eller noget lidt mere minimalistisk, skal du vide, hvilken retning du tager det, før du begynder.
  4. 4
    Målret hvad processor platform dit operativsystem understøtter. Hvis du ikke er sikker, er din bedste chance er at målrette X86 (32 bit) processor platform, da de fleste computere bruger X86 platform processorer.
  5. 5
    Beslut, om du hellere vil gøre det hele selv fra bunden, eller hvis der er en eksisterende kerne, du gerne vil bygge videre på toppen af. Linux fra Scratch er et projekt for dem, der gerne vil bygge deres egen Linux distro, for eksempel. Se tips til et eksternt link.
  6. 6
    Beslut, om du vil bruge din egen bootloader eller en pre-skabte én, sådan som grand unified bootloader (GRUB). Mens kodning din egen bootloader vil give en masse viden om hardware og BIOS, kan det sætte dig tilbage på programmeringen af ​​den faktiske kernen. Se Tips.
  7. 7
    Beslut hvad programmeringssprog at bruge. Selv om det er muligt at skabe et operativsystem på et sprog som Pascal eller BASIC, vil du være bedre stillet ved hjælp af C eller forsamling. Assembly er absolut nødvendigt, da nogle vitale dele af et operativsystem kræver det. C + +, på den anden side, indeholder nøgleord, der har brug for et fuldt indbygget OS til at køre.
    • For at kompilere et operativsystem fra C eller C + + kode, du vil naturligvis blive ved hjælp af en compiler eller en anden. Du skal derfor læse brugervejledningen / manualer / dokumentation for din valgte C / C + + compiler, uanset om det kommer pakket med software eller findes på distributørens hjemmeside. Du bliver nødt til at vide mange indviklede ting om din compiler, og for C + + udvikling, bør du vide om compiler mangling ordningen og dens ABI. Du forventes at forstå de forskellige eksekverbare formater (ELF, PE, COFF, almindelig binær, etc.), og forstå, at Windows proprietære format, PE (. Exe), er blevet ophavsretligt beskyttet.
  8. 8
    Beslut på din application programming interface (API). En god API til at vælge, er POSIX, som er veldokumenteret. Alle UNIX-systemer har mindst delvis støtte til POSIX, så det ville være trivielt at havne Unix-programmer til dit operativsystem.
  9. 9
    Beslutte, om dit design. Der er monolitiske kerner og microkernels. Monolitiske kerner gennemføre alle de tjenester i kernen, mens microkernels har en lille kerne kombineret med brugernes dæmoner gennemføre tjenester. I almindelighed er monolitiske kerner hurtigere, men microkernels har bedre fejlisolation og pålidelighed.
  10. 10
    Overveje at udvikle arbejde i et team. På den måde er mindre tid, der kræves for at løse flere problemer, der producerer en bedre OS.
  11. 11
    Tør ikke din harddisk helt. Husk, vil tørre dit drev rydde alle dine data og er irreversibel! Brug GRUB eller en anden boot manager til dual-starte dit system med en anden OS indtil din er fuldt funktionsdygtig.
  12. 12
    Start i det små. Begynd med små ting såsom visning tekst og afbryder, før man går videre til ting som hukommelse ledelse og multitasking.
  13. 13
    Hold en backup af den sidste arbejdsdag kilde. Hvis noget går galt med den nuværende version eller din udvikling pc nedbrud og ikke er i stand til at starte op, det er en fremragende idé at have en anden kopi til at arbejde med / fejlfinding.
  14. 14
    Overveje at teste dit nye operativsystem med en virtuel maskine. Snarere end at genstarte din computer, hver gang du foretager ændringer eller at skulle overføre filer fra din udvikling computer til din test maskine, kan du bruge en virtuel maskine program til at køre dit OS, mens din nuværende OS stadig kører. VM applikationer omfatter VMWare (som også har en frit tilgængelig server produkt), open-source alternativ Bochs, Microsoft Virtual PC (ikke kompatibel med Linux), og xVM VirtualBox. Se Tips for mere information.
  15. 15
    Frigive en "release candidate". Dette vil tillade brugere at fortælle dig om potentielle problemer med dit operativsystem.
  16. 16
    Et styresystem kan være brugervenlig også.

Tips

  • Hvis du ønsker en nem måde, overveje Linux distributioner som Fedora Revisor, Custom Nimble X Puppy Remaster, PCLinuxOS mklivecd eller SUSE Studio og SUSE KIWI. Men det operativsystem, du opretter tilhører virksomheden, der startede tjenesten først (selvom du har rettigheder til at distribuere det frit, ændre det og køre det som du vil under GPL).
  • Må ikke begynde et operativsystem projekt for at begynde at lære programmering. Nej Uh-uh. Gør det ikke. Hvis du ikke allerede kender C, C + +, Pascal eller en anden egnet sprog vrangen ud, herunder pointer manipulation, low-level bit manipulation, bitforskydning, inline assembler, etc., er du ikke klar til drift-systemudvikling.
  • Efter al udvikling er gjort, beslutte, om du ønsker at frigive koden som open source, eller proprietær.
  • Det kan være et godt valg til at lave en helt ny partition til at udvikle OS.
  • Check for potentielle blindgyder og andre fejl. Bugs, blokeringer og andre problemer vil påvirke dit operativsystem projekt.
  • Brug websites såsom OSDev og OSDever at hjælpe dig med at udvikle dit eget operativsystem. Bemærk vel, at til de fleste formål, ville OSDev.org samfund foretrække at du holder dig til at bruge deres wiki, og ikke deltage i forum. Hvis du beslutter at deltage i forum, er der forudsætninger: Du er forpligtet til grundigt kender C eller C + +, og x86 Forsamlingen sprog. Du må også forstå generelle og kompleks programmering begreber som hægtede lister, køer osv. OSDev samfund, i sin forretningsorden, hedder det udtrykkeligt, at Fællesskabet ikke rundt for at babysitte nye programmører. Hvis du forsøger at udvikle et operativsystem, er det en selvfølge, at du forventes at være et programmeringssprog "gud". Du er også forpligtet til at have læst processor manualer til processoren arkitektur, du har valgt, uanset om x86 (Intel), ARM, MIPS, PPC osv. manualer for en processor arkitektur kan nemt findes ved hjælp af en Google-søgning ("Intel Manualer "" ARM manualer "osv). ikke deltage i OSDev.org fora og begynde at stille oplagte spørgsmål. Det vil simpelthen resultere i "Læs f *** ING Manual" svar. Du skulle prøve at læse Wikipedia, og manualer til de forskellige værktøjer, du ønsker at bruge.
  • For mere information, se disse kilder.

Advarsler

  • Du vil ikke have et komplet system i to uger. Begynd med et operativsystem, støvler, så gå videre til den cool stuff.
  • Hvis du gør noget virkelig dumt, ligesom skrive tilfældige bytes til tilfældige I / O-porte, vil du crash din OS og kan (i teorien) steger din hardware.
  • Vær sikker på at gennemføre sikkerhedsfunktioner som din topprioritet, hvis du nogensinde ønsker at bruge det til noget.
  • Under dit operativsystem uforsigtigt skrives til harddisken kan korrupte det fuldstændigt. Vær forsigtig.
  • Forvent ikke, at en ordentlig operativsystem vil være let at bygge. Der er masser af gange, indviklede indbyrdes afhængighed. For eksempel for at gøre et operativsystem i stand til at håndtere flere processorer skal din hukommelse manager har "låsning" mekanismer på plads til at forhindre flere processorer at få adgang til samme ressource på samme tid. De "låse" anvendes til dette vil kræve tilstedeværelse af en scheduler til at sikre, at kun én tilgår processoren en kritisk ressource på et givet tidspunkt og alle de andre er lavet til at vente. Alligevel planlæggeren afhænger af tilstedeværelsen af ​​en Memory Manager. Dette er et tilfælde af en fastlåst afhængighed. Der er ingen standard måde at løse problemer som dette, hvert operativsystem programmør forventes at være dygtige nok til at finde ud af sin egen måde at håndtere det.

Ting du behøver

  • En god computer
  • En CPU for arkitektur, du vil udvikle
  • Nok hukommelse (RAM) til en virtuel maskine
  • A 'vært' OS (bruges til at udvikle Assembler (og andre) kildekode samt opbygge og pakke den, mens den er i sin vorden, i sidste ende dit eget OS kan være sin vært)
  • Syntaks-farvestof kode editor (bruge, hvis du ikke har nogen Integrated Development Environment)
  • En compiler
  • En CD / DVD-drev