Operatsioonisüsteem võimaldab kasutajal suhelda arvuti riistvaraga. Süsteem koosneb sadadest tuhandetest koodiridadest. Tavaliselt tehakse operatsioonisüsteem C#, C, C ++ ja koost programmeerimiskeeli kasutades. Operatsioonisüsteem võimaldab käskude salvestamise ja täitmise ajal oma arvutit sirvida. Ärge arvake, et operatsioonisüsteemi loomine on lihtne. Selle valmistamiseks on vaja palju teadmisi.
Samm
Samm 1. Kõigepealt õppige programmeerimist tundma
Assamblee keel on väga oluline; on väga soovitatav õppida teine kõrgetasemeline keel, näiteks C keel.
Samm 2. Otsustage, millist meediumit soovite OS -i laadimiseks kasutada
See meedia võib olla CD -draiv, DVD -draiv, mälupulk, kõvaketas, disketi või muu arvuti.
Samm 3. Määratlege vastuväite põhiidee
Näiteks Windowsi põhiidee on hõlpsasti kasutatav GUI ja palju turvalisust.
Samm 4. Tehke kindlaks, millist protsessoriplatvormi teie opsüsteem toetab
IA-32, ARM ja x86_64 on personaalarvutite jaoks kõige levinumad platvormid. Niisiis, kõik need on teie parim valik.
Samm 5. Otsustage, kas eelistate teha kõike ise nullist või on juba saadaval kernel, millele soovite tugineda
Näiteks Linux nullist on projekt inimestele, kes soovivad luua oma Linuxi distributsiooni.
Samm 6. Otsustage, kas kasutate oma alglaadurit või eelnevalt ehitatud laadijat, näiteks Grand Unified Bootloader (GRUB)
Alglaaduri enda kodeerimine nõuab põhjalikke teadmisi riistvara ja BIOS -i kohta. Selle tulemusena võib see samm takistada kerneli tegelikku ajakava.
Samm 7. Otsustage, millist programmeerimiskeelt kasutada
Hea, kui teil on opsüsteem keeles, nagu Pascal või BASIC, kuid peaksite kasutama C või Assembly. Kokkupanek on väga vajalik, sest mõned olulised operatsioonisüsteemi osad nõuavad seda. Teisest küljest sisaldab C ++ keel märksõnu, mille käitamiseks on vaja muud täielikku SO -d.
Operatsioonisüsteemi kompileerimiseks C- või C ++ -koodist kasutate muidugi üht või teist kompilaatorit. Seetõttu on hea mõte tutvuda teie valitud C/C ++ kompilaatori kasutusjuhendiga/juhendiga/dokumentatsiooniga, olenemata sellest, kas see sisaldub tarkvaras või on saadaval turustaja veebisaidil. Peate teadma kompilaatori kohta palju keerulisi asju ja C ++ arendamiseks peate teadma kompilaatori manipuleerimisskeemi ja selle ABI -d. Peate mõistma erinevaid käivitatavaid vorminguid (ELF, PE, COFF, põhiline binaar jne) ja mõistma, et eksklusiivne Windowsi vorming PE (.exe) on autoriõigusega kaitstud
Samm 8. Määratlege oma rakenduste programmeerimisliides (API)
Üks hea API, millest valida, on POSIX, kuna see on hästi dokumenteeritud. Kõik Unixi süsteemid toetavad POSIX -i vähemalt osaliselt. Seega peaks Unixi programmide ühendamine oma operatsioonisüsteemiga olema lihtne.
Samm 9. Otsustage oma disaini üle
On olemas selline asi nagu monoliitne kernel ja mikro tuum. Monoliitsed tuumad rakendavad kernelis kõiki teenuseid, mikrotuumadel aga väikesed tuumad, mis on komplekteeritud kasutaja deemonite juurutamisteenustega. Üldiselt on monoliitsed tuumad kiiremad, kuid mikrotuumadel on parem vigade eraldamine ja töökindlus.
Samm 10. Kaaluge meeskonnas arendamist ja töötamist
Nii kulub vähem aega rohkemate probleemide lahendamiseks, mis tõenäoliselt kiirendab parema operatsioonisüsteemi loomist.
Samm 11. Ärge pühkige kõvaketast täielikult
Pidage meeles, et draivi kustutamine kustutab kõik sellel olevad andmed pöördumatult! Kasutage GRUB -i või mõnda muud alglaadimishaldurit, et süsteem teise OS -iga topeltkäivitada, kuni teie operatsioonisüsteem on täielikult töökorras.
Samm 12. Alustage väikesest
Alustage väikeste asjadega, nagu teksti kuvamine, ja tehke paus, enne kui jätkate selliste asjadega nagu mäluhaldus ja kombineeritud töö. Samuti veenduge, et teete 32- ja 64 -bitised versioonid.
Samm 13. Hoidke viimase töötava lähtekoodi varukoopia
See samm on kasulik kaitseks juhuks, kui SO või arenduse praeguse versiooniga läheb midagi valesti. Kui teie arvuti jookseb kokku ja ei käivitu, on hea mõte hankida teine koopia, millega saaksite probleemi lahendada.
Samm 14. Kaaluge oma uue operatsioonisüsteemi testimist virtuaalse masinaga
Selle asemel, et arvuti iga kord muudatuste tegemisel või pärast arendusarvutist testmasinasse failide saatmist taaskäivitada, saate oma praeguse operatsioonisüsteemi töötamise ajal oma OS -i käivitamiseks kasutada virtuaalse masina rakendust. Praeguste VM -i rakenduste hulka kuuluvad: VMWare (millel on ka tasuta saadaval serveritoode), avatud lähtekoodiga alternatiivid, Bochs, Microsoft Virtual PC (ei ühildu Linuxiga) ja Oracle VirtualBox.
Samm 15. Käivitage "väljalaskekandidaat" või beetaversioon
See samm võimaldab kasutajal teavitada teid teie opsüsteemi võimalikest probleemidest.
Samm 16. Samuti peaks opsüsteem olema kasutajasõbralik
Lisage kindlasti kasutajasõbralikke funktsioone, muutke need oma disaini lahutamatuks osaks.
Näpunäiteid
- Kontrollige võimalikke ummikseise ja muid vigu. Vead, ummikseisud ja muud probleemid mõjutavad teie operatsioonisüsteemi loomise projekti.
- Veenduge, et rakendate turvaelementide esmatähtsaks prioriteediks, kui soovite, et süsteem töötaks korralikult.
- Kasutage oma operatsioonisüsteemi arendamiseks selliseid veebisaite nagu OSDev ja OSDever. Palun pange tähele, et enamikul eesmärkidel on OSDev.org kogukond rohkem kui õnnelik, kui kasutate nende wiki ja ei liitu foorumiga. Kui otsustate foorumiga liituda, on eeltingimus: peate tõesti teadma C või C ++ ja x86 koostamiskeelt. Samuti peaksite mõistma üldisi ja keerukaid programmeerimiskontseptsioone, nagu lingitud loendid, järjekorrad jne. OSDev kogukond ütleb oma määrustes selgesõnaliselt, et selle kogukond ei ole loodud uute programmeerijate kasvatamiseks.
- Ära liitu foorumiga OSDev.org ja esitage siis ilmne küsimus. Teil palutakse ainult juhendit lugeda. Lugege Vikipeediat ja juhiseid mis tahes seadme kohta, mida soovite kasutada.
- Kui proovite arendada operatsioonisüsteemi, peetakse teid kindlasti programmeerimise "jumalaks".
- Samuti oleksite pidanud lugema teie valitud protsessori arhitektuuri protsessori käsiraamatut; kas x86 (Intel), ARM, MIPS, PPC jne Protsessori arhitektuuride käsiraamatud on Google'i otsingu abil hõlpsasti leitavad ("Inteli käsiraamat", "ARM -i käsiraamat" jne).
- Kui kõik arendustööd on lõpule jõudnud, otsustage, kas soovite koodi vabastada avatud koodina või autoriõiguse alusel.
- Ärge alustage operatsioonisüsteemi projekt programmeerimise õppimise alustamiseks. Kui te ei tea seest ja väljast C, C ++, Pascali või mõnda muud sobivat keelt, sealhulgas kursori manipuleerimist, madala taseme bittide manipuleerimist, bittide nihutamist, sisestuskeeli jne, pole te operatsioonisüsteemiks valmis arengut.
- Täiesti uue sektsiooni loomine SO laiendamiseks võib olla hea valik.
- Kui soovite lihtsat viisi, kaaluge Linuxi distributsioone, nagu Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD või SUSE Studio ja SUSE KIWI. Teie loodud operatsioonisüsteem kuulub aga ettevõttele, kes teenuse esimesena alustas (kuigi teil on GPL -i alusel õigus seda vabalt levitada, muuta ja käitada).
Hoiatus
- Te ei saa täielikku operatsioonisüsteemi kahe nädala jooksul. Alustage käivitatava SO -ga, seejärel liikuge jahedamate asjade juurde.
- Kui kirjutate oma operatsioonisüsteemi hooletult kõvakettale, võite selle täielikult kahjustada. Ole ettevaatlik.
- Kui teete midagi, mida ei soovitata, näiteks kirjutate juhuslikke baite juhuslikele I/O -portidele, kukute oma OS -i kokku ja (teoreetiliselt) võite riistvara kõrvetada.
- Ärge oodake, et operatsioonisüsteemi on lihtne üles ehitada. On palju keerulisi vastastikuseid sõltuvusi. Näiteks mitme protsessori haldamiseks võimelise operatsioonisüsteemi loomiseks peab teie mäluhalduril olema lukustusmehhanism, mis takistab mitme protsessori juurdepääsu samale ressursile korraga. Selleks kasutatav "lukk" nõuaks ajakava, et tagada, et ainult üks protsessor pääseks igal ajal kriitilistele ressurssidele juurde ja kõik teised peavad ootama. Tegelikult sõltub ajakava mäluhalduri olemasolust. See on näide ummikseisust. Sellise probleemi lahendamiseks pole standardset viisi; eeldatakse, et iga operatsioonisüsteemi programmeerija on piisavalt osav, et ta teaks, kuidas sellega toime tulla.
Lisaressursid
- Juhised: Linux alates nullist
- Bootloader: GRUB
- Virtuaalmasinate rakendused: Bochs, VM Ware, XM Virtual Box.
- Protsessori käsiraamat: Inteli käsiraamat
- SO arendusaidid: OSDev, OSDever