Skep `n bedryfstelsel

Bedryfstelsels maak dit vir mense moontlik om met die hardeware van `n rekenaar te kommunikeer - dit bestaan ​​uit honderde duisende reëls kode. Gewoonlik word hulle gemaak met C #, C, C ++ en assembler programmeringstale. Met bedryfstelsels kan jy op `n rekenaar navigeer, dataopberging aktiveer en opdragte uitvoer. Moenie dink dit is maklik om `n bedryfstelsel te maak nie. Dit verg baie kennis.

stappe

Prent getiteld Maak `n rekenaar bedryfstelsel Stap 1
1
Leer hoe om te program voordat jy begin. Vergadering is noodsaaklik en `n ander, addisionele hoë programmeringstaal soos C, word sterk aanbeveel.
  • Prent getiteld Maak `n rekenaar bedryfstelsel Stap 2
    2
    Bepaal op watter media jou OS gelaai moet word. Dit kan `n CD-speler, DVD-aandrywer, flash drive, hardeskyf, diskette of ander rekenaar wees.
  • Prent getiteld Maak `n rekenaar bedryfstelsel Stap 3
    3
    Besluit wat die kernidee is oor die bedryfstelsel. In Windows, byvoorbeeld, is `n maklike GUI en sterk sekuriteit die kernidee.
  • Prent getiteld Maak `n rekenaar bedryfstelsel Stap 4
    4
    Bepaal watter verwerkerplatform jou bedryfstelsel sal ondersteun. IA-32, ARM en x86_64 is die mees algemene argitektuur vir persoonlike rekenaars, dus hulle is jou beste weddenskap.
  • Prent getiteld Maak `n rekenaar bedryfstelsel Stap 5
    5
    Besluit of jy dit alles van nuuts af wil opbou, of daar `n bestaande kern is waarop jy wil voortgaan. Linux From Scratch is `n voorbeeld van `n projek vir diegene wat hul eie Linux distro wil bou.
  • Prent getiteld Maak `n rekenaar bedryfstelsel Stap 6
    6
    Besluit of jy jou eie selflaaiprogram of `n bestaande een sal gebruik, soos Grand Unified Bootloader (GRUB). Aangesien enkripsie van u eie selflaaiprogram vereis uitgebreide hardeware- en BIOS-kennis, kan dit die beplanning vir die werklike kern vertraag.
  • Prent getiteld Maak `n rekenaar bedryfstelsel Stap 7
    7
    Besluit watter programmeertaal jy sal gebruik. Alhoewel dit moontlik is om `n bedryfstelsel in `n taal soos Pascal of BASIC te maak, is jy beter af met C of Vergadering. Vergadering is absoluut noodsaaklik omdat dit nodig is vir `n paar belangrike dele van `n bedryfstelsel. C + + aan die ander kant bevat taalelemente wat `n ander volwaardige bedryfstelsel benodig om te kan uitvoer.
  • Om `n bedryfstelsel uit C of C ++-kode op te stel, benodig jy natuurlik `n samesteller. U moet dus die gebruiksaanwijzing / handleidings / dokumentasie vir u gekose C / C + + -samesteller lees, of dit by die sagteware beskikbaar is of beskikbaar is op die verspreider se webwerf. Jy sal baie komplekse dinge oor jou samesteller moet ken en vir ontwikkeling in C ++ moet jy die mangelskema van die samesteller en die ABI ken. U moet die verskillende uitvoerbare formate (ELF, PE, COFF, gewone binêre, ens.) Verstaan, asook die feit dat die Windows-proprietary formaat, PE (. Exe), kopiereg beskerm word.
  • Prent getiteld Maak `n rekenaar bedryfstelsel Stap 8
    8
    Besluit watter program programmeringsvlak (API) u sal gebruik. `N Goeie API om te kies, is POSIX, aangesien dit goed gedokumenteer is. Alle Unix-stelsels het ten minste gedeeltelike ondersteuning vir POSIX, dus dit sal triviaal wees om Unix-programme na u OS te haal.
  • Prent getiteld Maak `n rekenaar bedryfstelsel Stap 9


    9
    Besluit op die ontwerp. Daar is monolitiese pitte en mikrokernelle. Monolithische pitte voer alle dienste in die kern, terwyl mikrokernen `n klein pit kombineer met `n kombinasie met gebruikers daemonne wat dienste implementeer. Oor die algemeen is monolitiese pitte vinniger, maar mikrokernelle het beter fouteisolasie en betroubaarheid.
  • Prent getiteld Maak `n rekenaar bedryfstelsel Stap 10
    10
    Oorweeg dit om in `n span te ontwikkel en te werk. Op hierdie manier word minder tyd benodig om meer probleme op te los, wat `n beter OS vinniger kan lewer.
  • Prent getiteld Maak `n rekenaar bedryfstelsel Stap 11
    11
    Moenie jou hardeskyf heeltemal uitvee nie. Moenie vergeet dat die verwydering van u skyf alle data onherroeplik sal verwyder nie! Gebruik GRUB of `n ander opstartbestuurder om `n dual-boot met `n ander bedryfstelsel op te stel totdat jou eie stelsel ten volle funksioneel is.
  • Prent getiteld Maak `n rekenaar bedryfstelsel Stap 12
    12
    Begin klein. Begin met klein dingetjies soos teks en onderbrekings voordat jy met die groter take, soos geheuebestuur en multitasking, voortgaan. Maak ook seker dat jy `n 32-bis en 64-bis weergawe maak.
  • Prent getiteld Maak `n rekenaar bedryfstelsel Stap 13
    13
    Hou `n back-up van u mees onlangse werkbronkode. Dit bied `n mate van beskerming in die geval dat iets verkeerd verkeerd gaan met die huidige weergawe van u bedryfstelsel of die ontwikkeling daarvan. As jou rekenaar ineenstort en nie meer kan opstart nie, is dit `n uitstekende idee om `n tweede kopie te hê om mee te werk, sodat jy foute kan opspoor.
  • Prent getiteld Maak `n rekenaar bedryfstelsel Stap 14
    14
    Oorweeg om jou nuwe bedryfstelsel te toets met `n virtuele masjien. In plaas daarvan om jou rekenaar weer te begin elke keer as u veranderinge aanbring of lêers van u ontwikkelaarrekenaar na u toetsmasjien oorplaas, kan u `n virtuele masjien gebruik om u bedryfstelsel onder u huidige bedryfstelsel te laat loop. `N Aantal VM-programme is VMWare (het ook vrye bedienerprogrammatuur), die oopbron-alternatiewe Bochs, Microsoft Virtual PC (nie verenigbaar met Linux nie) en Oracle VirtualBox.
  • Prent getiteld Maak `n rekenaar bedryfstelsel Stap 15
    15
    Stel `n vrylatingskandidaat vry. Dit sal gebruikers toelaat om moontlike probleme met u bedryfstelsel te wys.
  • Prent getiteld Maak `n rekenaar-bedryfstelsel Stap 16
    16
    `N Bedryfstelsel kan ook gebruikersvriendelik wees, so wees seker dat gebruikersvriendelike funksies bygevoeg word, wat hulle `n integrale deel van jou ontwerp maak.
  • wenke

    • Kyk na moontlike deadlocks en ander foute. Foute, deadlocks en ander probleme sal voorkom in u bedryfstelsel projek.
    • Maak seker jy implementeer sekuriteitskenmerke as jou voorrang, as jy ooit wil hê dat jou stelsel lewensvatbaar is.
    • Met webwerwe soos OSDev en OSDever kan jy jou eie bedryfstelsel ontwikkel. Let wel: Vir die meeste doeleindes sal die OSDev.org-gemeenskap verkies dat u hul wiki raadpleeg vir vrae en nie aan die forum deelneem nie. As jy besluit om by die forum aan te sluit, is daar vereistes: jy moet deeglike kennis hê van C of C ++ en x86 assembler. U moet ook algemene en komplekse programmeringskonsepte, soos gekoppelde lyste, toue, ens. Verstaan. Die OSDev Gemeenskap verklaar uitdruklik dat die Gemeenskap nie vir die babysit van nuwe programmeerders bedoel is nie.
    • `Moet nie `n lid daarvan word nie die OSDev.org forums vra onmiddellik voor die hand liggende vrae. Dit sal eenvoudig lei tot antwoorde soos ""lees die handleiding / lees die handleiding". Lees Wikipedia en die handleidings vir die verskillende gereedskap wat jy wil gebruik.
    • As jy probeer om `n bedryfstelsel te ontwikkel, is dit vanselfsprekend dat daar van jou verwag word om `n programmeringsgod te wees.
    • U moet ook die verwerkerhandleidings vir die verwerkerargitektuur wat u gekies het, lees - of dit nou x86 (Intel), ARM, MIPS, PPC, ens. U kan die handleidings vir die argitektuur van `n verwerker maklik vind met `n Google-soektog ("Intel handleidings", "ARM handleidings" ens.)
    • Nadat al die ontwikkeling voltooi is, kan jy besluit of jy die kode as oop bron of besit wil vrylaat.
    • Moenie begin nie met `n bedryfstelsel projek om programmering te leer. As jy nog geen grondige kennis het van C, C ++, Pascal of `n ander geskikte taal, met inbegrip van pointer manipulation, low-level bit manipulation, bit shifting, inline assembly language, ens, dan is jy regtig nog nie gereed vir die ontwikkeling van u eie bedryfstelsel.
    • Dit kan verstandig wees om `n heeltemal nuwe partisie vir die `ontwikkeling` van die bedryfstelsel te skep.

    Die bedryfstelsel wat jy maak, behoort aan die maatskappy wat eers die diens begin het (selfs as jy die reg het om gratis verspreiding te verdeel, en om dit onder die GPL te wysig en uit te voer).

    waarskuwings

    • Jy sal binne twee weke nie `n volledige bedryfstelsel geskep het nie. Begin met `n OS wat kan begin, en gaan dan voort met die prettige dinge.
    • As jy iets onverskilligs doen om ewekansige byte te skryf na ewekansige I / O-poorte, sal jou bedryfstelsel ineenstort en kan jy (in teorie) jou hardeware beskadig.
    • Moenie verwag dat dit maklik is om `n goeie bedryfstelsel te bou nie. Daar is allerhande ingewikkelde interafhanklikhede. As u byvoorbeeld `n bedryfstelsel vir meerdere verwerkers moet hanteer, moet u `sluitmeganismes` vir geheuebestuur gebruik om te verhoed dat verskeie verwerkers gelyktydig een en dieselfde bron / bron gebruik. die "slotte" wat vir hierdie doel gebruik word, vereis die teenwoordigheid van `n skeduleerder / skeduleerder om te verseker dat slegs een verwerker op `n gegewe tyd toegang tot `n kritieke hulpbron het, met alle ander wat wag. Maar die skeduleerder is weer afhanklik van die teenwoordigheid van `n geheuebestuurder. Dit is `n geval van `n vas (afhangende) afhanklikheid. Daar is geen standaard manier om sulke probleme op te los nie - elke programmeerder van `n bedryfstelsel sal na verwagting bevoeg wees om hul eie manier te vind om dit te hanteer.
    • Nalatige skryf van u bedryfstelsel na die hardeskyf kan dit heeltemal beskadig. Wees versigtig.
    Deel op sosiale netwerke:

    Verwante