Filozofie operačního systému Unix

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.