Unix a Internet 1. Unix a Linux © Milan Keršlágerhttp:// Obsah: ● vznik Unixu, hlavní větve, standardizace ● open system, unixové války ● Linux, open source, licence ● distribuce Linuxu, komerční Linux
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 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
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
● (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é ové 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
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 ● stejně dnes postupují i komerční softwarové firmy – např. 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 (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,...)