© Milan Keršláger http://www.pslib.cz/ke/slajdy UNIX 1. Úvod Obsah: vznik a hlavní větve standardizace (POSIX, SUS, X Window System) open system, filozofie Unixu © Milan Keršláger http://www.pslib.cz/ke/slajdy 16.12.2010 http://creativecommons.org/licenses/by-nc-nd/3.0/
Co je UNIX operační systém (OS) z roku 1969 velký rozmach s nástupem WWW vhodný pro WWW servery vzorem pro mladší systémy DOS → adresáře, interpret pro příkazový řádek... MS Windows → kvóty, pevné a symbolické linky... standardizovaný POSIX → vláda USA, přenositelnost aplikací Single UNIX Specification
Kořeny UNIXu Bellovy laboratoře AT&T práce na systému MULTICS společný projekt s MIT a GE měl umět úplně všechno → komplikovaný systém projekt nebyl nikdy dokončen 1969 – Ken Thompson sám napsal jednoduchý systém pro počítač PDP-7 zdůvodněno jako nástroj na zpracování dokumentace dodnes je zpracování textů silným rysem název UNIX odkazuje na Multics některé nové ideje Multicsu, ale jen to jednoduché
První kroky UNIXu 1973 – přepis do jazyka C nikdo nevěřil, že OS lze napsat ve vyšším jazyku do té doby se běžně používal JSA → velké potíže s přenosem na jiný (nebo novější) počítač Thompson přepisuje OS a formuje zároveň jazyk C otcem jazyka je Dennis Ritchie pouze malé I/O části kódu v JSA zdrojový kód licencován univerzitám → BSD (Berkeley Software Distribution) vlastní verzi má též AT&T
Dvě hlavní větve UNIXu AT&T SVR4 (Systém V revision 4) ochranná známka UNIX vylepšení publikována BSD univerzitní větev, též publikace vývoje pozitivní vliv na zavádění TCP/IP odstranění kódu od AT&T velmi volná licence, zdrojové kódy
Další verze UNIXů každá komerční firma vlastní UNIX Ultrix (Digital), Minix (Tanenbaum), Xenix (Microsoft), Irix (SGI), Solaris (Sun), AIX (IBM), … různá interakce programu s OS problematické portování programů prodražování vývoje, uzamykání na platformě nelibost uživatelů ochrana investic (firmy, státní zakázky → USA) silný tlak na standardizaci X Window System, POSIX, Single UNIX Specification, LSB
X Window System základ pro GUI v unixových systémech úplně první byl Xerox Alto (1973) – WIMP následovaly „W Windows System“ 1984 → MIT asynchronní komunikace (zrychlení) klient (aplikace) – server (X server ovládá HW) XFree86 (1992) → X11R5 X Windows System implementace pro IBM PC X.org (1999) dnes v Linuxu, reakce na změnu licence XFree86
POSIX Portable Operating System Interface definice jednotného API → portabilita programů přijímá IEEE (viz Internet) a ISO (mezinárodní) 1988, poslední 2008 nezávislé na konkrétním OS též MS Windows kvůli státním zakázkám, ale výsměch příkazový řádek, skriptování (Korn shell) mnoho utilit (awk, echo, ed, ...) I/O API (soubory, terminál, síť, threading) dnes POSIX:2008 a Conformance testing
Single UNIX Specification původně konkurence k POSIXu sdružení COSE (1993) firmy vyvíjející unixové systémy standard zdarma (na rozdíl od POSIX) 2001 → společně s POSIX API, hlavičkové soubory, utility UNIX98, UNIX03 BSD a Linux neregistrovány snaha o maximální kompatibilitu
LSB Linux Standard Base (2001) knihovny, utility, tisk, runlevel, X Window System zahrnuje FHS → Filesystem Hierarchy Standard 1993, speciálně pro Linux adresáře, umístění (konfiguračních) souborů, knihoven dnes v4.0 (2008) kontroverze RPM a DEB Debian protestuje, že má lepší balíčkovací systém podporováno Red Hat, SUSE
Unixové války přelom 80. a 90. let 20 století souboj o standardizaci mnoho nekompatibilních unixových systémů Ultrix (DEC), Minix, Xenix (Microsoft), Irix (SGI), … vznik konkurenčních sdružení války odrazovaly zákazníky → uvolněné místo pro Linux a Windows NT 1993 – COSE Single UNIX Specification ukončení unixových válek
Unix pro PC nelze používat ochrannou známku alternativní názvy OS evokují vazbu na UNIX všechny sledují POSIX a Single UNIX Spec. všude podobné prostředí, vysoká přenositelnost starší systémy pro IBM PC Xenix – Microsoft (1980—1987) Minix – Andrew Tanenbaum (1987) mikrojádro, jako součást knihy o OS, ale licencováno Linux – Linus Torvalds (1991) studentská práce, komunitní vývoj, licence GPLv2
Proč se učí UNIX otevřený systém (open system) vše je detailně a technicky zdokumentováno známý zdrojový kód lze o něm diskutovat, vědecké práce ověřování teoretických předpokladů zažitý v univerzitním prostředí dnes Linux jako open source software zdrojové kódy může ovlivnit každý práce tisíců studentů (zejména VŠ)
Open system otevřený (počítačový) systém 80. léta → unixové systémy vydělení proti mainframům a minipočítačům neplést s open source software open system může být komerční s uzavřeným kódem interoperabilita schopnost spolupráce s ostatními systémy portabilita schopnost přenosu na jinou platformu otevřené standardy pro software vše je detailně zdokumentováno dokumentace je k dispozici
Filozofie unixu UNIX je jednoduchý víceúlohový (multitasking) víceuživatelský hierarchický systém souborů téměř vše je soubor konfigurační soubory v holém textu důraz na vztahy mezi programy orientovaný na zpracování textů
UNIX je jednoduchý v jednoduchosti je genialita UNIX je „geniálně jednoduchý“ může to znamenat i silné zjednodušení některé věci prostě neřešíme... vyřeší to třeba až obsluha (!) kupodivu to dobře funguje jednoduché → málo chyb to bude zřejmě to hlavní
Víceúlohový (multitasking) víceúlohový systém zjednodušuje využívání počítače není nutné ukončit první úlohu a pak začít druhou lze spustit více úloh najednou → multitasking ale máme (měli jsme) jen jeden procesor budou se muset střídat rychlé střídání → ani to nebude vidět 100 až 1000 krát za sekundu v zátěži běžně 5000 krát → režie přepínání snižuje výkon vzniká problém nežádoucího ovlivňování jednotlivé úlohy se musí vzájemně oddělit → jádro OS
Víceuživatelský snaha o maximalizace využití počítače všichni se mohou zároveň přihlásit všichni mohou zároveň pracovat ale mohou si vzájemně škodit (i nechtěně) je nutné uživatele vzájemně oddělit využijeme multitasking zavedeme oprávnění na běžící úlohy a též na soubory a adresáře původně zásadní výhoda UNIXu nebyl sice první, ale dobře fungoval, nízké HW nároky
Hierarchický systém souborů adresářový strom kapacita počítačů i úložného prostoru nízká takže stačil jen kořenový adresář nešlo vytvářet další adresáře (též např. CP/M) nicméně máme mnoho uživatelů potřebujeme domácí adresáře potřebujeme přehledně uspořádat celý systém po UNIXu považovány podadresáře za základ ...nebyl by bez nich dobrý OS
Téměř vše je soubor snaha o maximální abstrakci soubor je lineární řada bitů (bajtů) máme jeden začátek a pak následují po řadě další bajty programátor umí zacházet se soubory otevřít, číst, zapisovat, zavřít → jednotné API jádro systému poskytuje speciální soubory speciální soubor představuje skutečné zařízení např. pevný disk, DVD médium, USB port, paměť, ... někdy se nejde „posunovat“ (sériový port, USB, klávesnice...) vždy jde číst nebo zapisovat nefunguje pro vše, o to se snaží až Plan9 (Thompson)
Konfigurační soubory používá se prostý text (plain text) vše je vidět i jednoduchým editorem nic není skryto, vše je „transparentní“ není potřeba interpretovat binární hodnoty např. regedit ve Windows neexistují „magické hodnoty“ snadno se upravuje komentáře v slouží i jako dokumentace převzato i do komunikačních protokolů Internetu původně inzerováno jako výhoda Windows 3.x