Unikátní UNIX
Narazil jsem na youtube na videa pána jménem Matt Samudio, který mnohem výstižněji vyjádřil to, o čem se tu snažím poněkud neobratně psát. Čtenář hovořící anglicky nechť čerpá rovnou ze zdroje.
Matt používá operační systém jménem Slackware, jednu z nejstarších linuxových distribucí. Linux je podle něho pokus přenést unixovskou uživatelskou zkušenost na moderní osobní počítače.
Filozofie Unixu
Výraz „unixovská uživatelská zkušenost“ zní asi divně. Koneckonců pro většinu lidí je počítač obrazovka, kde pomocí ukazovátka (myši) mačká (kliká na) malé obrázky (ikony), které se pak otevřou do velkých obrazů (oken) obsahujících nástroje, se kterými pak pracuje a které v jádru fungují dost podobným způsobem. To je popis grafického prostředí, jehož nejznámějším představitelem jsou Windows.
Spolu s Mattem zde budu dávat do kontrastu „unixovskou“ a „windowsovskou“ uživatelskou zkušenost. Klikací ikony a okna existují pod Linuxem a dalšími deriváty Unixu také a naopak starší nebo profesionální uživatelé ještě znají černou obrazovku s blikajícím kurzorem, starý dobrý DOS, který v principu funguje stejně jako unixový terminál. Takže nejde o porovnání terminál vs grafické prostředí, byť v unixovských distrech se terminál využívá mnohem více než pod Windows. Jde spíš o základní design či filozofii daného prostředí.
Počítač sám o sobě nic moc neumí. Aby k něčemu byl musí existovat nástroje, které člověku umožní vykonávat činnost, která ho dovede k požadovanému výsledku. Těmto nástrojům říkáme programy a lze k nim přistupovat různým způsobem. Unix přišel s tímto pojetím:
- každý z těchto nástrojů ať dělá jednu věc, jednu činnost a dělá ji dobře,
- nástroje ať lze řetězit tak, aby mohly vykonávat komplexní činnosti.
To je základní filozofie Unixu, kterou se vývojáři snažili vtělit do Linuxu, BSD a dalších unixovských systémů.[1]
A Windows
Porovnáme-li unixovskou uživatelskou zkušenost s windowsovskou uživatelskou zkušeností, můžeme si povšimnout rozdílů. Unix nabízí celou řadu základních nástrojů a očekává ze strany uživatele určitou zvídavost a kreativitu, neboť je na něm, jak zkombinuje tyto jednoduché nástroje, aby se dopracoval k požadovanému výsledku. Naproti tomu od uživatele Windows se očekává určitá pasivita. Vývojáři v zásadě vymyslí za uživatele, jakým způsobem má užívat poskytované nástroje, a tuto zkušenost uživateli nabídne. Lépe řečeno vnutí, neboť uživatel často nemá jinou volbu než přijmout, co vymysleli lidé chytřejší než on. Tím neříkám, že je to a priori špatně. Jen poukazuju na to, že to není jediný způsob, jak používat počítač, resp. operační systém.
Linux a další unixovské systémy mají primárně textové rozhraní, tzv. CLI čili command line interface). Grafické rozhraní, tzv. GUI čili graphical user interface), nejčastěji X Window (neplést s Windows) je volitelné a není nutné ho instalovat. Především na serverech běží unixovské systémy bez grafického rozhraní. Windows sice mají DOS (PowerShell), ale jsou postavené nezávisle na něm. Windows jsou v jádru grafický systém. Oba přístupy mají své silné a slabé stránky, ale rozdíl, který chci zdůraznit, je v tom, že design Windows nepočítá s tím, že by někdo chtěl systém používat bez grafického rozhraní.
Jinými slovy Unix je spíš jako stavebnice, Windows spíš jako monolit. Není úplně fér je porovnávat, protože používají odlišné metody. Unix je také mnohem starší a byl původně vytvořen pro úplně jiný hardware.
Napodobenina
Docela dlouho mi trvalo, než jsem docenil přednosti unixovských systémů. Jedním z hlavních důvodů, tedy kromě toho, co se nachází mezi klávesnicí a židlí, je fakt, že zejména linuxovské distribuce se snaží napodobovat uživatelskou zkušenost Windows. Některá linuxovská „distra“ vědomě o podobnost s Windows usilují, aby se uživatelům Windows usnadnil přechod na Linux. Také mnoho youtube recenzentů Linuxu se soustředí hlavně na instalaci systému, jak snadné to bylo, jako dlouho to trvalo, případně jaké problémy se během instalace objevily. A dále na novinky, vychytávky a defaultní kombinaci GUI aplikací. Mnohé z těchto aplikací fungují i pod Windows (např. Gimp, Inkscape, Scribus), což ještě více posiluje dojem, že recenzenti i tvůrci dister chtějí říci „podívejte se, umíme totéž co Windows a ještě něco navíc.“
Možná je to i pravda. Desktopové prostředí zvané KDE umí všechno co grafické prostředí Windows a ještě pár vychytávek k tomu. Vychytávek, které jsem asi nikdy nepoužil a většina uživatelů Windows patrně potřebovat nebude. A v tom vidím problém. Linux, především hlavní linuxové distribuce se snaží konkurovat Windows tím, že usilují být windowsovštější než Windows samotné.
Naštěstí to neplatí plošně. Distra jako zmíněný Slackware, Arch, Gentoo, Void, Alpine a mnohá další, včetně většiny BSD se drží osvědčených unixovských principů. Také ne všichni youtubeři jedou podle výše popsané šablony. Viz kanál Luka Smithe.
Jak na to?
Jsem sice dlouholetý uživatel OpenBSD, ale nepovažuju se za natolik osvíceného, abych psal nějaké manuály nebo provozoval online poradnu. Mattova, Lukova videa (a mnoha dalších lidí) jsou v tomto směru užitečnější.
Přesto pár doporučení, jimiž se sám ke své vlastní škodě často neřídím. Předně nebát se terminálu. Naučit se používat textové editory, především vi(1), který je často součástí základního systému. Naučit se alespoň trochu skriptovat, používat sed(1), awk(1) a další. Je šikovné psát si skripty na opakující se úkony. Konfigurační soubory dokážou přizpůsobit program potřebám uživatele, vlastní klávesové zkratky mohou významně urychlit práci.
Neškodí seznámit se trochu ze základním systémem, mít představu o programech, které jsou standardně jeho součástí. A využívat man(1). Zejména u BSD jsou manuály kvalitně zpracované a často uvádí příklady. Takto má člověk dokumentaci stále po ruce a nemusí nic hledat na internetu. Je pravda, že číst manuály, jež jsou navíc v angličtině, vyžaduje určité úsilí, ale člověk se aspoň něco naučí.
Na závěr
Neříkám, že je Unix světlo na konci tunelu, ani že je pro každého. Výhody, které v něm vidím já, nemusí spoustě lidí připadat podstatné. Ale jsou reálné.
EOF