Jaký je Unix
Literatura
- Eric Steven Raymond — The Art of Unix Programming
-
http://www.catb.org/~esr/writings/taoup/html/
- Eric Steven Raymond — The Cathedral and the Bazaar
-
http://cs.wikipedia.org/wiki/Katedrála_a_tržiště
-
http://cs.wikipedia.org/wiki/Linusův_zákon
-
Katedrála a tržiště
-
Katedrála a tržiště -- dvoujazyčné PDF
Historie
Genesis 1969-1971
- CTSS (Compatible Time-Sharing System) →
Multics (Multiplexed Information and Computing Service)
- Multics se zhroutil pod svou vlastní tíhou → Unix
- Unix znamenal návrat zpět k primitivnímu počítání pomocí dávkových příkazů
- Unix se zrodil v roce 1969 v hlavě počítačového vědce Kena Thomsona
v laboratořích AT&T Bell labs jako reakce na přeplácaný Multics
- v roce 1969 bylo víceuživatelské užití počítače horkou novinkou
PDP7
PDP11
Ken Thompson sedící,Dennis Ritchie stojící
- Thomson a Ritch psali nástroje pro vývoj hry Space Travel,
které se později staly jádrem systému Unix
- už v prvopočátcích má Unix příjemnější programovací prostředí
než tehdy běžné operační systémy
- Multics měl 1000 stran technické specifikace, Unix byl okamžitý
nápad tří lidí, který se podařilo Kenu Thomsonovy implementovat
na zastaralém stroji, který byl navržen jako grafický terminál
ke skutečnému počítači
- Unix je využíván firmou AT&T ke zpracování textu
Douglas McIlroy
"Tlak, ze strany spolupracovníků a upřímná hrdost
na hotové dílo způsobila, že jsme části kódu přepsali nebo vyřadili,
protože se vynořili lepší nebo obecnější myšlenky. Profesionální
rivalita a ochrana vlastního písečku byly něčím neznámým. Událo se
tolik dobrých věcí, že se nikdo nesnažil chránit své nápady."
Exodus 1971-1980
- v roce 1971 Ritch vytvořil na základě skriptovacího
jazyka B
jazyk C
a Unix je přepsán do jazyka C ⇒ Unix se stává přenositelným systémem
- v roce 1974 má Unix 600 instalací a je veřejně představen světu
- firma AT&T nesmí vstupovat na počítačový trh ⇒ zdrojový kód dostal
každý, kdo o něj požádal
- mnohé univerzity a instituce přispívají k vývoji a jejich vylepšení se
stávají součástí systému, nápady se přelévají z akademického světa do
průmyslových laboratoří a zpět
- Unix Version 7 (1979) je používám k podpoře všech operací v systému
Bell a je rozšířen na mnoha univerzitách
- Hackeři používají různé operační systémy a o Unix se příliš nezajímají
- nejdůležitějším místem akademického vývoje Unixu je
univerzita v Barkeley -- BSD
Unix dostává podporu protokolu TCP/IP a komunita kolem Unixu a
kolem sítě ARPANET začíná pomalu mísit; Hackeři
se naučili jazyk C a začali ve své hantýrce používat slova jako pipes a shells atd.
v roce 1982 je založena firma Sun Microsystems a začíná prodávat
svou vlastní variantu systému Unix
- firma AT&T je antimonopolním úřadem rozbita a může vstupovat na
počítačový trh ⇒ z Unixu se stává produkt ⇒ je zničena možnost volných
výměn zdrojového kódu, což je hlavní zdroj vitality systému
- (1985) Richard Stallman vydává
GNU Manifest a zakládá
Free Software Foundation,
která GNU spravuje
- unixová komunita se štěpí,
varianty Unixu jsou nekompatibilní ⇒ POSIX
- v roce 1981 přichází Microsoft, který se zaměřuje na domácí
uživatele, IBM začíná prodávat osobní počítače,
které jsou ale příliš slabé na provoz systému Unix
- přichází čip Intel 80386,
který je již vhodný pro běh operačního systému Unix
Povstání proti nadvládě 1991-1995
- BSD má být očištěno od chráněného kódu, ale stává se předmětem žaloby
firmy AT&T, a komunita kolem BSD se štěpí ⇒ velké oslabení a opoždění
vývoje BSD
- v srpnu 1991 ohlásil Linus Torvalds projekt Linux
Linus by se byl připojil k BSD, ale nevěděl o něm
- v roce 1993 přichází internetový boom
- Linux a
BSD se opírá
o distribuovaný vývoj a spolupráci pomocí
Internetu, významnou roli hraje program patch
Larryho Walla
- projekt XFree86 dal Linuxu a BSD v roce 1992 grafické uživatelské
rozhraní
- s nástupem levných počítačů a Internetu přichází nová generace
programátorů, pro které je Linux výzvou a lákadlem ⇐ Linux v sobě soustředí
20 let historie software s otevřenou architekturou, která byla předtím
rozptýlena v mnoha různých vlastnických Unixových platformách; Linux obsahuje
velice kvalitní GNU nástroje
- Linux je pozoruhodně odolný proti chybám, protože "Máte-li k dispozici
dostatečný počet očí, jsou všechny chyby malé" (Linusův
zákon)
- rozsah a kvalita software v Linuxových distribucích je vhodná pro
ostrý provoz -- v roce 1993 přichází Apache
- Linus se choval pragmaticky, použil nástroje GNU a licenci GPL
k ochraně kódu, ale odmítal Stallmanův ideologický program; tím
překonal rozdělení vývojářské komunity
Unixová filozofie
Každý operační systém, má nějakou nosnou myšlenku
důsledkem stále rostoucího výkonu je, že 50% z toho, co víme je po 18
měsících zastaralé; Unix tento fakt důmyslně vstřebává; lze totiž předvídat,
co vytrvá a co zanikne
KISS -- Keep It Simple, Stupid
Hlavní zásady a jednotící myšlenky
- všechno je soubor
- každý program dělá dobře jednu věc, je-li potřeba vykonat další úlohu
vytvoří se pro ni samostatný program (menší náchylnost k chybám)
vždy se předpokládá, že výstup jednoho programu se může stát vstupem
dalšího programu -- programy jsou navrženy tak, aby spolu
spolupracovaly pomocí roury
curl "http://en.wikipedia.org/wiki/Pipeline_(Unix)" | \
sed 's/[^a-zA-Z ]/ /g' | \
tr 'A-Z ' 'a-z\n' | \
grep '[a-z]' | \
sort -u | \
comm -23 - /usr/dict/words
text je univerzálním rozhraním, proto se, pokud možno, používají
textové proudy a textové soubory
předpokládá se, že programátor ví vše nejlépe
rm -rf *
na druhou stranu ale systém důsledně hlídá, zda nepracujete s daty
jiného uživatele
- velmi silná úloha příkazového řádku CLI
- programy mohou spolupracovat
- jednoduchá vzdálená správa
- možnost skriptování
- podpora příležitostného programování ⇒ jednoduchý přechod od
uživatele k vývojáři
- systém implicitně obsahuje nástroje pro vývoj a skriptování
- uživatel může jednoduše a zábavně automatizovat běžné úlohy
Co je na Unixu špatného?
- je pozoruhodně obtížné určit, která návrhová rozhodnutí z roku 1969
jsou jednoznačně špatná
nejčastější námitkou jsou důsledky filozofie razící cestu:
mechanizmus nikoli zásada ⇔
uživatel zná své potřeby vždy lépe než návrhář operačního systému.
Potíž je v tom, že když uživatel může nastavit zásadu, téměř vždy to
znamená, že ji nastavit musí; koncové uživatele netechnického
zaměření nadměrná možnost nastavení a stylů uživatelského rozhraní
natolik drtila, že dávali přednost systémům, které jim, alespoň
navenek, nabízely více jednoduchosti .
Co je na Unixu dobrého?
- software má otevřené aplikační rozhraní
- aplikace jsou přenositelné, nezávisle na hardware
- jednoduché věci zůstávají jednoduché a složité jsou alespoň možné
- to, co se naučíte v Unixu, můžete použít kdekoliv
- improvizace je v Unixu veselou zábavou