Operacijski sustav omogućuje korisniku interakciju s hardverom računala. Sustav se sastoji od stotina tisuća redaka koda. Obično se operacijski sustav izrađuje pomoću programskih jezika C#, C, C ++ i montaže. Operacijski sustav omogućuje vam pregledavanje računala dok spremate i izvršavate naredbe. Nemojte misliti da je stvaranje operacijskog sustava jednostavno. Za izradu je potrebno mnogo znanja.
Korak
Korak 1. Prije svega, naučite o programiranju
Asemblerski jezik je vrlo važan; toplo se preporučuje da naučite neki drugi komplementarni jezik na visokoj razini, poput jezika C.
Korak 2. Odlučite koji medij želite koristiti za učitavanje OS -a
Ovaj medij može biti CD pogon, DVD pogon, flash pogon, tvrdi disk, disketa ili drugo računalo.
Korak 3. Definirajte srž ideje SO
Na primjer, u sustavu Windows osnovna ideja je GUI jednostavan za korištenje i puno sigurnosti.
Korak 4. Odredite koju procesorsku platformu vaš operacijski sustav podržava
IA-32, ARM i x86_64 najčešće su platforme za osobna računala. Dakle, svi su oni vaš najbolji izbor.
Korak 5. Odlučite želite li sve raditi sami od nule ili postoji već dostupno jezgro na kojem biste željeli graditi
Na primjer, Linux od nule projekt je za ljude koji žele izgraditi vlastiti Linux distro.
Korak 6. Odlučite hoćete li koristiti vlastiti boot-loader ili unaprijed izgrađen, poput Grand Unified Bootloader-a (GRUB)
Samo kodiranje pokretačkog programa zahtijevat će veliko znanje o hardveru i BIOS -u. Kao rezultat toga, ovaj korak može ometati stvarni raspored programiranja jezgre.
Korak 7. Odlučite koji ćete programski jezik koristiti
U redu je imati operativni sustav na jeziku poput Pascala ili BASIC -a, ali trebate koristiti C ili Assembly. Sklapanje je vrlo potrebno jer to zahtijevaju neki važni dijelovi operacijskog sustava. S druge strane, jezik C ++ sadrži ključne riječi za čije je izvođenje potreban drugi potpuni SO.
Za sastavljanje operacijskog sustava iz C ili C ++ koda, naravno da ćete koristiti jedan ili drugi prevoditelj. Stoga je dobra ideja konzultirati korisnički priručnik/priručnik/dokumentaciju za C/C ++ prevoditelj po vašem izboru, bilo da je uključen u softver ili dostupan na web stranici distributera. Morate znati mnogo kompliciranih stvari o prevoditelju, a za razvoj C ++ morate znati o shemi upravljanja kompajlerom i njegovom ABI -ju. Od vas se očekuje da razumijete različite izvršne formate (ELF, PE, COFF, osnovni binarni itd.) I shvatite da je ekskluzivni Windows format, PE (.exe) zaštićen autorskim pravima
Korak 8. Definirajte svoje aplikacijsko sučelje za programiranje (API)
Jedan dobar API za odabir je POSIX jer je dobro dokumentiran. Svi Unix sustavi imaju barem djelomičnu podršku za POSIX. Stoga bi povezivanje Unix programa s vašim OS -om trebalo biti jednostavno.
Korak 9. Odlučite se o svom dizajnu
Postoji nešto poput monolitne jezgre i mikro jezgre. Monolitne jezgre implementiraju sve usluge u jezgri, dok mikro jezgre imaju male jezgre u paketu sa uslugama implementacije demona korisnika. Općenito, monolitna jezgra su brža, ali mikro jezgre imaju bolju izolaciju grešaka i pouzdanost.
Korak 10. Razmislite o razvoju i radu u timu
Na taj način potrebno je manje vremena za rješavanje više problema, što će vjerojatno ubrzati izgradnju boljeg OS -a.
Korak 11. Nemojte potpuno izbrisati tvrdi disk
Zapamtite, brisanjem pogona nepovratno će se izbrisati svi podaci na njemu! Upotrijebite GRUB ili neki drugi upravitelj pokretanja za dvostruko podizanje sustava s drugim OS -om sve dok vaš OS ne bude potpuno funkcionalan.
Korak 12. Počnite s malim
Počnite s malim stvarima poput prikaza teksta i zastanite prije nego prijeđete na stvari poput upravljanja memorijom i složenog rada. Također napravite 32 -bitnu i 64 -bitnu verziju.
Korak 13. Čuvajte sigurnosnu kopiju posljednjeg radnog izvornog koda
Ovaj je korak koristan kao zaštita u slučaju da nešto pođe po zlu s trenutnom verzijom SO -a ili razvojem. Ako se vaše računalo ruši i ne pokreće se, dobro je imati drugu kopiju za rad kako biste riješili problem.
Korak 14. Razmislite o testiranju vašeg novog operacijskog sustava s virtualnim strojem
Umjesto ponovnog pokretanja računala svaki put kada unesete promjene ili nakon slanja datoteka s razvojnog računala na testni stroj, možete koristiti aplikaciju virtualnog stroja za pokretanje vašeg OS -a dok je vaš trenutni OS pokrenut. Trenutne aplikacije za VM uključuju: VMWare (koji također ima besplatan poslužiteljski proizvod), alternative otvorenog koda, Bochs, Microsoft Virtual PC (nije kompatibilan s Linuxom) i Oracle VirtualBox.
Korak 15. Pokrenite "kandidaturu za izdanje" ili beta verziju
Ovaj korak će omogućiti korisniku da vas obavijesti o potencijalnim problemima s vašim operativnim sustavom.
Korak 16. Operacijski sustav također bi trebao biti prilagođen korisniku
Dodajte značajke prilagođene korisniku, neka budu sastavni dio vašeg dizajna.
Savjeti
- Provjerite ima li zastoja i drugih grešaka. Greške, zastoji i druga pitanja utjecati će na vaš projekt izgradnje operacijskog sustava.
- Provedite sigurnosne značajke kao najveći prioritet ako želite da sustav radi ispravno.
- Koristite web stranice poput OSDev i OSDever kako biste lakše razvili vlastiti operativni sustav. Molimo imajte na umu da će u većini svrha zajednica OSDev.org biti više nego sretna ako koristite njihovu wiki, a ne pridružite se forumu. Ako se odlučite pridružiti forumu, postoji preduvjet: morate stvarno znati o C ili C ++ i asemblerskom jeziku x86. Također biste trebali razumjeti opće i složene programske koncepte kao što su povezani popisi, redovi čekanja itd. Zajednica OSDev -a u svojim propisima izričito navodi da njezina zajednica nije stvorena za njegovanje novih programera.
- Ne pridružujte se s OSDev.org forumom, a zatim postavite očito pitanje. Od vas će se tražiti samo da pročitate vodič. Pročitajte Wikipedia i upute za bilo koju opremu koju želite koristiti.
- Ako pokušavate razviti operacijski sustav, definitivno vas smatraju "bogom" programiranja.
- Također ste trebali pročitati priručnik za procesor za arhitekturu procesora koju ste odabrali; da li x86 (Intel), ARM, MIPS, PPC itd. Priručnike za arhitekture procesora lako je pronaći pomoću Google pretraživanja ("Intel priručnik", "ARM priručnik" itd.).
- Nakon što su svi razvojni radovi dovršeni, odlučite želite li kôd objaviti kao otvoreni kôd ili prema autorskim pravima.
- Ne počinji projekt operacijskog sustava za početak učenja programiranja. Ako ne poznajete iznutra i izvana C, C ++, Pascal ili neki drugi prikladan jezik, uključujući manipulaciju pokazivačem, bitnu manipulaciju na niskoj razini, pomak bitova, ugrađene asemblerske jezike itd., Niste spremni za operacijski sustav razvoj.
- Stvaranje potpuno nove particije za 'proširenje' SO moglo bi biti dobra opcija.
- Ako želite jednostavan način, razmislite o Linux distribucijama kao što su Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD ili SUSE Studio i SUSE KIWI. Međutim, operativni sustav koji stvorite pripada tvrtki koja je prva pokrenula uslugu (iako imate pravo slobodno ga distribuirati, mijenjati i pokretati prema želji prema GPL -u).
Upozorenje
- Nećete dobiti potpuni operativni sustav u roku od dva tjedna. Počnite s SO -om za pokretanje, a zatim prijeđite na hladnije stvari.
- Bezbrižno upisivanje operacijskog sustava na tvrdi disk može ga potpuno oštetiti. Budi oprezan.
- Ako učinite nešto što se ne preporučuje, na primjer upisujete nasumične bajtove na slučajne I/O portove, srušit ćete svoj OS i (u teoriji) bi mogli opeći vaš hardver.
- Ne očekujte da će se operacijski sustav lako izgraditi. Postoji mnogo kompliciranih međuovisnosti. Na primjer, za stvaranje operacijskog sustava sposobnog za rukovanje s više procesora, vaš Upravitelj memorije mora imati mehanizam "zaključavanja" kako bi spriječio više procesora da istovremeno pristupaju istom resursu. "Zaključavanje" koje se koristi za to zahtijevalo bi planer kako bi se osiguralo da samo jedan procesor pristupa kritičnim resursima u bilo kojem trenutku, a svi drugi moraju čekati. Zapravo, raspoređivač ovisi o prisutnosti Upravitelja memorije. Ovo je primjer ovisnosti o slijepoj ulici. Ne postoji standardni način rješavanja ove vrste problema; od svakog programera operacijskog sustava očekuje se da bude dovoljno vješt da zna svoj način rješavanja.
Dodatna sredstva
- Smjernice: Linux od nule
- Bootloader: GRUB
- Primjene virtualnih strojeva: Bochs, VM Ware, XM Virtual Box.
- Priručnik za procesor: Intel priručnik
- SO razvojna mjesta: OSDev, OSDever