Linux/Filozofie operačního systému Unix
< Linux
Unix byl OS určený primárně na zpracování textu, a většina komponent pracuje s textovým vstupem a produkuje textový výstup. Od počátku byly programy psány s několika základními principy:
- provádět právě jednu věc a tu dělat dobře
- zaručit jejich vzájemnou spolupráci
- povely a data programy přijímají v textové podobě
- jejich výstupy jsou též v textové podobě a ve formě vhodné pro další zpracování jako vstup jiných programů.
Od opuštění assembleru jsou programy psány již výhradně v jazyce C. I když je programování v C bez ohledu na platformu v mnoha směrech stejné, je třeba říci, že unixoví vývojáři nahlíží na vývoj programů a systémových nástrojů specifickým způsobem. Operační systém Unix/Linux podporuje určitý styl programování a Unixové programy a systémy sdílí následující charakteristiky:
- Jednoduchost
- Valná většina utilit pro operační systém Unix je velmi jednoduchých a v důsledku toho také malých a snadno pochopitelných. Je dobré si osvojit techniku zvanou KISS (Keep It Small and Simple - Snaž se to udržet malé a jednoduché). U větších a složitějších systémů je vyšší pravděpodobnost většího množství komplexních chyb jejichž ladění může být obtížné.
- Zaměření
- Vždy je lepší vytvořit program, který provádí dobře jen jeden úkol. Program přecpaný nejrůznějšími funkcemi se obtížně používá a udržuje. Jednoúčelové programy se snáze vylepšují, když se objeví lepší algoritmy nebo rozhraní. V systému Unix jsou v případě potřeby malé utility často kombinovány tak, aby prováděly náročnější úkoly, místo aby se programátoři snažili předvídat potřeby uživatelů za pomoci jednoho velkého programu.
- Znovu použitelné komponenty
- Je užitečné dát jádro aplikace k dispozici v podobě knihovny. Dobře dokumentované knihovny disponují jednoduchým ale flexibilním rozhraním, mohou ostatním lidem pomoci při vývoji různých variací nebo při aplikaci postupů v nových oblastech. Příkladem budiž databázová knihovna dbm, což je spíše než jeden program pro správu databáze sada znovu použitelných funkcí.
- Filtry
- Spoustu unixových aplikací lze využít jako filtry. To znamená, že mohou převádět vstup na výstup jiného typu. Systém Unix/Linux poskytuje nástroje, které umožňují vzájemnou kombinací jiných unixových programů novými a neotřelými způsoby vytvářet poměrně složité aplikace. Samozřejmě, že je tato možnost opětovného použití dána právě zmíněnými vývojovými metodami.
- Otevřené formáty souborů
- Nejúspěšnější a nejoblíbenější unixové programy používají konfigurační a datové soubory, které mají podobu textových ASCII souborů. Uživatelé tak totiž mohou měnit a prohledávat konfigurační nastavení pomocí standardních nástrojů a zároveň vyvíjet nástroje, které budou při práci s datovými soubory používat nové funkce. Hezkým příkladem je systém křížových odkazů ve zdrojových souborech ctags, který udržuje informace o umístění symbolů v podobě regulárních výrazů, které pak může využívat vyhledávací program.
- Flexibilita
- Nelze dopředu předvídat, jak důmyslní uživatelé budou program používat. Je proto dobré při programování zachovávat co největší flexibilitu. Dobří programátoři se vyhýbají svévolným omezením velikostí polí nebo počtu záznamů. Je-li to možné, jsou programy psány tak, aby mohli pracovat v síti stejně dobře, jako na lokálním počítači. Nikdy si nemyslete, že jste vzali do úvahy vše, do může uživatel chtít udělat.