Operační systémy UNIX © Milan Keršláger
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 odhazuje komplikované
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) ● → POSIX, Single UNIX Specification, LSB, X Window System
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
X Window System ● základ pro GUI v unixových systémech ● úplně první byl Xerox Alto (1973) ● následník 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
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Š)
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
Unixové systémy ● nelze používat ochrannou známku ● alternativní názvy OS evokují vazbu na UNIX ● pro IBM PC ● Xenix – Microsoft (1980) ● 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 ● všechny sledují POSIX a Single UNIX Spec. ● všude podobné prostředí, vysoká přenositelnost
Filozofie unixu ● 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ů
Jádro Unixu ● původně monolitické ● dnes modulární ● modul je ovladač nebo implementace části jádra – např. podpora TCP/IP, souborový systém FAT, … ● modul je zaveden nebo odstraněn za běhu – rozšíří schopnosti jádra, resp. uvolní paměť ● lze využívat triky, které zvýší výkon ● což nelze u mikrojader ● známá disputace Linuse a Tanenbauma