Tento wikiHow vás naučí plánovat a vyvíjet operační systém, pokud nevíte, jak kódovat v C nebo C ++. Operační systémy spravují počítačový hardware a poskytují prostředky, které aplikace potřebují ke spuštění. Psaní operačního systému od nuly vyžaduje silnou znalost počítačové vědy, programovacího jazyka jako C nebo C ++, sestavení a postupů správy kódu.
Kroky
Část 1 ze 2: Naučte se základy
Krok 1. Absolvujte několik základních kurzů informatiky
Na rozdíl od vývoje pro web vyžaduje vytvoření operačního systému silnou znalost algoritmů, datových struktur, počítačového hardwaru a správy zdrojů. Lidé v této oblasti získávají vzdělání, takže nečekejte, že po přečtení online tutoriálu napíšete celý operační systém! Kurz Harvard's Intro to Computer Science je k dispozici online prostřednictvím EDX zdarma.
Krok 2. Naučte se programovací jazyk na vysoké úrovni, jako je Python
Jakmile máte solidní základy počítačové vědy, dalším krokem je zvládnutí C a/nebo C ++. Stejně jako učení o počítačové vědě není zvládnutí jazyka volitelné-nebudete moci kódovat operační systém, pokud nemůžete psát solidní aplikace.
Pokud jste v C úplně nový, podívejte se na kurz Dartmouth's C Programming: Getting Started, který je zdarma prostřednictvím EDX. Jakmile tento kurz dokončíte, můžete absolvovat další kurz v řadě: C Programování: Jazykové základy. Poté přejděte k dalším kurzům, jako je modulární programování a správa paměti a ukazatele a správa paměti
Krok 3. Naučte se jazyk sestavení
Jazyky sestavení jsou jazyky nízké úrovně určené ke komunikaci s různými procesory. Protože se montáž liší pro různé typy procesorů (např. X86 Assembly Language pro procesory Intel, AMD, VIA a další), budete se muset naučit verzi pro typ procesoru, pro který kódujete.
- Tato kniha s otevřeným zdrojovým kódem, je-li přečtena v plném rozsahu, vám může poskytnout dostatečně solidní znalosti pro budování operačního systému.
- The Art of Assembly Language je velmi doporučovaná kniha o montáži, která je k dispozici jak offline, tak offline.
- Měli byste také provést velký průzkum typu procesorů, na kterých by měl váš operační systém běžet. Manuály k architektuře procesorů lze snadno najít pomocí vyhledávání Google („Intel Manuals“, „ARM manuals“atd.).
Krok 4. Dokončete návod k operačnímu systému
Návody k OS vás provedou procesem vytvoření základního operačního systému. To vás zvykne na proces a pomůže vám zjistit, zda vám chybí nějaké kousky. Jakmile dokončíte jeden nebo dva tutoriály, budete na dobré cestě k vytvoření vlastního operačního systému.
- Bare Bones je tutoriál, který vám pomůže napsat první jednoduché 32bitové jádro. Po dokončení tutoriálu je dalším krokem použití Meaty Skeleton ke strukturování vlastního operačního systému.
- Linux from Scratch je online kniha, která vás provede vytvořením vlastního operačního systému Linux.
- Operační systémy od 0 do 1 je bezplatná kniha o vytváření různých operačních systémů od začátku do konce.
Krok 5. Zjistěte cíle svého operačního systému
Co chcete, aby váš operační systém dělal? Jak by to mělo vypadat? Opravdu potřebujete napsat celý operační systém, nebo jen chcete vytvořit určitý vzhled pro svou plochu? To jsou všechny věci, které je třeba zvážit, než začnete kódovat.
- Zvažte vývoj s týmem dalších programátorů. Tým vývojářů pracujících na projektu výrazně zkrátí dobu vývoje.
- Přidejte své cíle, plány a otázky do veřejného úložiště, aby vám ostatní mohli snadno pomoci.
Část 2 ze 2: Budování operačního systému
Krok 1. Vyberte vývojové prostředí
Toto je platforma, kterou budete používat ke kódování nového operačního systému. Je to věc osobních preferencí, ale většina lidí buď používá Windows nebo verzi UNIXu. Pokud používáte Windows, je vhodné nainstalovat prostředí UNIX, jako je Cygwin nebo MinGW. Obecně budete chtít zajistit, aby jakékoli prostředí, které používáte, obsahovalo následující:
- GCC (kompilátor GNU). Pokud používáte Windows, můžete si jej nainstalovat do Cygwin nebo MinGW.
- Binutils je kolekce nástrojů používaných pro manipulaci se soubory objektů. Opět platí, že pokud používáte Windows, můžete jej nainstalovat do Cygwin.
- Dobrý textový editor. Vim a emacs se běžně používají v prostředích UNIX. Uživatelé Windows mohou použít Poznámkový blok nebo se podívat na Poznámkový blok ++ pro upgrade na více kartách.
- Perl a/nebo Python. Pro manipulaci s řetězci se doporučuje jeden nebo oba.
Krok 2. Nastavte svůj systém pro správu verzí
Psaní operačního systému znamená, že pravděpodobně vytvoříte stovky (nebo tisíce!) Řádků kódu. Když pracujete na revizích, může to být matoucí. Některé možnosti, které je třeba vyzkoušet, jsou CVS, Mercurial a Subversion.
Krok 3. Rozhodněte se pro bootloader
Pokud si nechcete vytvářet vlastní, můžete použít existující, jako je Grand Unified Bootloader (GRUB). Pokud se cítíte dostatečně odvážní na kódování bootloaderu, podívejte se na Rolling Your Own Bootloader na OSDev.org.
Krok 4. Vyberte návrh jádra
Jádro je jádrem vašeho operačního systému a poskytuje rozhraní mezi uživatelem a počítačovým hardwarem. Existují monolitická jádra a mikro jádra. Monolitická jádra implementují všechny služby v jádře, zatímco mikrojádra mají malé jádro kombinované s implementací služeb démony uživatelů. Monolitická jádra jsou obecně rychlejší, ale mikrojádra mají lepší izolaci chyb a spolehlivost.
Krok 5. Začněte v malém
Začněte malými věcmi, jako je zobrazování textu a přerušení, než přejdete k věcem, jako je správa paměti a multitasking. Místo velkého skoku můžete také zkusit vytvořit jednoduchý 16bitový operační systém.
Za dva týdny nebudete mít plný systém. Začněte s operačním systémem, který se spustí, a poté přejděte na skvělé věci
Krok 6. Otestujte svůj nový operační systém na virtuálním počítači
Spíše než restartovat počítač pokaždé, když provedete změny nebo budete muset přenášet soubory z vývojového počítače do testovacího počítače, použijte aplikaci pro virtuální počítač. VMWare je běžná možnost, která funguje s Windows i Linuxem, stejně jako Bochs. Zkontrolujte potenciální zablokování a další chyby a podle potřeby je opravte.
Krok 7. Uvolněte „kandidáta na vydání
"Můžete to udělat tak, že nahrajete svůj testovaný kód do veřejného úložiště. To lidem umožní otestovat váš operační systém a podat zprávu o všech problémech, se kterými se setkají."
Krok 8. Síť s dalšími vývojáři operačních systémů
Na různých fórech se shromažďuje celá komunita vývojářů operačních systémů, včetně /r /osdev na Redditu a Software Engineering Stack Exchange. Ten, který jste pochopili při vývoji základního operačního systému, si přečtěte stávající příspěvky a zjistěte, jaké věci se během vývojového procesu objeví.
Video - Používáním této služby mohou být některé informace sdíleny s YouTube
Tipy
- Pokud chcete, aby byl váš systém životaschopný, implementujte funkce zabezpečení jako svoji nejvyšší prioritu.
- Po dokončení veškerého vývoje se rozhodněte, zda chcete kód uvolnit jako open source nebo proprietární.
- Aby mohl operační systém zvládnout více procesorů, musí mít váš správce paměti k dispozici „zamykací“mechanismy, které zabrání více procesorům v přístupu ke stejnému prostředku současně. K tomu použité „zámky“budou vyžadovat přítomnost plánovače, který zajistí, že pouze jeden procesor přistupuje v daném okamžiku ke kritickému zdroji a všechny ostatní budou muset počkat. Přesto je plánovač závislý na přítomnosti správce paměti. Toto je případ zablokované závislosti. Neexistuje žádný standardní způsob řešení takových problémů; Očekává se, že jako programátor budete dostatečně zruční, abyste zjistili, jak se s tím vypořádat.
- Operační systém může být také uživatelsky přívětivý. Nezapomeňte přidat uživatelsky přívětivé funkce, které se stanou nedílnou součástí vašeho návrhu.
- Nepřipojujte se fóra OSDev.org a začněte klást zřejmé otázky. Jednoduše to bude mít za následek „Přečtěte si manuál“ odpovědi. Měli byste si přečíst Wikipedii a manuály k různým nástrojům, které chcete použít.
- Nestartuj projekt operačního systému pro zahájení učení programování. Pokud ještě neznáte C, C ++, Pascal nebo jiný vhodný jazyk naruby, včetně manipulace s ukazatelem, manipulace s bitem na nízké úrovni, řazení bitů, vloženého jazyka sestavení atd., Nejste připraveni na vývoj operačního systému.
- Pokud uděláte něco neuváženého, například zapisujete náhodné bajty na náhodné I/O porty, zhroutí se váš operační systém a můžete (teoreticky) smažit váš hardware.