====== Unix: Základní kámen moderní informatiky ====== **Unix** je operační systém, který změnil způsob, jakým přemýšlíme o softwaru. Jeho návrh je založen na modularitě, jednoduchosti a textovém rozhraní. Většina technologií, které dnes používáme – od internetových serverů až po chytré telefony – nese v sobě "DNA" původního Unixu. ===== 1. Historie a vznik ===== * **1969:** Ken Thompson, Dennis Ritchie a další začali v Bell Labs pracovat na systému, který měl být jednodušší alternativou k tehdy ambicióznímu, ale neúspěšnému projektu Multics. * **Jazyk C:** Pro potřeby Unixu vytvořil Dennis Ritchie jazyk **C**. To byla revoluce, protože Unix se stal prvním operačním systémem, který nebyl napsán v assembleru, což umožnilo jeho snadnou přenositelnost (portabilitu) na různý hardware. * **Unixové války:** V 80. a 90. letech došlo k rozštěpení na dvě hlavní větve: **System V** (komerční od AT&T) a **BSD** (akademická z Berkeley). ===== 2. Filozofie Unixu ===== Douglas McIlroy, jeden z tvůrců, definoval filozofii Unixu takto: 1. **Pište programy, které dělají jednu věc a dělají ji dobře.** 2. **Pište programy tak, aby spolupracovaly.** 3. **Pište programy tak, aby zpracovávaly textové proudy, protože to je univerzální rozhraní.** Díky této filozofii vznikly "roury" (**Pipes**), které umožňují řetězit jednoduché nástroje do složitých operací: cat soubor.txt | grep "chyba" | wc -l ===== 3. Architektura systému ===== Unix se skládá ze tří hlavních vrstev: ==== Jádro (Kernel) ==== Srdce systému, které komunikuje přímo s hardwarem ([[CPU]], [[RAM]], disky). Spravuje paměť, procesy a souborový systém. ==== Shell ==== Interpret příkazů, který tvoří rozhraní mezi uživatelem a jádrem. Nejpoužívanějším shellem je dnes [[Bash]], ale existují i jiné (Zsh, Fish, Ksh). ==== Uživatelské nástroje (Utilities) ==== Tisíce malých programů (ls, cp, grep, awk, sed), které provádějí specifické úlohy. ===== 4. Standardizace a POSIX ===== Aby se zabránilo úplné fragmentaci systému, vznikl standard **POSIX** (Portable Operating System Interface). Ten definuje rozhraní, které musí operační systém splňovat, aby mohl být považován za "Unix-like". * **Certifikovaný UNIX:** Systémy jako [[Solaris]], macOS nebo AIX, které oficiálně splňují standardy a zaplatily za licenci značky. * **Unix-like:** Systémy jako [[Linux]] nebo [[FreeBSD]], které fungují jako Unix, ale nejsou oficiálně certifikovány (často z finančních nebo licencčních důvodů). ===== 5. Rodokmen Unixu: Hlavní větve ===== ^ Větev ^ Příklady ^ Charakteristika ^ | **System V** | AIX, HP-UX, [[Solaris]] | Komerční verze, zaměření na velké korporátní servery. | | **BSD** | [[FreeBSD]], OpenBSD, macOS | Akademické kořeny, pokročilé síťové funkce, liberální licence. | | **Linux** | Ubuntu, Red Hat, Debian | Projekt Linuse Torvaldsa, který implementuje Unixové API "od nuly". | ===== 6. Klíčové koncepty ===== * **Všechno je soubor:** V Unixu se ke všemu (včetně hardwaru, jako jsou disky nebo klávesnice) přistupuje jako k souboru v adresářové struktuře (např. ''/dev/sda''). * **Hierarchický souborový systém:** Jediný kořenový adresář (''/''), do kterého se připojují všechna ostatní úložiště. * **Víceuživatelský přístup:** Přísná správa oprávnění (čtení, zápis, spuštění) pro uživatele a skupiny. --- > **Zajímavost:** Unixový čas (Epoch time) počítá vteřiny od 1. ledna 1970. Mnoho počítačových systémů narazí v roce 2038 na problém (podobný Y2K), protože 32bitové proměnné přestanou stačit pro ukládání tohoto čísla. //Související: [[Linux]], [[FreeBSD]], [[Solaris]], [[Bash]], [[C++]]//