Unix a Internet 1. Unix a Linux Obsah: vznik Unixu, hlavní větve, standardizace open system, unixové války Linux, open source, licence distribuce Linuxu, komerční Linux © Milan Keršláger http://www.pslib.cz/ke/slajdy 2017/10/10 http://creativecommons.org/licenses/by-nc-nd/3.0/
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 UNIX vzorem pro mladší systémy DOS (adresáře, interpret), Windows (kvóty, symlink, ...)
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 Window System“ 1984 → MIT asynchronní komunikace (zrychlení) klient (aplikace) – server (X Server ovládá HW) XFree86 (1992) → X11R5 X Window 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
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
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ě jsou hlavní UNI*X systémy: Linux – dle distribuce se blíží SYSV nebo BSD BSD nástupci FreeBSD – nejvíce se blíží Linuxu (stejné aplikace) NetBSD – důraz na portabilitu OpenBSD – důraz na bezpečnost málo komponent, starší verze, malý výkon zajímavé projekty → OpenSSH
Linux
Linux (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
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“
Tržiště a katedrála 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é e-mailové konference firmy používají model katedrála hierarchická struktura kopírující řízení podniku méně pružný, až zkostnatělý vývoj
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ím na Internetu
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ý
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
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
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
Příklady jiných licencí Apache Licence od Apache Software Foundation je to free software licence vyžaduje zachování autorství (copyright) a disclaimer (zřeknutí se odpovědnosti) Open licence od Microsoftu nejsou OSS (!!) slovo „Open“ je použito jen pro zdání otevřenosti ...je mnoho dalších licencí
Linux vznik 1991, fenomén 90. let 20. století volně šiřitelné unixové jádro pro PC licence GPLv2 s výjimkou (nenakazí programy) Linus je přirozený respektovaný vůdce je nadaný programátor, má komunikační schopnosti GNU nebylo schopné vytvořit vlastní OS GNU Hurd nad mikrojádrem MACH64 stále ve vývoji těží z efektivity open source software v mnoha ohledech vynikající kanibalizace komerčních UNIXů
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í
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, ...
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
Komerční Linux 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 podobně pronájem software pro firmy (Microsoft)
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í...
Současná úroveň Linuxu již dlouho jako osvědčený server Google, burzy, Titanic, výpočetní clustery, ... vyspělý kancelářský systém kancelářský software (LibreOffice, Koffice) Firefox, Opera, Chromium, Konqueror, Apache e-mail, vývojová prostředí, grafika problematické hraní her málo nativních her, některé ve Wine, Steam (2013) základ Androidu, Firefox OS, Chrome OS