Operační systém umožňuje uživateli interakci s hardwarem počítače. Systém se skládá ze stovek tisíc řádků kódu. Operační systém je obvykle vytvořen pomocí C#, C, C ++ a programovacích jazyků sestavení. Operační systém vám umožňuje procházet počítač při ukládání a provádění příkazů. Nemyslete si, že vytvoření operačního systému je snadné. K jeho výrobě je zapotřebí mnoho znalostí.
Krok
Krok 1. Nejprve se seznamte s programováním
Jazyk montáže je velmi důležitý; Důrazně doporučujeme, abyste se naučili další doplňkový jazyk na vysoké úrovni, například jazyk C.
Krok 2. Rozhodněte se, jaká média chcete použít k načtení OS
Tímto médiem může být jednotka CD, DVD, flash, pevný disk, disketa nebo jiný počítač.
Krok 3. Definujte základní myšlenku SO
Například v systému Windows je základní myšlenkou snadno použitelné grafické uživatelské rozhraní a spousta zabezpečení.
Krok 4. Určete, jakou procesorovou platformu bude váš operační systém podporovat
IA-32, ARM a x86_64 jsou nejběžnější platformy pro osobní počítače. Takže všechny jsou vaše nejlepší volba.
Krok 5. Rozhodněte se, zda si přejete dělat vše sami od nuly, nebo je již k dispozici jádro, na kterém byste chtěli stavět
Například Linux od nuly je projekt pro lidi, kteří si chtějí vytvořit vlastní distribuci Linuxu.
Krok 6. Rozhodněte se, zda použijete svůj vlastní zavaděč nebo přednastavený, jako je Grand Unified Bootloader (GRUB)
Vlastní kódování zavaděče bude vyžadovat rozsáhlé znalosti hardwaru a systému BIOS. V důsledku toho může tento krok bránit skutečnému plánu programování jádra.
Krok 7. Rozhodněte se, jaký programovací jazyk použít
Je v pořádku mít operační systém v jazyce jako Pascal nebo BASIC, ale měli byste použít C nebo Assembly. Sestavení je velmi nutné, protože to vyžadují některé důležité části operačního systému. Na druhou stranu jazyk C ++ obsahuje klíčová slova, která ke spuštění vyžadují další úplné SO.
Ke kompilaci operačního systému z kódu C nebo C ++ samozřejmě použijete jeden nebo druhý překladač. Proto je dobré prostudovat uživatelskou příručku/manuál/dokumentaci kompilátoru C/C ++ podle vašeho výběru, ať už je součástí softwaru nebo je k dispozici na webových stránkách distributora. O kompilátoru potřebujete vědět spoustu komplikovaných věcí a pro vývoj v jazyce C ++ potřebujete vědět o schématu kompilátoru kompilátoru a jeho ABI. Očekává se, že porozumíte různým spustitelným formátům (ELF, PE, COFF, základní binární atd.) A porozumíte tomu, že exkluzivní formát Windows, PE (.exe), je chráněn autorskými právy
Krok 8. Definujte rozhraní pro programování aplikací (API)
Jedním dobrým API na výběr je POSIX, protože je dobře zdokumentovaný. Všechny systémy Unix mají alespoň částečnou podporu pro POSIX. Připojení unixových programů k vašemu operačnímu systému by tedy mělo být snadné.
Krok 9. Rozhodněte o svém návrhu
Existuje něco jako monolitické jádro a mikro jádro. Monolitická jádra implementují všechny služby v jádře, zatímco mikro jádra mají malá jádra spojená se službami nasazení démona uživatelů. Monolitická jádra jsou obecně rychlejší, ale mikrojádra mají lepší izolaci chyb a spolehlivost.
Krok 10. Zvažte vývoj a práci v týmu
Vyřešení více problémů tak zabere méně času, což pravděpodobně urychlí budování lepšího operačního systému.
Krok 11. Pevný disk nevymažte úplně
Pamatujte, že smazáním disku nenávratně vymažete všechna data na něm! Pomocí GRUBu nebo jiného správce spouštění dvakrát spusťte systém z jiného operačního systému, dokud nebude váš operační systém plně funkční.
Krok 12. Začněte v malém
Začněte drobnostmi, jako je zobrazování textu a pauza, než přejdete k věcem, jako je správa paměti a složená práce. Ujistěte se také, že používáte 32bitovou a 64bitovou verzi.
Krok 13. Uchovejte si zálohu posledního funkčního zdrojového kódu
Tento krok je užitečný jako pojistka pro případ, že by se s aktuální verzí SO nebo vývojem něco pokazilo. Pokud počítač havaruje a nespustí se, je vhodné mít k dispozici druhou kopii, abyste mohli problém vyřešit.
Krok 14. Zvažte testování nového operačního systému pomocí virtuálního počítače
Namísto restartování počítače pokaždé, když provedete změny, nebo po odeslání souborů z vývojového počítače na testovací počítač, můžete ke spuštění operačního systému použít aktuální virtuální operační systém. Mezi současné aplikace VM patří: VMWare (který má také serverový produkt dostupný zdarma), alternativy open source, Bochs, Microsoft Virtual PC (není kompatibilní s Linuxem) a Oracle VirtualBox.
Krok 15. Spusťte „release candidate“nebo beta verzi
Tento krok umožní uživateli upozornit vás na potenciální problémy s vaším operačním systémem.
Krok 16. Operační systém by měl být také uživatelsky přívětivý
Ujistěte se, že přidáváte uživatelsky přívětivé funkce, aby byly nedílnou součástí vašeho designu.
Tipy
- Zkontrolujte potenciální zablokování a další chyby. Chyby, zablokování a další problémy ovlivní váš projekt sestavení operačního systému.
- Pokud chcete, aby systém fungoval správně, nezapomeňte implementovat funkce zabezpečení jako nejvyšší prioritu.
- K vývoji vlastního operačního systému použijte webové stránky jako OSDev a OSDever. Vezměte prosím na vědomí, že pro většinu účelů bude komunita OSDev.org více než šťastná, pokud použijete jejich wiki a nepřipojíte se k fóru. Pokud se rozhodnete připojit se k fóru, je tu předpoklad: musíte opravdu vědět o C nebo C ++ a jazyce sestavení x86. Měli byste také porozumět obecným a složitým konceptům programování, jako jsou propojené seznamy, fronty atd. Komunita OSDev ve svých předpisech výslovně uvádí, že její komunita není vytvořena pro výchovu nových programátorů.
- Nepřipojujte se pomocí fóra OSDev.org a poté položte zřejmou otázku. Budete požádáni pouze o přečtení průvodce. Přečtěte si Wikipedii a pokyny pro jakékoli zařízení, které chcete použít.
- Pokud se pokoušíte vyvinout operační systém, jste rozhodně považováni za „boha“programování.
- Měli byste si také přečíst příručku procesoru pro architekturu procesoru, kterou jste vybrali; ať už x86 (Intel), ARM, MIPS, PPC atd. Manuály pro architektury procesorů lze snadno vyhledat pomocí vyhledávání Google („manuál Intel“, „manuál ARM“atd.).
- Po dokončení všech vývojových prací se rozhodněte, zda chcete kód uvolnit jako otevřený kód nebo podle autorských práv.
- Nezačínej projekt operačního systému pro zahájení učení programování. Pokud nevíte dovnitř a ven o C, C ++, Pascal nebo jiném vhodném jazyce, včetně manipulace s ukazatelem, manipulace s bitem na nízké úrovni, řazení bitů, vložené jazyky sestavení atd., Nejste na operační systém připraveni rozvoj.
- Dobrou volbou může být vytvoření zcela nového oddílu pro „rozšíření“SO.
- Pokud chcete snadný způsob, zvažte distribuce Linuxu jako Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD nebo SUSE Studio a SUSE KIWI. Operační systém, který vytvoříte, však patří společnosti, která službu spustila jako první (ačkoli máte právo ji podle GPL libovolně distribuovat, upravovat a provozovat, jak chcete).
Varování
- Do dvou týdnů nezískáte plný operační systém. Začněte zaváděcím SO a poté přejděte k chladnějším věcem.
- Neopatrné psaní operačního systému na pevný disk jej může zcela poškodit. Buď opatrný.
- Pokud uděláte něco, co se nedoporučuje, například zapisujete náhodné bajty na náhodné I/O porty, zhroutí se váš operační systém a (teoreticky) může dojít k popálení vašeho hardwaru.
- Nečekejte, že se operační systém vytvoří snadno. Existuje spousta komplikovaných vzájemných závislostí. Například pro vytvoření operačního systému schopného pracovat s více procesory musí mít váš správce paměti mechanismus „zamykání“, který zabrání více procesorům v přístupu ke stejnému prostředku současně. K tomu použitý „zámek“by vyžadoval plánovač, který by zajistil, že pouze jeden procesor přistupuje v daném okamžiku ke kritickým zdrojům a všichni ostatní musí čekat. Plánovač ve skutečnosti závisí na přítomnosti Správce paměti. Toto je příklad slepé uličky. Neexistuje žádný standardní způsob, jak tento druh problému vyřešit; Od každého programátora operačního systému se očekává, že bude dostatečně zkušený, aby znal svůj vlastní způsob, jak se s tím vypořádat.
Dodatečné zdroje
- Pokyny: Linux od nuly
- Zavaděč: GRUB
- Aplikace virtuálních strojů: Bochs, VM Ware, XM Virtual Box.
- Manuál procesoru: manuál Intel
- Stránky pro vývoj SO: OSDev, OSDever