Překlad

Při tvorbě operačního systému je prostředí pro překlad důležité více než u jiného software. Budete často potřebovat spouštět testovací programy a v nemálo případech to bude nutné provádět v reálném módu procesoru. Také bude velmi často potřeba restartovat PC k vyzkoušení vyvíjené funkce nového systému. Ze začátku zřejmě použijete váš oblíbený systém Windows nebo Linux, ale později budete stále více přecházet pod nově vznikající systém. Nejvhodnější variantou je vyvíjet pod systémem DOS, který pracuje v reálném módu a umožňuje rychlé restartování (nevyžaduje ukončování systému).

K editaci zdrojových textů můžete použít program DOS Manažer (224 KB). Jedná se o souborový manažer pro DOS (s podporou dlouhých jmen ve Windows 9x) umožňující editaci textových souborů do 250 MB. Základní ovládání: F4 otevření souboru, TAB a Shift+TAB posun po tabelačních pozicích, Ctrl+I vložení znaku tabulátoru, F2 uložení souboru, F10 menu.

Při vývoji systému je obvyklé vytvářet nižší úroveň systému (zavaděč, jádro) pomocí strojových instrukcí (assembler) a vyšší úroveň (aplikační software) pomocí vyššího programovacího jazyku - dnes je za standard považován jazyk C příp. C++. Hranice pro použití assembleru nebo C není přesně daná. Čím větší podíl C, tím je tvorba systému snazší a je snazší portování systému pod jiný procesor, systém se však stává pomalým a těžkopádným. Jako vhodný kompromis považuji vytvořit zavaděč a jádro systému v assembleru (je požadován velký výkon), ovladače zařízení v C (možnost portování z jiných systémů) a aplikační software v C++ (snadná tvorba). Zajímavou variantou je napsat i jádro systému v C jako "generic" vzorovou a funkční variantu a později přepsat jádro do příslušného assembleru pro zvýšení výkonu.

Při volbě procesoru je nejvhodnějším kandidátem řada x386 (Intel kompatibilní). Díky velkému rozšíření se tento procesor stává levnou a přitom výkonnou variantou i pro malé aplikace. Procesory x386 používají organizaci dat "Little Endian", kdy je nejméně významný bajt na nejnižší adrese v paměti. Naproti tomu Motorola procesory používají "Big Endian", nejméně významný bajt je na nejvyšší adrese v paměti. Organizace "Little Endian" procesoru x386 má výhodu v tom, že k proměnné lze přistupovat i s nižší přesností bez změny adresy, tj. např. se 4-bajtovým číslem lze pracovat jako se 2-bajtovým pouhým přetypováním ukazatele.

Nejdůležitějším nástrojem pro vývoj systému je překladač assembleru. Mezi mnoha typy překladačů bych rád doporučil Netwide Assembler (NASM). Mezi jeho hlavní přednosti patří:

Netwide Assembler používá klasické uspořádání operandů instrukcí, kdy se za kódem instrukce uvede nejdříve cílový operand a poté až zdrojový operand. Naproti tomu GNU assembler používá opačné řazení operandů, tj. nejdříve zdrojový a poté cílový. Pro klasické uspořádání ovšem mluví vážný důvod - zdrojovým operandem bývá často složitý matematický výraz a je proto mnohem praktičtější, aby tento výraz byl uveden na zbytku řádku, tedy až jako druhý operand.

Ke stažení: Netwide Assembler pro DOS s dokumentací.

Při překladu jsou používány povelové soubory DOS s konvencí:

Příklad struktury adresářů:

   |
   +--- BOOT (zavaděče systému)
   |    +--- 1_TEST (testovací zavaděč systému)
   |         2_LINEAR (lineární zavaděč systému)
   +--- DOC (dokumentace)
   +--- EXEC (programy)
   +--- VEGASLOT (příklad programu bez systému)

Download souborů projektu Litux.

Poznámka: Pro podporu volného rozšíření zdrojových textů jsou veškeré komentáře ve zdrojových textech v anglickém jazyce.

Zpět na hlavní stránku