Vývoj operačného systému/Potrebné vedomosti
Vzhľad
Ťažko povedať, čo potrebuje človek vedieť ak sa chce pokúsiť urobiť operačný systém. Jednoduchá odpoveď znie - všetko. Človek ktorý by vedel všetko sa však ešte nenarodil a tak ste si asi správne domysleli, že si budete musieť pri tvorbe operačného systému množstvo vecí naštudovať. Avšak táto príručka by mala pokryť základ, na ktorý budete môcť v prípade hlbšieho záujmu nadväzovať. Pozrime sa na ten zoznam.
- Vedomosť jazyka assembler pre architektúry Intel x86 (resp. i386+). Intel patrí v dnešnej dobe k najznámejším firmám v oblasti procesorov a celkovo rôzneho hardvéru. Inštrukčná sada x86 (pôvodne uvedená s procesorom Intel 8086) je základ pre dnes veľmi známu sadu x86-64. Nie je nutné poznať všetky inštrukcie - množstvo z nich sa používa len v kódoch operačných systémov a ďalšie sú často pokrýté v štandardných knižniciach používané pri bežnom programovaní.
- Vedomosť jazyka C. Kedže jazyk C patrí k staršej generácii operačných systémov, je omnoho bližšie k procesorovému kódu a zároveň poskytuje dostatočnú prehľadnosť a komfort pri písaní kódu. Z vyššími jazykmi ako Java, C# či Python si na nízkej úrovni, na ktorej sa operačné systémy nachádzajú, nepomôžeme. Existujú alternatívne projekty ako COSMOS alebo MOSA, ani tie však nie sú na spoľahlivé na 100% a sú neustále vo vývoji (pravdupovediac sa v nich vyznajú len ich autori).
- Skúsenosť s programovaním viacúlohových programov (programov s viacerými vláknami). Sprvu s tým váš operačný systém nebude schopný pracovať, avšak skúsenosti s takouto tvorbou sa vám zídu hneď pri práci s klávesnicou.
- Poznanie svojho počítača. Nie je možné skúšať nejaký program na svojom počítači ak nie je známe, ako sa má počítač správať v normále. V praxi budete svoj operačný systém skúšať na virtuálnych zariadeniach, no aj virtuálne zariadenia sú založené na hostiteľovi. Nie je dobré prejsť na na iný, pre vás menej známy systém len z dôvodu poskytnutia lepších nástrojov - skôr či neskôr to môže spôsobiť nefunkčnosť aj jednoduchého kódu len kvôli hoci aj malej chybe.
- Vedieť kde hľadať. Ku každému hardvéru sa dá nájsť na internete aktuálny manuál, len treba vedieť používať vyhľadávacie nástroje. Niekedy je potrebné hľadať trochu viac, no vzdať to znamená pridať do svojho systému ďalší kompromis.
Zoznam najdôležitejších manuálov
[upraviť]- Intel® 64 and IA-32 Architectures Software Developer’s Manual (anglicky)
- Intel 80386 Programmer's Reference Manual (anglicky) - príručka na pôvodný procesor Intel 80386
- OS development wiki (anglicky) a fórum (anglicky)
- BrokentThorn.com (anglicky)
- James Molloy (anglicky)
- Zaujímavé články o jadre Linuxu (anglicky)