Die bedryfstelsel laat die gebruiker toe om met die rekenaarhardeware te kommunikeer. Die stelsel bestaan uit honderde duisende reëls kode. Gewoonlik word die bedryfstelsel gemaak met behulp van die C#, C, C ++ en programmeertale vir montering. Met die bedryfstelsel kan u deur u rekenaar blaai terwyl u opdragte stoor en uitvoer. Moenie dink dat dit maklik is om 'n bedryfstelsel te skep nie. Dit verg baie kennis om dit te maak.
Stap
Stap 1. Leer eerstens oor programmering
Vergaderingstaal is baie belangrik; Dit word sterk aanbeveel dat u 'n ander aanvullende hoëvlak-taal, soos C-taal, aanleer.
Stap 2. Besluit watter media u wil gebruik om die bedryfstelsel te laai
Hierdie media kan 'n CD -skyf, DVD -skyf, flash -skyf, hardeskyf, diskette of 'n ander rekenaar wees.
Stap 3. Definieer die kerngedagte van 'n SO
Byvoorbeeld, op Windows is die kernidee 'n gebruikersvriendelike GUI en baie beveiliging.
Stap 4. Bepaal watter verwerkersplatform u bedryfstelsel sal ondersteun
IA-32, ARM en x86_64 is die algemeenste platforms vir persoonlike rekenaars. Dus, almal is u beste keuse.
Stap 5. Besluit of u verkies om alles self van voor af te doen, of is daar reeds 'n kern waarop u wil bou
Byvoorbeeld, Linux van nuuts af is 'n projek vir mense wat hul eie Linux -distro wil bou.
Stap 6. Besluit of u u eie laaiplader of 'n voorafgeboude een, soos die Grand Unified Bootloader (GRUB), gaan gebruik
Om die selflaaiprogram self te kodeer, verg uitgebreide kennis van hardeware en BIOS. As gevolg hiervan kan hierdie stap die werklike kernprogrammeringskedule belemmer.
Stap 7. Besluit watter programmeertaal jy wil gebruik
Dit is goed om 'n bedryfstelsel in 'n taal soos Pascal of BASIC te hê, maar u moet C of Assembly gebruik. Montering is baie nodig, want sommige belangrike dele van 'n bedryfstelsel vereis dit. Aan die ander kant bevat die C ++ - taal sleutelwoorde wat ander volledige SO vereis om te werk.
Om 'n bedryfstelsel saam te stel met die C- of C ++ - kode, gebruik u natuurlik die een of ander samesteller. Daarom is dit 'n goeie idee om die gebruikersgids/handleiding/dokumentasie vir die C/C ++ samesteller van u keuse te raadpleeg, hetsy dit in die sagteware is of op die verspreider se webwerf. U moet baie ingewikkelde dinge oor die samesteller weet, en vir C ++ - ontwikkeling moet u weet oor die samesteller van die samesteller en die ABI daarvan. Daar word van u verwag om die verskillende uitvoerbare formate (ELF, PE, COFF, basic binary, ens.) Te verstaan en te verstaan dat die eksklusiewe Windows -formaat, PE (.exe), kopiereg beskerm is
Stap 8. Definieer u toepassingsprogrammeerkoppelvlak (API)
Een goeie API om uit te kies, is POSIX, aangesien dit goed gedokumenteer is. Alle Unix -stelsels het ten minste gedeeltelike ondersteuning vir POSIX. Om Unix -programme aan u bedryfstelsel te koppel, moet dus maklik wees.
Stap 9. Besluit oor u ontwerp
Daar bestaan iets soos 'n monolitiese pit en 'n mikropit. Monolitiese pitte implementeer alle dienste in die kern, terwyl mikropitte klein pitte bevat wat saam met gebruikers -demoon -ontplooiingsdienste saamgevoeg word. Oor die algemeen is monolitiese pitte vinniger, maar mikrokernels het beter isolasie en betroubaarheid van foute.
Stap 10. Oorweeg om in 'n span te ontwikkel en saam te werk
Op hierdie manier neem dit minder tyd om meer probleme op te los, wat waarskynlik die bou van 'n beter bedryfstelsel sal versnel.
Stap 11. Moenie jou hardeskyf heeltemal uitvee nie
Onthou dat die verwydering van 'n skyf alle data onomkeerbaar uitvee! Gebruik GRUB of 'n ander opstartbestuurder om u stelsel dubbel te begin met 'n ander bedryfstelsel totdat u bedryfstelsel volledig funksioneer.
Stap 12. Begin klein
Begin met klein dingetjies, soos om teks te vertoon, en stop eers voordat u na dinge soos geheue bestuur en saamgestelde werk gaan. Maak ook seker dat u die 32 bis en 64 bit weergawes maak.
Stap 13. Hou 'n rugsteun van die laaste werkende bronkode
Hierdie stap is handig as 'n voorsorgmaatreël as daar iets verkeerd loop met die huidige weergawe van SO of ontwikkeling. As u rekenaar vasval en nie begin nie, is dit 'n goeie idee om 'n tweede kopie te hê waarmee u kan werk, sodat u die probleem kan oplos.
Stap 14. Oorweeg dit om u nuwe bedryfstelsel met 'n virtuele masjien te toets
In plaas daarvan om u rekenaar te herlaai elke keer as u veranderings aanbring of nadat u lêers van u ontwikkelingsrekenaar na u toetsmasjien gestuur het, kan u 'n virtuele masjien -toepassing gebruik om u bedryfstelsel uit te voer terwyl u huidige bedryfstelsel werk. Huidige VM -toepassings sluit in: VMWare (wat ook 'n bedienerproduk gratis beskikbaar het), open source -alternatiewe, Bochs, Microsoft Virtual PC (nie versoenbaar met Linux nie) en Oracle VirtualBox.
Stap 15. Begin die "vrystellingskandidaat" of Beta -weergawe
Met hierdie stap kan die gebruiker u in kennis stel van moontlike probleme met u bedryfstelsel.
Stap 16. Die bedryfstelsel moet ook gebruikersvriendelik wees
Maak seker dat u gebruikersvriendelike funksies byvoeg, maak dit 'n integrale deel van u ontwerp.
Wenke
- Kyk of daar moontlike blokke en ander foute is. Bugs, blokke en ander probleme beïnvloed die bouprojek van u bedryfstelsel.
- Maak seker dat u sekuriteitsfunksies as 'n topprioriteit implementeer as u wil hê dat die stelsel behoorlik moet werk.
- Gebruik webwerwe soos OSDev en OSDever om u te help om u eie bedryfstelsel te ontwikkel. Let asseblief daarop dat die OSDev.org -gemeenskap vir die meeste doeleindes meer as gelukkig is as u hul wiki gebruik en nie by die forum aansluit nie. As u besluit om by 'n forum aan te sluit, is daar 'n voorwaarde: u moet regtig weet van C of C ++ en die x86 -monteringstaal. U moet ook algemene en komplekse programmeringskonsepte verstaan, soos gekoppelde lyste, toue, ens. Die OSDev -gemeenskap sê in sy regulasies uitdruklik dat die gemeenskap nie geskep is om nuwe programmeerders te voed nie.
- Moenie aansluit nie met die OSDev.org -forum en stel dan die voor die hand liggende vraag. U sal slegs gevra word om die gids te lees. Lees Wikipedia en die instruksies vir die toerusting wat u wil gebruik.
- As u 'n bedryfstelsel probeer ontwikkel, word u beslis beskou as die 'god' van programmering.
- U moes ook die verwerkershandleiding vir die verwerkerargitektuur gelees het; of x86 (Intel), ARM, MIPS, PPC, ens. Handleidings vir verwerkerargitekture is maklik om te vind met behulp van 'n Google -soektog ("Intel -handleiding", "ARM -handleiding", ens.).
- Sodra al die ontwikkelingswerk voltooi is, besluit of u die kode as oop kode wil vrystel, of outeursreg.
- Moenie begin nie 'n bedryfstelselprojek om programmering te begin leer. As u nie van binne en buite weet van C, C ++, Pascal of 'n ander geskikte taal nie, insluitend wyser manipulasie, lae vlak bit manipulasie, bit shifting, inline assemblage tale, ens., Is u nie gereed vir die bedryfstelsel nie ontwikkeling.
- Dit kan 'n goeie opsie wees om 'n heeltemal nuwe partisie te skep om SO te 'uitbrei'.
- As u 'n maklike manier wil hê, oorweeg Linux distros soos Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD, of SUSE Studio en SUSE KIWI. Die bedryfstelsel wat u skep, behoort egter aan die onderneming wat die diens eers begin het (alhoewel u die reg het om dit vrylik te versprei, aan te pas en uit te voer soos u wil onder die GPL).
Waarskuwing
- U kry nie binne twee weke 'n volledige bedryfstelsel nie. Begin met 'n opstartbare SO, en gaan dan na koeler dinge.
- As u u bedryfstelsel op 'n hardeskyf sorgeloos skryf, kan dit heeltemal beskadig word. Wees versigtig.
- As u iets doen wat nie aanbeveel word nie, soos om ewekansige grepe op ewekansige I/O -poorte te skryf, val u bedryfstelsel neer en (in teorie) kan u hardeware skroei.
- Moenie verwag dat die bedryfstelsel maklik is om te bou nie. Daar is baie ingewikkelde interafhanklikes. Byvoorbeeld, om 'n bedryfstelsel te skep wat verskeie verwerkers kan hanteer, moet u Memory Manager 'n 'sluitmeganisme' hê om te voorkom dat verskeie verwerkers toegang tot dieselfde hulpbron op dieselfde tyd het. Die 'slot' wat hiervoor gebruik word, sal 'n skeduleerder vereis om te verseker dat slegs een verwerker op 'n gegewe tydstip toegang tot kritieke hulpbronne het en dat alle ander moet wag. Die skeduleerder hang eintlik af van die teenwoordigheid van die geheue -bestuurder. Dit is 'n voorbeeld van 'n doodloopstraatafhanklikheid. Daar is geen standaard manier om hierdie probleem op te los nie; Daar word verwag dat elke programmeerder van die bedryfstelsel vaardig genoeg is om sy eie manier om dit te hanteer, te ken.
Bykomende hulpbronne
- Riglyne: Linux From Scratch
- Bootlaaier: GRUB
- Virtuele masjien -toepassings: Bochs, VM Ware, XM Virtual Box.
- Verwerkerhandleiding: Intel -handleiding
- SO -ontwikkelingswebwerwe: OSDev, OSDever