Operacinė sistema leidžia vartotojui sąveikauti su kompiuterio aparatine įranga. Sistemą sudaro šimtai tūkstančių kodo eilučių. Paprastai operacinė sistema kuriama naudojant C#, C, C ++ ir surinkimo programavimo kalbas. Operacinė sistema leidžia naršyti kompiuteryje, išsaugojant ir vykdant komandas. Nemanykite, kad sukurti operacinę sistemą yra lengva. Tam reikia daug žinių.
Žingsnis
1 žingsnis. Pirmiausia sužinokite apie programavimą
Asamblėjos kalba yra labai svarbi; labai rekomenduojama išmokti kitą papildomą aukšto lygio kalbą, pvz., C kalbą.
Žingsnis 2. Nuspręskite, kokią laikmeną norite naudoti OS įkelti
Ši laikmena gali būti kompaktinių diskų įrenginys, DVD įrenginys, „flash“įrenginys, kietasis diskas, diskelis ar kitas kompiuteris.
3 žingsnis. Apibrėžkite pagrindinę SO idėją
Pavyzdžiui, „Windows“pagrindinė idėja yra paprasta naudoti GUI ir daug saugumo.
Žingsnis 4. Nustatykite, kokią procesoriaus platformą palaikys jūsų operacinė sistema
IA-32, ARM ir x86_64 yra labiausiai paplitusios asmeninių kompiuterių platformos. Taigi, visi jie yra geriausias jūsų pasirinkimas.
5 žingsnis. Nuspręskite, ar norite viską daryti patys, ar jau yra branduolys, kurį norite kurti
Pavyzdžiui, „Linux“nuo nulio yra projektas žmonėms, norintiems sukurti savo „Linux“distribuciją.
Žingsnis 6. Nuspręskite, ar naudosite savo įkrovos įkroviklį, ar iš anksto sukurtą, pvz., „Grand Unified Bootloader“(GRUB)
Norint pačiam koduoti įkrovos tvarkyklę, reikės išsamių techninės įrangos ir BIOS žinių. Dėl to šis žingsnis gali trukdyti realiam branduolio programavimo grafikui.
Žingsnis 7. Nuspręskite, kokią programavimo kalbą naudoti
Gerai turėti operacinę sistemą tokia kalba kaip Pascal arba BASIC, tačiau turėtumėte naudoti C arba Assembly. Surinkimas yra labai reikalingas, nes tam reikalingos kai kurios svarbios operacinės sistemos dalys. Kita vertus, C ++ kalboje yra raktinių žodžių, kuriems paleisti reikalingas visas SO.
Norėdami sudaryti operacinę sistemą iš C arba C ++ kodo, žinoma, naudosite vieną ar kitą kompiliatorių. Todėl verta perskaityti pasirinkto C/C ++ kompiliatoriaus vartotojo vadovą/vadovą/dokumentaciją, nesvarbu, ar ji įtraukta į programinę įrangą, ar prieinama platintojo svetainėje. Turite žinoti daug sudėtingų dalykų apie kompiliatorių ir, norint plėtoti C ++, turite žinoti apie kompiliatoriaus manipuliavimo schemą ir jos ABI. Tikimasi, kad suprasite įvairius vykdomuosius formatus (ELF, PE, COFF, pagrindinį dvejetainį failą ir tt) ir suprasite, kad išskirtinis „Windows“formatas PE (.exe) yra apsaugotas autorių teisių
Žingsnis 8. Apibrėžkite savo programų programavimo sąsają (API)
Viena iš tinkamų API yra POSIX, nes ji yra gerai dokumentuota. Visos „Unix“sistemos turi bent dalinį „POSIX“palaikymą. Taigi „Unix“programų prijungimas prie OS turėtų būti lengvas.
Žingsnis 9. Nuspręskite dėl savo dizaino
Yra toks dalykas kaip monolitinis branduolys ir mikro branduolys. Monolitiniai branduoliai įgyvendina visas branduolio paslaugas, o mikro branduoliai turi mažus branduolius, sujungtus su vartotojo demonų diegimo paslaugomis. Apskritai, monolitiniai branduoliai yra greitesni, tačiau mikro branduoliai turi geresnę gedimų izoliaciją ir patikimumą.
Žingsnis 10. Apsvarstykite galimybę tobulėti ir dirbti komandoje
Tokiu būdu reikia mažiau laiko išspręsti daugiau problemų, o tai greičiausiai paspartins geresnės OS kūrimą.
11. Nevalykite kietojo disko iki galo
Atminkite, kad ištrynus diską bus negrįžtamai ištrinti visi jame esantys duomenys! Naudokite GRUB arba kitą įkrovos tvarkyklę, kad du kartus paleistumėte sistemą naudodami kitą OS, kol OS visiškai funkcionuos.
Žingsnis 12. Pradėkite nuo mažo
Pradėkite nuo mažų dalykų, tokių kaip teksto rodymas, ir pristabdykite, prieš pereidami prie tokių dalykų kaip atminties valdymas ir sudėtingas darbas. Taip pat įsitikinkite, kad sukūrėte 32 bitų ir 64 bitų versijas.
Žingsnis 13. Išsaugokite paskutinio veikiančio šaltinio kodo atsarginę kopiją
Šis žingsnis yra naudingas kaip apsauga, jei kas nors negerai su dabartine SO versija ar kūrimu. Jei kompiuteris sugenda ir neįsijungia, patartina turėti antrą egzempliorių, kad galėtumėte išspręsti problemą.
Žingsnis 14. Apsvarstykite galimybę išbandyti naują operacinę sistemą naudodami virtualią mašiną
Vietoj to, kad iš naujo paleistumėte kompiuterį kiekvieną kartą atlikdami pakeitimus arba išsiuntę failus iš savo kūrimo kompiuterio į bandomąją mašiną, galite naudoti virtualios mašinos programą, kad paleistumėte savo OS, kol veikia dabartinė OS. Dabartinės VM programos yra: „VMWare“(kuri taip pat turi nemokamą serverio produktą), atvirojo kodo alternatyvos, „Boch“, „Microsoft Virtual PC“(nesuderinama su „Linux“) ir „Oracle VirtualBox“.
Žingsnis 15. Paleiskite „kandidatą į leidimą“arba beta versiją
Šis veiksmas leis vartotojui pranešti apie galimas jūsų operacinės sistemos problemas.
Žingsnis 16. Operacinė sistema taip pat turėtų būti patogi vartotojui
Įsitikinkite, kad pridėjote patogias funkcijas, kad jos taptų neatskiriama jūsų dizaino dalimi.
Patarimai
- Patikrinkite galimas aklavietes ir kitas klaidas. Klaidos, aklavietės ir kitos problemos paveiks jūsų operacinės sistemos kūrimo projektą.
- Jei norite, kad sistema veiktų tinkamai, būtinai įgyvendinkite saugos funkcijas.
- Norėdami sukurti savo operacinę sistemą, naudokite tokias svetaines kaip OSDev ir OSDever. Prašome atkreipti dėmesį, kad daugeliu tikslų OSDev.org bendruomenė bus labai laiminga, jei naudosite jų wiki, o ne prisijungsite prie forumo. Jei nuspręsite prisijungti prie forumo, yra išankstinė sąlyga: turite tikrai žinoti apie C arba C ++ ir x86 surinkimo kalbą. Taip pat turėtumėte suprasti bendras ir sudėtingas programavimo sąvokas, tokias kaip susieti sąrašai, eilės ir kt. OSDev bendruomenė savo nuostatuose aiškiai nurodo, kad jos bendruomenė nėra sukurta tam, kad ugdytų naujus programuotojus.
- Neprisijunk su OSDev.org forumu ir tada užduoti akivaizdų klausimą. Jūsų bus paprašyta perskaityti tik vadovą. Perskaitykite Vikipediją ir bet kokios įrangos, kurią norite naudoti, instrukcijas.
- Jei bandote sukurti operacinę sistemą, tikrai esate laikomas programavimo „dievu“.
- Taip pat turėtumėte perskaityti jūsų pasirinktos procesoriaus architektūros procesoriaus vadovą; ar x86 („Intel“), ARM, MIPS, PPC ir kt. Procesorių architektūros vadovus lengva rasti naudojant „Google“paiešką („Intel“vadovas, „ARM vadovas“ir kt.).
- Kai visi kūrimo darbai bus baigti, nuspręskite, ar norite išleisti kodą kaip atvirą kodą, ar autorių teises.
- Nepradėkite operacinės sistemos projektas, skirtas pradėti mokytis programavimo. Jei iš vidaus ir išorės nežinote apie C, C ++, Pascal ar kitą tinkamą kalbą, įskaitant manipuliavimą rodyklėmis, žemo lygio bitų manipuliavimą, bitų perkėlimą, įterptąsias surinkimo kalbas ir kt., Nesate pasiruošę operacinei sistemai plėtrai.
- Sukurti visiškai naują skaidinį „išplėsti“SO gali būti geras pasirinkimas.
- Jei norite lengvo būdo, apsvarstykite „Linux“distribucijas, tokias kaip „Fedora Revisor“, „Custom Nimble X“, „Puppy Remaster“, „PCLinuxOS Mk LiveCD“arba „SUSE Studio“ir „SUSE KIWI“. Tačiau jūsų sukurta operacinė sistema priklauso įmonei, kuri pirmą kartą pradėjo paslaugą (nors jūs turite teisę laisvai ją platinti, keisti ir paleisti pagal GPL).
Įspėjimas
- Per dvi savaites negausite visos operacinės sistemos. Pradėkite nuo įkrovos SO, tada pereikite prie vėsesnių dalykų.
- Atsargiai įrašę operacinę sistemą į kietąjį diską galite ją visiškai sugadinti. Būk atsargus.
- Jei darote tai, kas nerekomenduojama, pvz., Rašote atsitiktinius baitus į atsitiktinius įvesties/išvesties prievadus, sužlugdysite savo OS ir (teoriškai) galite sudeginti aparatūrą.
- Nesitikėkite, kad operacinę sistemą lengva sukurti. Yra daug sudėtingų tarpusavio priklausomybių. Pavyzdžiui, norėdami sukurti operacinę sistemą, galinčią valdyti kelis procesorius, jūsų atminties tvarkyklė turi turėti „užrakinimo“mechanizmą, kuris neleistų keliems procesoriams vienu metu pasiekti to paties ištekliaus. Tam naudojamas „užraktas“reikalautų, kad planuotojas užtikrintų, jog tik vienas procesorius bet kuriuo metu pasiektų svarbiausius išteklius, o visi kiti turėtų palaukti. Tiesą sakant, planuotojas priklauso nuo atminties tvarkyklės buvimo. Tai yra aklavietės priklausomybės pavyzdys. Nėra standartinio šios problemos sprendimo būdo; Tikimasi, kad kiekvienas operacinės sistemos programuotojas bus pakankamai kvalifikuotas, kad žinotų savo būdą, kaip su juo elgtis.
Papildomi resursai
- Gairės: „Linux From Scratch“
- Bootloader: GRUB
- Virtualios mašinos programos: „Bochs“, „VM Ware“, „XM Virtual Box“.
- Procesoriaus vadovas: „Intel“vadovas
- SO kūrimo svetainės: OSDev, OSDever