Operačný systém umožňuje užívateľovi interakciu s hardvérom počítača. Systém sa skladá zo stoviek tisíc riadkov kódu. Operačný systém sa zvyčajne vytvára v programovacích jazykoch C#, C, C ++ a assembler. Operačný systém vám umožňuje prehliadať počítač a ukladať a vykonávať príkazy. Nemyslite si, že vytvorenie operačného systému je jednoduché. Na jeho výrobu je potrebných veľa znalostí.
Krok
Krok 1. V prvom rade sa zoznámte s programovaním
Jazyk montáže je veľmi dôležitý; dôrazne sa odporúča naučiť sa ďalší doplnkový jazyk na vysokej úrovni, ako je jazyk C.
Krok 2. Rozhodnite sa, aké médium chcete použiť na načítanie OS
Toto médium môže byť jednotka CD, DVD, flash, pevný disk, disketa alebo iný počítač.
Krok 3. Definujte hlavnú myšlienku SO
Napríklad v systéme Windows je základnou myšlienkou ľahko použiteľné grafické rozhranie a veľa zabezpečenia.
Krok 4. Zistite, akú procesorovú platformu bude váš operačný systém podporovať
IA-32, ARM a x86_64 sú najbežnejšie platformy pre osobné počítače. Všetky sú teda vašou najlepšou voľbou.
Krok 5. Rozhodnite sa, či chcete robiť všetko sami od začiatku, alebo už je k dispozícii jadro, na ktorom by ste chceli stavať
Napríklad Linux od začiatku je projekt pre ľudí, ktorí si chcú vybudovať vlastné Linuxové distro.
Krok 6. Rozhodnite sa, či použijete vlastný zavádzač alebo vopred pripravený, napríklad Grand Unified Bootloader (GRUB)
Samotné kódovanie bootloadera bude vyžadovať rozsiahle znalosti hardvéru a systému BIOS. V dôsledku toho môže tento krok narušiť skutočný programovací plán jadra.
Krok 7. Rozhodnite sa, aký programovací jazyk použiť
Je v poriadku mať operačný systém v jazyku ako Pascal alebo BASIC, mali by ste však používať C alebo Assembly. Montáž je veľmi potrebná, pretože to vyžadujú niektoré dôležité časti operačného systému. Na druhej strane jazyk C ++ obsahuje kľúčové slová, ktoré na spustenie vyžadujú ďalšie úplné SO.
Na kompiláciu operačného systému z kódu C alebo C ++ samozrejme použijete jeden alebo druhý kompilátor. Preto je vhodné preštudovať si používateľskú príručku/príručku/dokumentáciu k zvolenému prekladaču C/C ++, či už je súčasťou softvéru alebo je k dispozícii na webovej stránke distribútora. O kompilátore musíte vedieť veľa komplikovaných vecí a pri vývoji v jazyku C ++ musíte vedieť o schéme manipulovania kompilátora a jeho ABI. Očakáva sa, že porozumiete rôznym spustiteľným formátom (ELF, PE, COFF, základné binárne súbory atď.) A porozumiete tomu, že exkluzívny formát Windows, PE (.exe), je chránený autorskými právami
Krok 8. Definujte svoje rozhranie pre programovanie aplikácií (API)
Jedným z dobrých API na výber je POSIX, pretože je dobre zdokumentovaný. Všetky systémy Unix majú aspoň čiastočnú podporu pre POSIX. Pripojenie programov Unix k vášmu operačnému systému by teda malo byť jednoduché.
Krok 9. Rozhodnite o svojom dizajne
Existuje niečo ako monolitické jadro a mikro jadro. Monolitické jadrá implementujú všetky služby v jadre, zatiaľ čo mikro jadrá majú malé jadrá spojené so službami nasadenia démona používateľov. Monolitické jadrá sú vo všeobecnosti rýchlejšie, ale mikrojadrá majú lepšiu izoláciu a spoľahlivosť chýb.
Krok 10. Zvážte vývoj a prácu v tíme
Riešenie viacerých problémov tak zaberie menej času, čo pravdepodobne urýchli budovanie lepšieho operačného systému.
Krok 11. Pevný disk nevymažte úplne
Nezabudnite, že vymazaním disku sa nenávratne vymažú všetky údaje na ňom! Použite GRUB alebo iného správcu zavádzania na dvojité zavedenie systému z iného operačného systému, kým váš operačný systém nebude plne funkčný.
Krok 12. Začnite v malom
Začnite s drobnosťami, ako je zobrazovanie textu, a pozastavte sa, potom sa presuňte k veciam, ako je správa pamäte a zložená práca. Nezabudnite tiež vytvoriť 32 -bitovú a 64 -bitovú verziu.
Krok 13. Ponechajte si zálohu posledného fungujúceho zdrojového kódu
Tento krok je užitočný ako ochrana v prípade, že sa s aktuálnou verziou SO alebo vývojom niečo pokazí. Ak sa vám počítač pokazí a nespustí sa, je vhodné mať k dispozícii druhú kópiu, aby ste mohli problém vyriešiť.
Krok 14. Zvážte testovanie svojho nového operačného systému pomocou virtuálneho počítača
Namiesto reštartovania počítača pri každom vykonaní zmien alebo po odoslaní súborov z vývojového počítača na testovací počítač môžete použiť aplikáciu virtuálneho počítača na spustenie operačného systému, kým je aktuálny operačný systém spustený. K súčasným aplikáciám VM patrí: VMWare (ktorý má tiež bezplatne dostupný serverový produkt), alternatívy open source, Bochs, Microsoft Virtual PC (nie je kompatibilný s Linuxom) a Oracle VirtualBox.
Krok 15. Spustite „kandidát na vydanie“alebo beta verziu
Tento krok umožní používateľovi upozorniť vás na potenciálne problémy s vašim operačným systémom.
Krok 16. Operačný systém by mal byť tiež užívateľsky prívetivý
Uistite sa, že pridáte užívateľsky prívetivé funkcie, urobte z nich neoddeliteľnú súčasť vášho návrhu.
Tipy
- Skontrolujte potenciálne zablokovanie a ďalšie chyby. Chyby, uviaznutia a ďalšie problémy budú mať vplyv na projekt zostavenia vášho operačného systému.
- Ak chcete, aby systém správne fungoval, implementujte funkcie zabezpečenia ako najvyššiu prioritu.
- Na vývoj vlastného operačného systému vám pomôžu webové stránky ako OSDev a OSDever. Vezmite prosím na vedomie, že na väčšinu účelov bude komunita OSDev.org viac ako šťastná, ak použijete ich wiki a neprihlásite sa do fóra. Ak sa rozhodnete pripojiť sa k fóru, je tu predpoklad: musíte skutočne vedieť o jazyku C alebo C ++ a jazyku zostavy x86. Mali by ste tiež porozumieť všeobecným a komplexným konceptom programovania, ako sú prepojené zoznamy, fronty atď. Komunita OSDev vo svojich predpisoch výslovne uvádza, že jej komunita nie je vytvorená na výchovu nových programátorov.
- Nepridávať sa s fórom OSDev.org a potom položte zrejmú otázku. Zobrazí sa iba výzva, aby ste si prečítali sprievodcu. Prečítajte si Wikipediu a pokyny pre akékoľvek zariadenie, ktoré chcete použiť.
- Ak sa pokúšate vyvinúť operačný systém, ste určite považovaní za „boha“programovania.
- Mali by ste si tiež prečítať príručku procesora pre architektúru procesora, ktorú ste vybrali; či už x86 (Intel), ARM, MIPS, PPC atď. Manuály pre architektúry procesorov nájdete ľahko pomocou vyhľadávania Google („manuál Intel“, „manuál ARM“atď.).
- Po dokončení všetkých vývojových prác sa rozhodnite, či chcete kód uvoľniť ako otvorený kód alebo podľa autorských práv.
- Nezačínaj projekt operačného systému na začatie učenia sa programovania. Ak neviete zvnútra aj zvonku o jazykoch C, C ++, Pascal alebo inom vhodnom jazyku, vrátane manipulácie s ukazovateľom, manipulácie s bitmi na nízkej úrovni, posúvania bitov, vložených jazykov montáže atď., Nie ste pripravení na operačný systém rozvoj.
- Dobrou možnosťou môže byť vytvorenie úplne nového oddielu na „rozšírenie“SO.
- Ak chcete jednoduchý spôsob, zvážte distribúcie Linuxu ako Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD alebo SUSE Studio a SUSE KIWI. Operačný systém, ktorý vytvoríte, však patrí spoločnosti, ktorá službu spustila ako prvá (aj keď podľa GPL máte právo ju voľne distribuovať, upravovať a prevádzkovať podľa vlastného uváženia).
Pozor
- Plný operačný systém nezískate do dvoch týždňov. Začnite so zavádzacím SO, potom prejdite na chladnejšie veci.
- Neopatrné písanie vášho operačného systému na pevný disk ho môže úplne poškodiť. Buď opatrný.
- Ak robíte niečo, čo sa neodporúča, napríklad zapisujete náhodné bajty na náhodné vstupno -výstupné porty, poškodíte svoj operačný systém a (teoreticky) by ste mohli spáliť hardvér.
- Nečakajte, že sa operačný systém dá ľahko zostaviť. Existuje mnoho komplikovaných vzájomných závislostí. Napríklad, ak chcete vytvoriť operačný systém, ktorý dokáže pracovať s viacerými procesormi, váš správca pamäte musí mať „blokovací“mechanizmus, ktorý zabráni viacerým procesorom v prístupe k rovnakému prostriedku súčasne. „Zámok“, ktorý sa na to používa, by vyžadoval plánovač, aby zaistil, že iba jeden procesor pristupuje v akomkoľvek danom čase k kritickým zdrojom a všetky ostatné musia čakať. V skutočnosti plánovač závisí od prítomnosti programu Memory Manager. Toto je príklad závislosti na slepej uličke. Neexistuje žiadny štandardný spôsob riešenia tohto druhu problému; Od každého programátora operačného systému sa očakáva, že bude dostatočne skúsený na to, aby vedel, ako s ním zaobchádzať.
Dodatočné zdroje
- Pokyny: Linux od začiatku
- Zavádzač: GRUB
- Aplikácie pre virtuálne stroje: Bochs, VM Ware, XM Virtual Box.
- Príručka procesora: Príručka Intel
- Stránky vývoja SO: OSDev, OSDever