UNIX 2. Unixové systémy © Milan Keršlágerhttp:// Obsah: ● odvozené unixové systémy ● pokračovatelé BSD, Minix ● Linux, distribuce, komeční distribuce ● open source software, free sofware, tržiště a katedrála ● projekt GNU, licence (GPL, LGPL, GFDL, BSD)
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
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
Loga BSD projektů Obrázky ve slajdech: wikipedia.org
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,...
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)
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
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)
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)
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
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í
Loga distribucí
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
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,...
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)
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í...
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
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ý
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“
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
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
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
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
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,...)