















Kyk vir moontlike dooiepunte en ander foute. Foute, dooiepunte en ander probleme sal in jou bedryfstelselprojek begin verskyn. As jy ooit wil hê jou stelsel moet lewensvatbaar wees, maak seker dat jy sekuriteitskenmerke as jou topprioriteit implementeer. Met webwerwe soos OSDev en OSDever kan jy jou eie bedryfstelsel ontwikkel. Let wel: Vir die meeste doeleindes, die OSDev.org-gemeenskap sal eerder dat jy 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 `n deeglike kennis hê van C of C++ en x86 assembler. Jy moet ook algemene en komplekse programmeringskonsepte soos gekoppelde lyste, toue, ens. Die OSDev-gemeenskap sê uitdruklik in sy reëls dat die gemeenskap nie bedoel is om nuwe programmeerders op te pas nie. `Moenie aansluit nie die OSDev.org-forums om onmiddellik daarna duidelike vrae te begin vra. Dit sal bloot 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 `n bedryfstelsel probeer ontwikkel, spreek dit vanself dat daar van jou verwag word om `n programmeringsgod te wees. Jy moet ook die verwerkerhandleidings gelees het vir die verwerkerargitektuur wat jy gekies het; of dit nou x86 (Intel), ARM, MIPS, PPC, ens. is. Verwerker argitektuur tutoriale kan maklik gevind word met `n Google-soektog ("Intel handleidings", "ARM handleidings" ens.). Nadat alle ontwikkeling voltooi is, kan jy besluit of jy die kode wil vrystel as oopbron of eie. Moenie begin nie met `n bedryfstelselprojek om programmering te leer. As jy nie reeds `n deeglike kennis van C, C++, Pascal of enige ander toepaslike taal het nie, insluitend wysermanipulasie, laevlakbismanipulasie, bisverskuiwing, inlynsamestellingstaal, ens., dan is jy regtig nie gereed vir die ontwikkeling van jou eie bedryfstelsel nie. Dit kan wys wees om `n heeltemal nuwe partisie te skep vir die `ontwikkeling` van die OS.
Skep 'n bedryfstelsel
Inhoud
Bedryfstelsels maak dit vir mense moontlik om met `n rekenaar se hardeware om te gaan; hulle bestaan uit honderdduisende reëls kode. Gewoonlik word hulle gemaak met C#, C, C++ en assembler-programmeertale. Bedryfstelsels laat jou toe om `n rekenaar te navigeer, databerging te aktiveer en opdragte uit te voer. Dink nie dit is maklik om `n bedryfstelsel te maak nie. Dit verg baie kennis.
Trappe

1. Leer om te programmeer voordat jy begin. Montering is noodsaaklik en nog `n bykomende hoëvlak-programmeertaal soos C word sterk aanbeveel.

2. Besluit op watter media om jou bedryfstelsel te laai. Dit kan `n CD-aandrywer, DVD-stasie, flash drive, hardeskyf, diskette of enige ander rekenaar wees.

3. Besluit wat die kerngedagte oor die bedryfstelsel is. In Windows, byvoorbeeld, is `n maklik-om-te gebruik GUI en sterk sekuriteit die kerngedagte.

4. Bepaal watter verwerkerplatform jou bedryfstelsel sal ondersteun. IA-32, ARM en x86_64 is die mees algemene argitekture vir persoonlike rekenaars, so dit is jou beste opsie.

5. Besluit of jy dit alles self van nuuts af wil bou, of as daar `n bestaande kern is waarop jy wil bou. Linux From Scratch is `n voorbeeldprojek vir diegene wat hul eie Linux-verspreiding wil bou.

6. Besluit of jy jou eie selflaaiprogram wil gebruik of `n bestaande een, soos Grand Unified Bootloader (GRUB). Aangesien die kodering van jou eie selflaaiprogram uitgebreide kennis van die hardeware en BIOS vereis, kan dit beplanning vir die programmering van die werklike kern vertraag.

7. Besluit watter programmeertaal om te gebruik. Alhoewel dit moontlik is om `n bedryfstelsel in `n taal soos Pascal of BASIC te skep, is jy beter daaraan toe met C of Assembly. Montering is absoluut noodsaaklik aangesien sommige belangrike dele van `n bedryfstelsel dit vereis. C++ aan die ander kant bevat taalelemente wat `n ander volledige bedryfstelsel vereis om te loop.
Om `n bedryfstelsel vanaf C- of C++-kode te kan saamstel, benodig jy natuurlik `n soort samesteller. U moet dus die gebruikersgids/handleidings/dokumentasie vir u gekose C/C++ samesteller lees, hetsy dit saam met die sagteware voorsien is of op die verspreider se webwerf beskikbaar is. Jy sal baie ingewikkelde dinge oor jou samesteller moet weet en, om in C++ te ontwikkel, sal jy kennis moet hê van die samesteller se manglingskema en die ABI. Jy sal die verskillende uitvoerbare formate sien (ELF, PE, COFF, gewone binêre, ens.).), sowel as die feit dat die Windows-inheemse formaat, PE (.exe), is kopieregbeskerm.

8. Besluit watter toepassingsprogrammeringskoppelvlak (API) om te gebruik. `n Goeie API om te kies is POSIX, aangesien dit goed gedokumenteer is. Alle Unix-stelsels het ten minste gedeeltelike ondersteuning vir POSIX, so dit sal triviaal wees om Unix-programme na jou bedryfstelsel oor te dra.

9. Besluit oor die ontwerp. Daar is monolitiese pitte en mikropitte. Monolitiese pitte voer alle dienste in die kern uit, terwyl mikrokernele `n klein kern kombineer met `n gekombineerde gebruiker daemone wat dienste implementeer. Oor die algemeen is monolitiese pitte vinniger, maar mikropitte het beter foutisolasie en betroubaarheid.

10. Oorweeg om te ontwikkel en in `n span te werk. Op hierdie manier is minder tyd nodig om meer probleme op te los, wat `n beter bedryfstelsel vinniger kan produseer.

11. Moenie jou hardeskyf heeltemal uitvee nie. Onthou dat die uitvee van jou skyf alle data onomkeerbaar sal uitvee! Gebruik GRUB of `n ander selflaaibestuurder om `n dubbele selflaai met `n ander bedryfstelsel op te stel totdat jou eie stelsel ten volle funksioneel is.

12. Begin klein. Begin met klein dingetjies soos die vertoon van teks en onderbrekings voordat u aangaan na die groter kwessies soos geheuebestuur en multitasking. Maak ook seker dat jy `n 32-bis en 64-bis weergawe maak.

13. Hou `n rugsteun van jou mees onlangs werkende bronkode. Dit bied `n mate van beskerming ingeval iets verskriklik verkeerd gaan met die huidige weergawe van jou bedryfstelsel of die ontwikkeling daarvan. As jou rekenaar ineenstort en nie meer kan selflaai nie, is dit `n goeie idee om `n tweede kopie te hê om mee te werk sodat jy kan ontfout.

14. Oorweeg dit om jou nuwe bedryfstelsel met `n virtuele masjien te toets. In plaas daarvan om jou rekenaar te herbegin elke keer as jy veranderinge maak, of lêers van jou ontwikkelingsrekenaar na jou toetsmasjien oor te dra, kan jy `n virtuele masjien gebruik om jou bedryfstelsel onder jou huidige bedryfstelsel te laat loop. Sommige van die VM-programme sluit in VMWare (het ook vrylik beskikbare bedienersagteware), die oopbron-alternatiewe Bochs, Microsoft Virtual PC (nie versoenbaar met Linux nie), en Oracle VirtualBox.

15. Stel `n `vrystellingskandidaat` vry.Dit sal gebruikers in staat stel om jou te waarsku oor moontlike probleme met jou bedryfstelsel.

16. `n Bedryfstelsel kan ook gebruikersvriendelik wees, so maak seker dat u gebruikersvriendelike kenmerke byvoeg, wat dit `n integrale deel van u ontwerp maak.
Wenke
Die bedryfstelsel wat jy skep, behoort dan aan die maatskappy wat die diens eerste begin het (al het jy wel die reg op gratis verspreiding, en om dit te verander soos jy wil en dit onder die GPL uit te voer).
Waarskuwings
- Jy sal nie binne twee weke `n volledige bedryfstelsel geskep het nie. Begin met `n bedryfstelsel wat kan selflaai, gaan dan aan na die prettige goed.
- As jy iets so ondeurdag doen soos om ewekansige grepe na ewekansige I/O-poorte te skryf, sal jou bedryfstelsel ineenstort en jy kan (in teorie) jou hardeware beskadig.
- Moenie verwag dat dit maklik sal wees om `n goed funksionerende bedryfstelsel te bou nie. Daar is allerhande ingewikkelde interafhanklikhede. Byvoorbeeld, om `n bedryfstelsel toe te laat om veelvuldige verwerkers te hanteer, sal jy geheuebestuur-`sluitmeganismes` moet gebruik om te verhoed dat veelvuldige verwerkers dieselfde hulpbron/hulpbron op dieselfde tyd gebruik. Die "slotte" wat hiervoor gebruik word, vereis die teenwoordigheid van `n skeduleerder/skeduleerder om te verseker dat slegs een verwerker op enige gegewe tyd toegang tot `n kritieke hulpbron kan kry, met al die ander wat wag. Maar die skeduleerder hang weer af van die teenwoordigheid van `n geheuebestuurder. Dit is `n geval van `n dooie punt afhanklikheid. Daar is geen standaard manier om probleme soos hierdie op te los nie; Daar word van elke bedryfstelselprogrammeerder verwag om vaardig genoeg te wees om hul eie manier te vind om dit te hanteer.
- Onverskillige skryf van jou bedryfstelsel na die hardeskyf kan dit heeltemal beskadig. Wees versigtig.
Benodigdhede
- N rekenaar
- `n SVE vir die argitektuur wat jy sal ontwikkel
- Voldoende geheue (RAM) vir `n virtuele masjien
- `n `Gasheer`-bedryfstelsel (wat gebruik word om die Assembler- (en ander) bronkode te ontwikkel, asook om dit te bou en te verpak terwyl dit nog in sy vroeë stadiums is, uiteindelik kan jou bedryfstelsel homself huisves)
- `n Kleurgekodeerde programmeringsredigeerder (gebruik dit as jy nie `n IDE - Geïntegreerde Ontwikkelingsomgewing het nie)
- `n samesteller
- `n CD/DVD-aandrywer
Artikels oor die onderwerp "Skep 'n bedryfstelsel"
Оцените, пожалуйста статью
Gewilde