Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

UNIX 1. Úvod Obsah: vznik a hlavní větve

Podobné prezentace


Prezentace na téma: "UNIX 1. Úvod Obsah: vznik a hlavní větve"— Transkript prezentace:

1 © Milan Keršláger http://www.pslib.cz/ke/slajdy
UNIX 1. Úvod Obsah: vznik a hlavní větve standardizace (X Window System, POSIX, SUS) UNIX pro PC, proč se učí UNIX open system filozofie UNIXu obrázky: Wikipedia.org, vlastní © Milan Keršláger

2 Co je UNIX operační systém (OS) z roku 1969
velký rozmach s nástupem WWW (1992) vhodný pro WWW servery (zpracování textu) vzorem pro mladší systémy DOS (1979) → adresáře, interpret přík. řádku... MS Windows → kvóty, pevné a symbolické linky... standardizovaný POSIX → vláda USA, přenositelnost aplikací Single UNIX Specification

3 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 je ochranná známka AT&T odkazuje na Multics, leccos převzal, ale je jednoduchý

4 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 JSA (jazyk symbolických adres, tj. assembly language) nesprávně assembler (assembler je překladač JSA) JSA jsou mnemotechnická označení strojových instrukcí → 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 (spolupracovník) Dennis Ritchie pouze malé I/O části kódu v JSA ovladače hardware, manipulace s nastavením CPU apod.

5 Dvě hlavní větve UNIXu AT&T verze přímo „od zdroje“ (Bell Labs)
nejznámější SVR4 (System V revision 4) → 1988/9 POSIX, lokalizace, TCP/IP, VFS, NFS, ABI, ... ochranná známka UNIX, vylepšení publikována BSD (podle Berkeley Software Distribution) univerzitní větev, též publikace vývoje pozitivní vliv na zavádění TCP/IP (1983) odstranění kódu od AT&T velmi volná licence, zdrojové kódy

6 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

7 Zdroj: wikipedia.org

8 X Window System základ pro GUI v unixových systémech
úplně první byl Xerox Alto (1973) → WIMP následovaly „W Window 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

9

10

11

12

13 POSIX Portable Operating System Interface
standard nezávislý na konkrétním OS též MS Windows kvůli státním zakázkám, ale výsměch definice jednotného API → portabilita programů přijímá IEEE (viz Internet) a ISO (mezinárodní) 1988, poslední 2008 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

14 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 (Common Open Software Environment) Single UNIX Specification ukončení unixových válek

15 Kauza SCO Group v roce 2003 žalovalo SCO firmu IBM
soudní spor o miliardu dolarů argumentem nároky na UNIX SCO prý získala nákupem firmy ??? licence 2003 finanční injekce SCO od Microsoftu Red Hat, Inc. žaluje SCO o ukončení akcí proti Linuxu 2004 žaloby na další firmy Linux prý obsahuje kód vlastněný SCO 2010 → práva nepatří SCO, ale firmě Novell 2016 dohoda stran o zrušení posledního nároku firma SCO je již několik let v bankrotu

16 Single UNIX Specification
původně konkurence k POSIXu 1993 COSE (Common Open Software Environment) firmy vyvíjející unixové systémy standard zdarma (na rozdíl od POSIX) 2001 → společně s POSIX, 2008, …, 2016, ... API, hlavičkové soubory, utility UNIX98 (1998), UNIX03 (2003) BSD a Linux neregistrovány snaha o maximální kompatibilitu

17 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 v5.0 (2015), ISO/IEC standard kontroverze RPM a DEB Debian protestuje, že má lepší balíčkovací systém podporováno Red Hat, SUSE tj. firmami zabývajícími se komerčním využitím Linuxu

18 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 (od roku 1987) součást knihy o OS, zprvu licencováno Linux – Linus Torvalds (od roku 1991) studentská práce, komunitní vývoj, licence GPLv2

19 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, Android jako open source software zdrojové kódy může ovlivnit každý práce tisíců studentů (zejména VŠ)

20 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 umožňuje interoperabilitu schopnost spolupráce s ostatními systémy usnadňuje portabilitu snadno zajištěno tak, že: vše je detailně zdokumentováno dokumentace je volně k dispozici manuálové stránky, zdrojový kód (program, jádro, knihovny)

21 Filozofie unixu UNIX je jednoduchý je víceúlohový (multitasking)
je víceuživatelský má hierarchický systém souborů je v něm téměř vše soubor konfigurační soubory jsou v prostém textu důraz je kladen na vztahy mezi programy je orientován na zpracování textů žádná zpráva, dobrá zpráva

22 (1) 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 systém lze snadno pochopit (nebo si domyslet) jednoduchost bude zřejmě to hlavní, o co v systému jde v poslední době zvyšování komplexnosti např. init × systemd, dbus, policykit, gvfs, pulseaudio, ...

23 (2) Víceúlohový systém tzv. multitasking
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 úlohy se musí na procesoru střídat rychlé střídání → uživatel to ani nepozná 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 je nutné vzájemně oddělit řeší jádro, nutná podpora v CPU (tzv. privilegovaný režim)

24 (3) 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 (pro oddělení procesů) zavedeme navíc 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

25 (4) Hierarchický systém souborů
adresářový strom kapacita počítačů i úložného prostoru byla nízká takže starším systémům stačil jen kořenový adresář nešlo vytvářet další adresáře (např. CP/M) nicméně v Unixu 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

26 Ukázka stromu adresářů
/ ├── bin ├── home │   ├── huzva │   │   ├── Obrázky │ │ └── Dokumenty │   └── jane ├── tmp ├── usr │   ├── bin │   └── share └── var ├── log └── run

27 (5) 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 speciální soubory zpřístupní HW jako soubory tj. 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)

28 Příklad práce se spec. soubory
cat /dev/sr0 > ObsahDVD.iso speciální soubor je celé CD/DVD médium ISO soubor (obraz) lze vypálit na čisté CD/DVD lze použít i na disk či diskový oddíl (sda, sda1) fdisk -l /dev/sda vypíše prvních 512B jako tabulku MBR lze i na obraz disku v souboru (např. u virtualizace) gzip -dc soubor.gz > /dev/null testujeme dekompresi nikoliv rychlost disku

29 (6) Konfigurační soubory
používá se prostý text (plain text) vše je vidět i jednoduchým editorem textový soubor se snadno upravuje komentáře v slouží i jako dokumentace nic není skryto, vše je „transparentní“ (viz open system) text je ale nutné parsovat (snadno pomocí knihovny) převzato i do komunikačních protokolů Internetu původně inzerováno jako výhoda Windows 3.x (1990) tj. není potřeba interpretovat binární hodnoty jako např. regedit ve Windows pro různá nastavení neexistují „magické hodnoty“

30 Příklad konfiguračního souboru
$ cat /etc/resolv.conf domain tul.cz search nti.tul.cz nameserver $ cat /etc/shells /bin/sh /bin/bash /sbin/nologin $ cat /etc/vimrc set nocompatible set bs=indent,eol,start

31 (7) Vztahy mezi programy
programy spolupracují v systému je mnoho jednoúčelových nástrojů může-li program využít jiný, udělá to systém poskytuje podporu pro předávání dat zejména jednosměrnou rouru též sdílenou paměť, pojmenovanou rouru, IPC soket, … využívá se přesměrování, standardní proudy programy fungují jako filtry nástroje pro zpracování textů, téměř vše je soubor, ... vše bude probíráno postupně dále

32 Spolupráce programů teze: „každý program dělá jednu věc, ale dobře“
tar cf zaloha.tar /etc zaloha.tar obsahuje vše z adresáře /etc gzip -9 zaloha.tar zkomprimuje soubor do zaloha.tar.gz tar czf zaloha.tar.gz /etc obě činnosti vykonány jedním příkazem program tar si sám zavolá program gzip data si předají přes rouru, není potřeba dočasný soubor výsledek je získán rychleji, předání se děje skrze paměť

33 (8) Zpracování textů data v podobě prostého textu konfigurační soubory
systémové databáze pro uživatele, skupiny, definice domén, … co řádek, to jeden záznam položky záznamu odděleny vybraným znakem (např. : ) mnoho nástrojů na zpracování textu cat, grep, sort, tail, cut, sed, awk, … využívá se snadné spolupráce programů

34 Příklad zpracování textu
grep René /etc/passwd výběr řádků obsahujících zadaný řetězec grep René /etc/passwd | sort vybrané řádky jsou vzápětí setříděny pg_dump knihy | bzip2 > zaloha.bz2 výstup z databáze je zkomprimován do souboru arp -an | mail -s "Arp 1" výpis ARP tabulky je odeslán em

35 (9) Žádná zpráva, dobrá zpráva
programy mlčí, dokud je vše v pořádku uživatel si zvykne, že když se objeví nějaký text, měl by si ho přečíst, protože to oznamuje nějaký problém opačný (a chybný) předpoklad vede k tomu, že uživatel bezmyšlenkovitě „potvrzuje vše“ a text nečte například UAC ve Windows platí to pro klasické nástroje na příkazovém řádku find, cat, ls, diff, grep, ... novější nástroje jsou obvykle „ukecané“ :-( wget, yum, dnf, apt, ...


Stáhnout ppt "UNIX 1. Úvod Obsah: vznik a hlavní větve"

Podobné prezentace


Reklamy Google