Lag et operativsystem

Operativsystemer gjør det mulig for folk å samhandle med en datamaskins maskinvare; de består av hundretusenvis av linjer med kode. Vanligvis er de laget med C#, C, C++ og assembler-programmeringsspråk. Operativsystemer lar deg navigere på en datamaskin, aktivere datalagring og kjøre kommandoer. Tror ikke det er lett å lage et operativsystem. Det krever mye kunnskap.

Trinn

Bilde med tittelen Lag et datamaskinoperativsystem Trinn 1
1. Lær å programmere før du starter. Montering er viktig, og et annet programmeringsspråk på høyt nivå som C anbefales på det sterkeste.
Bilde med tittelen Lag et datamaskinoperativsystem Trinn 2
2. Bestem hvilket medium du vil laste OS på. Dette kan være en CD-stasjon, DVD-stasjon, flash-stasjon, harddisk, diskett eller en annen PC.
Bilde med tittelen Lag et datamaskinoperativsystem Trinn 3
3. Bestem hva kjerneideen er om OS. I Windows, for eksempel, er en brukervennlig GUI og sterk sikkerhet kjerneideen.
Bilde med tittelen Lag et datamaskinoperativsystem Trinn 4
4. Bestem hvilken prosessorplattform operativsystemet ditt vil støtte. IA-32, ARM og x86_64 er de vanligste arkitekturene for personlige datamaskiner, så det er det beste alternativet.
Bilde med tittelen Lag et datamaskinoperativsystem Trinn 5
5. Bestem om du vil bygge alt selv fra bunnen av, eller om det er en eksisterende kjerne du vil bygge på. Linux From Scratch er et eksempelprosjekt for de som ønsker å bygge sin egen Linux-distro.
Bilde med tittelen Lag et datamaskinoperativsystem Trinn 6
6. Bestem om du vil bruke din egen bootloader eller en eksisterende, for eksempel Grand Unified Bootloader (GRUB). Siden koding av din egen bootloader krever omfattende kunnskap om maskinvaren og BIOS, kan det bremse planleggingen for programmering av selve kjernen.
Bilde med tittelen Lag et datamaskinoperativsystem Trinn 7
7. Bestem hvilket programmeringsspråk du vil bruke. Selv om det er mulig å lage et operativsystem på et språk som Pascal eller BASIC, har du det bedre med C eller Assembly. Montering er helt nødvendig siden noen vitale deler av et operativsystem krever det. C++ på den annen side inneholder språkelementer som krever et annet fullt operativsystem for å kjøre.
For å kunne kompilere et operativsystem fra C- eller C++-kode trenger du åpenbart en slags kompilator. Du bør derfor lese brukerveiledningen/manualene/dokumentasjonen for din valgte C/C++ kompilator, enten den følger med programvaren eller er tilgjengelig på distributørens nettsted. Du må vite mange kompliserte ting om kompilatoren din, og for å utvikle i C++ må du ha kunnskap om kompilatorens mangling-skjema og ABI. Du vil se de forskjellige kjørbare formatene (ELF, PE, COFF, vanlig binær, etc.).), samt det faktum at det opprinnelige Windows-formatet, PE (.exe), er opphavsrettsbeskyttet.
Bilde med tittelen Lag et datamaskinoperativsystem Trinn 8
8. Bestem hvilket applikasjonsprogrammeringsgrensesnitt (API) du vil bruke. Et godt API å velge er POSIX da det er godt dokumentert. Alle Unix-systemer har i det minste delvis støtte for POSIX, så det ville være trivielt å portere Unix-programmer til operativsystemet ditt.
Bilde med tittelen Lag et datamaskinoperativsystem Trinn 9
9. Bestemme design. Det er monolittiske kjerner og mikrokjerner. Monolittiske kjerner utfører alle tjenester i kjernen, mens mikrokjerner kombinerer en liten kjerne med en kombinert brukerdemoner som implementerer tjenester. Generelt er monolittiske kjerner raskere, men mikrokjerner har bedre feilisolering og pålitelighet.
Bilde med tittelen Lag et datamaskinoperativsystem Trinn 10
10. Vurder å utvikle og jobbe i et team. På den måten trengs det mindre tid for å løse flere problemer, noe som kan produsere et bedre OS raskere.
Bilde med tittelen Lag et datamaskinoperativsystem Trinn 11
11. Ikke slett harddisken fullstendig. Husk at å tørke av stasjonen vil slette alle data irreversibelt! Bruk GRUB eller en annen oppstartsbehandler for å sette opp en dobbel oppstart med et annet operativsystem til ditt eget system er fullt funksjonelt.
Bilde med tittelen Lag et datamaskinoperativsystem Trinn 12
12. Begynn i det små. Start med små ting som å vise tekst og avbrudd før du går videre til de større problemene som minneadministrasjon og multitasking. Sørg også for å lage en 32-bit og 64-bit versjon.
Bilde med tittelen Lag et datamaskinoperativsystem Trinn 13
1. 3. Ta vare på en sikkerhetskopi av den sist fungerende kildekoden. Dette gir en viss grad av beskyttelse i tilfelle noe går fryktelig galt med den gjeldende versjonen av operativsystemet eller utviklingen av det. Hvis datamaskinen krasjer og ikke lenger kan starte opp, er det en god idé å ha en ekstra kopi å jobbe med slik at du kan feilsøke.
Bilde med tittelen Lag et datamaskinoperativsystem Trinn 14
14. Vurder å teste ditt nye operativsystem med en virtuell maskin. I stedet for å starte datamaskinen på nytt hver gang du gjør endringer, eller overføre filer fra utviklingsdatamaskinen til testmaskinen, kan du bruke en virtuell maskin til å kjøre operativsystemet under ditt nåværende operativsystem. Noen av VM-programmene inkluderer VMWare (har også fritt tilgjengelig serverprogramvare), åpen kildekode-alternativet Bochs, Microsoft Virtual PC (ikke kompatibel med Linux) og Oracle VirtualBox.
Bilde med tittelen Lag et datamaskinoperativsystem Trinn 15
15. Slipp en "frigjøringskandidat".Dette vil tillate brukere å varsle deg om potensielle problemer med operativsystemet ditt.
Bilde med tittelen Lag et datamaskinoperativsystem Trinn 16
16. Et operativsystem kan også være brukervennlig, så sørg for å legge til brukervennlige funksjoner, noe som gjør det til en integrert del av designet ditt.

Tips

  • Se etter mulige vranglåser og andre feil. Feil, vranglås og andre problemer vil begynne å dukke opp i OS-prosjektet ditt.
  • Hvis du noen gang vil at systemet ditt skal være levedyktig, sørg for å implementere sikkerhetsfunksjoner som din høyeste prioritet.
  • Med nettsteder som OSDev og OSDever kan du utvikle ditt eget operativsystem. Merk: For de fleste formål er OSDev.org-fellesskapet vil heller at du konsulterer wikien deres for spørsmål, og ikke deltar i forumet. Hvis du bestemmer deg for å bli med i forumet, er det krav: du må ha grundig kunnskap om C eller C++ og x86 assembler. Du bør også forstå vanlige og komplekse programmeringskonsepter som koblede lister, køer, etc. OSDev-fellesskapet sier uttrykkelig i sine regler at fellesskapet ikke er ment å være barnevakt for nye programmerere.
  • `Ikke bli med OSDev.org-fora for å begynne å stille åpenbare spørsmål rett etterpå. Dette vil ganske enkelt resultere i svar som""les manualen/les manualen". Les Wikipedia og manualene for de forskjellige verktøyene du vil bruke.
  • Hvis du prøver å utvikle et operativsystem, sier det seg selv at du forventes å være en programmeringsgud.
  • Du må også ha lest prosessormanualene for prosessorarkitekturen du har valgt; det være seg x86 (Intel), ARM, MIPS, PPC, etc. er. Prosessorarkitekturveiledninger kan enkelt finnes med et Google-søk ("Intel manualer", "ARM manualer" etc.).
  • Etter at all utvikling er fullført kan du bestemme om du vil gi ut koden som åpen kildekode eller proprietær.
  • Ikke start med et operativsystemprosjekt for å lære programmering. Hvis du ikke allerede har grundig kunnskap om C, C++, Pascal eller et annet passende språk, inkludert pekermanipulasjon, lavnivåbitmanipulasjon, bitskifting, inline assembly-språk, etc., da er du virkelig ikke klar for utviklingen av ditt eget operativsystem.
  • Det kan være lurt å lage en helt ny partisjon for `utvikling` av OS.
  • Operativsystemet du oppretter tilhører da selskapet som startet tjenesten først (selv om du har rett til gratis distribusjon, og til å endre det som du ønsker og kjøre det under GPL).

    Advarsler

    • Du vil ikke ha opprettet et fullt operativsystem på to uker. Start med et OS som kan starte opp, og gå deretter videre til de morsomme tingene.
    • Hvis du gjør noe så dårlig som å skrive tilfeldige byte til tilfeldige I/O-porter, vil operativsystemet ditt krasje og du kan (i teorien) skade maskinvaren din.
    • Ikke forvent at det skal være enkelt å bygge et velfungerende operativsystem. Det er alle slags kompliserte gjensidige avhengigheter. For å tillate et operativsystem å håndtere flere prosessorer, må du for eksempel bruke "låsemekanismer" for minneadministrasjon for å forhindre at flere prosessorer bruker samme ressurs/ressurs samtidig. De "låser" brukes til dette krever tilstedeværelse av en planlegger/planlegger for å sikre at bare én prosessor kan få tilgang til en kritisk ressurs til enhver tid, mens alle andre venter. Men planleggeren avhenger igjen av tilstedeværelsen av en Memory Manager. Dette er et tilfelle av en fastlåst avhengighet. Det er ingen standard måte å løse problemer som dette på; alle operativsystemprogrammerere forventes å være dyktige nok til å finne sin egen måte å håndtere det på.
    • Uforsiktig skriving av operativsystemet til harddisken kan skade den fullstendig. Vær forsiktig.

    Nødvendigheter

    • En datamaskin
    • En CPU for arkitekturen du skal utvikle
    • Tilstrekkelig minne (RAM) for en virtuell maskin
    • Et `vert` OS (brukes til å utvikle Assembler (og andre) kildekoden, samt bygge og pakke den mens den fortsatt er i de tidlige stadiene, til slutt kan operativsystemet ditt være vert for seg selv)
    • Et fargekodet programmeringsredigeringsprogram (bruk dette hvis du ikke har et IDE - Integrated Development Environment)
    • En kompilator
    • En CD/DVD-stasjon

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