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

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

UNIX 1. Úvod © Milan Keršlágerhttp://www.pslib.cz/ke/slajdy Obsah: ● vznik a hlavní větve, standardizace.

Podobné prezentace


Prezentace na téma: "UNIX 1. Úvod © Milan Keršlágerhttp://www.pslib.cz/ke/slajdy Obsah: ● vznik a hlavní větve, standardizace."— Transkript prezentace:

1 UNIX 1. Úvod © Milan Keršlágerhttp://www.pslib.cz/ke/slajdy Obsah: ● vznik a hlavní větve, standardizace ● open system, filozofie Unixu ● odvozené unixové systémy ● Linux, distribuce, komerční distribuce ● open source software, free sofware, tržiště a katedrála ● projekt GNU, licence (GPL, LGPL, GFDL, BSD)

2 Co je UNIX ● operační systém (OS) z roku 1969 ● velký rozmach s nástupem WWW (1992) – vhodný pro WWW servery ● 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 odkazuje na Multics – některé nové ideje Multicsu, ale jen to 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 → 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

5 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 (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 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

8 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

9 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

10 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

11 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

12 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

13 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Š)

14 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)

15 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 holém textu ● důraz je kladen na vztahy mezi programy ● je orientován na zpracování textů

16 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 – jednoduchost bude zřejmě to hlavní, o co v systému jde

17 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 ● řeší jádro OS, nutná je podpora v HW

18 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

19 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

20 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)

21 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í“ (viz open system) – původně inzerováno jako výhoda Windows 3.x ● není potřeba interpretovat binární hodnoty – např. regedit ve Windows – neexistují „magické hodnoty“ – naopak je nutné text parsovat (snadno pomocí knihovny) ● snadno se upravuje ● komentáře v slouží i jako dokumentace ● převzato i do komunikačních protokolů Internetu

22 Odvozené unixové systémy ● mnoho firem vyvíjelo vlastní unixové OS ● UN*X – označení pro (odvozené) unixové systémy ● následují jednu z hlavních větví (SYSV a BSD) ● v současné době ústup komerčních UN*Xů ● současné systémy: 1) Linux – různé distribuce (podle ní je spíše BSD nebo SYSV) 2) pokračovatelé BSD 3) Solaris – dříve Sun, OpenSolaris ukončen po akvizici do Oracle

23 Pokračovatelé BSD ● několik open source projektů z 386BSD ● FreeBSD – 1993, zaměřeno na výkon a PC platformu ● NetBSD – 1993, zaměřeno na portabilitu na různé platformy ● OpenBSD – 1995 z NetBSD, zaměřeno na bezpečnost ● Mac OS X (Apple) ● obsahuje kód z jádra FreeBSD

24 Loga BSD projektů Obrázky ve slajdech: wikipedia.org

25 MINIX ● Andrew S. Tanenbaum ● 1987: jako příloha knihy – Operating Systems: Design and Implementation ● mikrojádro – známá Tanenbauma disputace s Linusem – Linux neoprávněně obviněn z kopírování kódu (2004) ● vyvrátil sám Tanenbaum ● původně za peníze (69 dolarů) – po roce 2000 jako free software ● dříve různé platformy – Motorola 68000, SPARC, Atari, Commodore, Apple,...

26 Vznik Linuxu ● 1991 – Linus Torvalds ● student univerzity v Helsinkách ● chtěl systém bez placení licence ● zdrojové kódy uložil na FTP server ● jádro napsal v rámci předmětu „operační systémy“ ● komunitní vývoj ● různí lidé mu posílali opravy ● Linus opravy posoudil, začlenil a výsledek zveřejnil ● postupným vývojem došlo k rychlému zlepšování ● tj. styl vývoje „tržiště“ (proti katedrále)

27 Linux ● fenomén 90. let 20. století ● původně název jen pro unixové jádro ● dnes označení pro celý systém – různé distribuce Linuxu ● licence GPLv2 s výjimkou (nenakazí programy) ● kanibalizace komerčních UNIXů ● Linus je přirozený respektovaný vůdce – nadaný programátor + komunikativní schopnosti ● GNU nebylo schopné vytvořit vlastní OS ● GNU Hurd nad mikrojádrem MACH64 stále ve vývoji

28 Jádro Linuxu ● jádro dalo název celému systému ● typově je to modulární monolitické jádro – modul je ovladač nebo implementace části jádra ● např. podpora TCP/IP, souborový systém FAT,... ● ovladač síťové karty, ovladač řadiče, ovladač pro USB,... – modul je zaveden nebo odstraněn za běhu ● používán příkaz modprobe, insmod, rmmod ● šetří se systémové prostředky ● není nutné kvůli novému ovladači přeložit znovu celé jádro – monolitický návrh zvyšuje efektivitu, výkon ● vývojář ale musí znát souvislosti okolních částí ● známá je disputace Linuse (monolit) a Tanenbauma (mikrojádro)

29 Dnešní vývoj jádra Linuxu ● Linus vydává nové verze jádra ● stále komunitní vývoj, model bazaru ● zveřejňováno na ● příspěvky komerčních firem ● firma Red Hat, Inc. → komerční distribuce – též další firmy (IBM, Sun, AMD, Novell, Intel,...) ● platí vývojáře, kteří přispívají ● každá část jádra má správce (maintainer) ● kdokoliv může poslat správci opravu ● bude-li dobrá, pošle ji Linusovi (systém důvěry)

30 Souvislosti Linuxu ● (dnes) označení pro celý (unixový) systém ● využívá open source software (OSS) ● jádro OS nestačí (+kompilátor, utility, editory,...) ● využívá volně dostupné OSS projekty (Internet) ● chráněno různými OSS licencemi ● snaha o volně šiřitelný systém, který ● je dostupný bez placení, může sloužit k zábavě, studiu, výuce i komerčně → distribuce Linuxu ● společný vývoj → vytváření komunity ● teorie investice úsilí a zpětného získání lepší verze

31 Distribuce ● úhledné balení (instalační DVD) ● uživatel nemusí shánět komponenty na Internetu ● využívá samostatné open source projekty ● několik hlavních distribucí ● Fedora → čelní vývoj pro Red Hat Enterprise Linux ● Debian → komunitní vývoj ● Ubuntu → vychází z Debianu, firma Canonical ● Mandriva, OpenSUSE, Slackware, CentOS, … ● … a mnoho menších distribucí

32 Loga distribucí

33 Co je v distribuci ● jednotlivé přeložené komponenty ● uloženy v balíčcích, balíčky v repozitářích ● dostupné zdrojové kódy, postupy kompilace ● zahrnuty opravy od tvůrců distribuce (záplaty) ● výběr nejčastěji používaných programů ● instalační CD, DVD nebo Live CD ● pravidelně vydávány, volně ke stažení, ale i poštou – Live CD se nemusí instalovat ● příručky, dokumentace ● dnes i komunitní weby s podporou pro uživatele

34 Přínos distribuce ● úspora času ● uživatelé se nemusí věnovat rutinním záležitostem – nové verze programů, opravy chyb, sledování vývoje – bezpečnostní záplaty, bezpečnostní audity – testování nových verzí – kontakt s původními vývojáři,... ● tvorba podpůrných nástrojů ● instalační (a aktualizační) program ● konfigurační nástroje, automatizované skripty ● záchranné CD, systémy na sledování chyb,...

35 Komerční distribuce ● distribuce „se zárukou“ (je jich více) ● Red Hat Enterprise Linux – firma Red Hat, Inc. – poskytuje SLA, vyžadováno pro Oracle, SAP, … – klony zdarma: CentOS, Scientific Linux, … ● SUSE Linux Enterprise Server (SLES) – firma Novell (koupil SUSE) ● kupuje se služba, ne vlastní systém ● stejně dnes postupují i komerční softwarové firmy – např. pronájem software pro firmy (Microsoft)

36 Uživatel Linuxu ● vybere si distribuci ● podle toho, čemu rozumí „přítel na telefonu“ ● podle funkčnosti na svém hardware ● podle zaměření distribuce – server, desktop, výuka, vývoj software, Live CD,... ● stáhne z Internetu a používá ● bez omezení nainstaluje ● zapojuje se do komunity ● řešení problémů, hlášení chyb, národní prostředí...

37 Licenční politika ● licence stanovuje podmínky užití ● každý program vlastní licenci ● distribuce obsahuje typicky pouze free software ● lze volně používat, upravovat, redistribuovat ● dodatečně lze doinstalovat uzavřený software – např. Flash player, MP3 kodeky, DivX, H.264, … ● distribuce lze též prodávat ● pokud někdo zaplatí... ● nutné poskytnout zdrojové kódy (vyžaduje licence) – typicky vystavení na Internetu

38 Projekt GNU ● starší než Linux (1983) ● cílem vyvinout volně šiřitelný unixový OS – začali editorem (Emacs) – dále kompilátor, GNU libc, unixové utility,... ● dodnes nemá vlastní jádro OS → Linux ● vytvořili licence (GPL, LGPL, GFDL) ● dnes ho řídí FSF (Free Software Foundation) ● Richard Stallman ● kontroverzní zakladatel → z GNU politikum ● nově teze o „svobodném software“ – původně „free software“, význam slova free je ale široký

39 Open source software ● vyžaduje splnění různých podmínek ● využívání software i zdrojového kódu bez restrikcí ● dostupnost zdrojového kódu ● možnost úprav a následné redistribuce ● detaily viz „Open Source Definition“ ● pozor na podobně znějící „open“ licence, které jsou však restriktivní (např. od Microsoftu) ● zastřešuje různé znějící licence ● certifikace ostatních licencí jako „open source“

40 Free software ● myšlenka od GNU ● licence od GNU vyhovují, též BSD a další ● přísnější podmínky, než pro OSS ● konflikt s komerčními zájmy ● výrobce hardware nechce zveřejnit kód firmware ● ochrana ochranné známky (Firefox vs. Iceweasel) ● dochází k omezování uživatele ● v distribuci nesmí být některý software

41 GPL licence ● software nejen pro činnost, ale i pro vzdělání ● dovoleno studování kódu i jeho použití ● použití kódu → GPL licence i na zbytek ● virální licence ● „nakažlivost“ se nelíbí firmám ● mnoho projektů raději BSD-like licenci ● LGPL – aby GPL knihovna nenakazila program ● GFDL – pro dokumentaci ● nové verze licence podle libovůle FSF ● kontroverzní přídavky

42 BSD licence ● nevyžaduje téměř nic ● kód lze volně použít ● nutno pouze zmínit, že je obsažen BSD kód ● oblíbené pro firmy ● například MS Windows obsahuje BSD kód (TCP/IP) ● neférové vůči původním vývojářům ● dali zdarma vlastní práci, ale nezískali za to nic

43 Katedrála a tržiště ● týká se vývoje software ● klasický text ( Eric S. Raymond: The Kathedral and the Bazaar ) ● OSS používá model tržiště ( též přeneseně bazar ) ● každý přinese (zveřejní) svoji část kódu ● ze všeho jsou vybírány lepší varianty ● diskuze nad podobou kódu, časté přepisování kódu – IRC, elektronické ové konference ● firmy používají model katedrála ● hierarchická struktura kopírující řízení podniku ● méně pružný, až zkostnatělý vývoj

44 Současná úroveň Linuxu ● již dlouho jako osvědčený server ● Google, burzy, Titanic, výpočetní clustery,... ● dobrý kancelářský systém ● kancelářský software (OpenOffice, Koffice) ● WWW: Firefox, Opera, Chromium, Konqueror,...) ● , vývojová prostředí, grafika ● problematické hraní her ● málo nativních her, některé ve Wine ● mobilní telefony (Android, Maemo, MeeGo,...)


Stáhnout ppt "UNIX 1. Úvod © Milan Keršlágerhttp://www.pslib.cz/ke/slajdy Obsah: ● vznik a hlavní větve, standardizace."

Podobné prezentace


Reklamy Google