Unix
UNIX ([ˈju:nɪks]IPA) je v informatice ochranná známka operačního systému vytvořeného v Bellových laboratořích americké firmy AT&T v roce 1969. Většina současných operačních systémů je unixovými systémy různou měrou inspirována. Samotný UNIX byl inspirován komplikovaným systémem Multics, ale snažil se o zjednodušení. Na rozdíl od Multicsu, byl Unix napsán v programovacím jazyce C. Dalším vývojem UNIXu vznikl Plan 9 from Bell Labs.
Označení UNIX je ochranná známka, kterou v současné době vlastní konsorcium The Open Group a mohou ji používat pouze systémy, které jsou certifikovány podle Single UNIX Specification. Existují různé systémy, které jsou s UNIXem v různé míře kompatibilní, ale nemohou nebo nechtějí platit licenční poplatky, a proto často používají varianty názvů, které na název UNIX odkazují (například XENIX, MINIX, Linux), ale mohou se jmenovat i jinak (například BSD varianty OpenBSD, NetBSD, ale též macOS atd.). Souhrnně je označujeme jako unixové systémy (anglicky unix-like, viz článek UN*X). Pod pojmem „tradiční Unix“ se rozumí operační systém, který svojí charakteristikou odpovídá systémům Version 7 Unix nebo UNIX System V.
Charakteristika
Unixové systémy byly široce využívány jako operační systémy pro servery, pracovní stanice a v současné době i pro osobní počítače. Sehrály velmi výraznou roli při vzniku Internetu a přechodu od jednotlivých počítačů k počítačovým sítím a modelu klient-server. Unix vznikl spolu s programovacím jazykem C, který mu umožnil snadnou portaci na nejrůznější hardwarové platformy. Výsledkem je, že Unix je synonymem pro otevřený systém (anglicky open system).
Systém založený na Unixu je charakteristický tím, že (tzv. unixová filozofie):
- snaží se dělat věci jednoduše (na rozdíl od Multicsu, který se pokoušel vyřešit vše a aplikovat velmi pokročilé ideje) a uživatelům je prezentovat takové, jaké jsou
- je víceúlohový (viz multitasking) – umožňuje spuštění více programů současně
- je víceuživatelský – každý uživatel má své vlastní prostředí s privátními soubory v domácím adresáři, vlastní konfigurační soubory, přístupová oprávnění zajišťují, že uživatel nemůže škodit jiným uživatelům, ani operačnímu systému, umožňuje současnou práci více uživatelů
- má hierarchický souborový systém (strom adresářů s jedním kořenem)
- zařízení jsou zpřístupňována pomocí speciálních souborů
- data a konfigurace se ukládají přednostně ve formě textových souborů
- základní programy jsou jednoúčelové nástroje, které dobře plní svůj specifický úkol, přičemž funkce jednotlivých programů lze různými způsoby kombinovat:
- propojování nástrojů do kolon (výstupu programu je přesměrován do vstupu dalšího)
- využívání hotových programů v jiných programech
- programy mohou komunikovat pomocí meziprocesové komunikace
- je orientovaný na zpracování textů
Unix se skládá z jádra operačního systému, systémových nástrojů (tzv. utility) a dalších aplikací. Monolitické jádro se stará o nízkoúrovňové záležitosti (tzv. kernel space) a programy běží v uživatelském režimu (tzv. user space). Programy komunikují s jádrem pomocí systémových volání, čímž se pro programy vytváří stabilní API.
V 80. letech 20. století počítače využívaly mnohem více vstupně-výstupních zařízení, která přestala vyhovovat lineárnímu modelu. Proto v té době nastal odklon od monolitického jádra a příklon k mikrojádrům, kde obsluha souborového systému, počítačových sítí, asynchronních událostí generovaných myší a dalších byla odsunuta mimo jádro operačního systému.
Standardy
Bouřlivý vývoj různých verzí a variant Unixu způsoboval potíže při portaci software. Proto IEEE založila POSIX na společné struktuře hlavních soupeřících variant systému Unix a publikovala první POSIX standard v roce 1988. Počátkem 90. let započalo samostatnou, ale velice podobnou, snahu průmyslové konzorcium, iniciativa Common Open Software Environment (COSE), která vyústila ve specifikaci Single UNIX Specification spravovanou skupinou The Open Group. V roce 1998 založili Open Group a IEEE pracovní skupinu Austin Group, která by měla poskytnout společnou definici standardů POSIX a Single UNIX Specification.
V roce 1999 několik prodejců systému Unix odsouhlasilo jako standard pro binární soubory a soubory se strojovým kódem (anglicky object code) formát ELF (anglicky Executable and Linkable Format) ze systému SVR4. Společný binární formát poskytuje podstatnou míru kompatibility mezi unixovými systémy pracujícími na stejné CPU architektuře.
Pro standardizaci adresářové struktury byl vyvinut Filesystem Hierarchy Standard, který poskytuje referenční návrh adresářů pro unixové operační systémy a především pro Linux.
Historie
UNIX byl vytvořen Kenem Thompsonem a Dennisem Ritchiem roku 1969 v Bellových laboratořích, kde byl vyvíjen až do konce 70. let. Poté probíhal vývoj UNIXu ve dvou hlavních větvích:
- pod vedením AT&T: SYSTEM III, SYSTEM V
- na Kalifornské universitě v Berkeley: BSD Unix
60. léta
Massachusettský technologický institut, Bellovy laboratoře AT&T a General Electric pracovaly na experimentálním operačním systému Multics (anglicky Multiplexed Information and Computing Service). Projekt byl však kvůli své složitosti a časové a finanční náročnosti v roce 1969 ukončen.
Ken Thompson z týmu vývojářů pokračoval ve vývoji pro sálový počítač GE-645. Současně Thompson, Dennis Ritchie a Rudd Canaday vyvíjeli v Bellových laboratořích jednoduchý souborový systém. Thompson napsal hru Space Travel[1] a zjistil, že na strojích GE je příliš pomalá a drahá (cena jednoho běhu hry byla 75 dolarů).[2] Proto Ritchie pomohl Thompsonovi přepsal hru Space Travel do jazyka symbolických adres pro počítač PDP-7 od Digital Equipment Corporation. Tato zkušenost spolu s prací na projektu Multics vedla k tomu, že Thompson a Ritchie začali na PDP-7 psát sami pro sebe jednoduchý operační systém, pro který vyvinuli několik malých utilit.[3]
70. léta
Na počátku 70. let dostal projekt jméno Unics (anglicky Uniplexed Information and Computing Service), který navrhl Brian Kernighan jako žertovný protiklad k názvu Multics. Později došlo ke změně zápisu na Unix (někdy psáno kapitálkami jako Unix).
Až do této chvíle nebyl Bellovou laboratoří projekt finančně podporován. Když Computer Science Research Group chtěla používat Unix na větším počítači než PDP-7, Thompson a Ritchie kvůli získání finanční podpory a počítače PDP-11/20 uvedli, že vyvinou automatizovanou kancelář, takže do systému začali přidávat nástroje na zpracování textů. V roce 1970 získal projekt jméno, běžel na novém hardware a byl obohacen o textový editor a nástroj roff pro formátování textu. Všechny tři komponenty byly napsány ve strojovém kódu počítače PDP-11/20. Bellovy laboratoře pak používaly systém pro přihlášky patentů. Program roff se brzo vyvinul ve troff, který byl prvním nástrojem pro elektronické publikování s plnou podporou sazby. UNIX Programmer's Manual byl publikován 3. listopadu 1971.
V roce 1973 byl Unix přepsán do programovacího jazyka C v rozporu s tehdejším pravidlem, že cokoliv tak komplexního, jako je operační systém, který se musí vypořádat s časově kritickými událostmi, musí být naprogramováno výhradně v jazyce symbolických adres.[4] Přechodem z jazyka symbolických adres (JSA) na programovací jazyk vyšší úrovně se stal kód snadno přenositelným na jinou hardwarovou platformu. Obsahoval pak totiž jen velmi malé části napsané v JSA, které jediné musely být při portování přepsány.
AT&T licencovala Unix univerzitám, komerčním firmám a vládním organizacím. Licence zahrnovala všechny zdrojové kódy včetně strojově závislých částí jádra operačního systému, které byly napsány v JSA počítače PDP-11. Kopie anotovaného jádra Unixu kolovaly na konci 70. let ve velkém množství[5], což způsobilo, že byl Unix používán ve výuce jako ukázkový operační systém.
Verze systému Unix byly pojmenovány podle vydání uživatelského manuálu, takže například „Fifth Edition Unix“ a „Unix Version 5“ označovaly stejnou verzi. Vývoj pokračoval verzí 4, 5 a 6, která byla vydána v roce 1975. Tyto verze přinesly koncept roury. To umožnilo modulárnější a rychlejší vývoj. Verze 5 a zvláště verze 6 vedly k přehršli různých verzí Unixu jak uvnitř Bellových laboratoří, tak mimo ně – PWB/UNIX, IS/1 (první komerční Unix) a port Unixu na počítač Interdata 7/32 od University of Wollongong (první verze pro jiný počítač, než PDP).
V roce 1978 byl uveden UNIX/32V, který byl určen pro nový systém VAX od firmy DEC. V této době bylo provozováno přes 600 počítačů s nějakou formou Unixu. Version 7 Unix byla v roce 1979 poslední široce zveřejněnou verzí Research Unixu. Během 80. let byly vyvinuty verze 8, 9 a 10, avšak byly dány k dispozici jen několika univerzitám. Přesto bylo vydáno několik prací, které popisovaly nový vývoj. Tento výzkum vedl k pozdějšímu přejmenování na Plan 9 from Bell Labs, což je přenositelný distribuovaný systém.
80. léta
AT&T licencovala pro komerční využití od roku 1982 UNIX System III založený na Version 7 Unix, který obsahoval podporu pro VAX. Současně AT&T pokračovala ve vydávání licencí na starší verze Unixu. Aby AT&T ukončila zmatek mezi všemi lišícími se interními verzemi, spojila je do UNIX System V Release 1, ve které byly představeny nová rozšíření – editor vi a knihovny curses pocházející z BSD Unixu vyvinutého na Berkeleyho univerzitě v Kalifornii. Patřila mezi ně i podpora počítačů Western Electic 3B series.
Protože novější licenční podmínky Unixu nebyly tolik nakloněny akademickému použití, jako starší verze Unixu, výzkumníci v Berkeley pokračovali ve vývoji BSD Unixu jako alternativy k UNIX System III a V na původní architektuře PDP-11 (vydání BSD 2.x do verze 2.11) a později pro VAX-11 (BSD 4.x). Mnoho nových prvků Unixu se nejprve objevilo právě v BSD, především C shell se správou úloh (anglicky job control, využíváno ITS). Pravděpodobně nejdůležitějším aspektem vývoje BSD bylo zahrnutí podpory sítí využívajících rodinu protokolů TCP/IP do tradičního jádra Unixu. Snaha BSD vyústila ve vydání několika důležitých verzí obsahujících síťový kód: 4.1cBSD, 4.2BSD, 4.3BSD, 4.3BSD-Tahoe (Tahoe je přezdívkou architektury Computer Consoles Inc. Power 6/32, jež byla první non-DEC verzí jádra BSD), Net/1, 4.3BSD-Reno (s ohledem na pojmenování "Tahoe", protože celé vydání bylo něco jako hazard), Net/2, 4.4BSD a 4.4BSD-lite. Síťový kód v těchto vydáních je předchůdce většiny kódu pro podporu TCP/IP, který se používá dodnes, včetně kódu, který byl později vydán AT&T v System V Unixu a raných verzí Microsoft Windows. Původní Berkeley Sockets API je de facto standardem síťových API, a který je využit i na mnoho dalších platformách.
Další společnosti začaly nabízet komerční verze Unixu pro své minipočítače a pracovní stanice. Většina těchto nových Unixů byla vyvinuta na základě Systemu V pod AT&T licencí. Ostatní byly založeny na BSD. Jeden z předních vývojářů BSD (Bill Joy) v roce 1982 spoluzaložil Sun Microsystems a vytvořil pro své pracovní stanice SunOS (dnes Solaris). V roce 1980 Microsoft oznámil svůj první Unix pro 16bitové mikropočítače nazvaný Xenix, který společnost Santa Cruz Operation (SCO) v roce 1983 portovala na procesory Intel 8086 a v roce 1989 začlenila do SCO UNIX.
Po několik let v tomto období (do nástupu IBM PC kompatibilních počítačů se systémem DOS) průmysloví pozorovatelé očekávali, že se Unix díky své přenositelnosti a bohatým schopnostem stane průmyslovým standardem v oblasti operačních systémů pro mikropočítače.[6] V roce 1984 několik společností založilo konsorcium X/Open, jehož cílem bylo vytvořit otevřenou specifikaci systémů založených na Unixu. Navzdory počátečním pokrokům však proces standardizace upadl v unixové války, při nichž se různé společnosti spojovaly ve vzájemně soupeřící standardizační skupiny. Jako nejúspěšnější standard ve vztahu k Unixu se ukázala specifikace POSIX od IEEE, která byla navržena jako kompromis mezi API implementovanými na obou platformách BSD i System V. Standard POSIX byl vydán v roce 1988 a brzy ho použila vláda USA pro mnohé ze svých vlastních systémů.
AT&T přidala do Unixu System V několik funkcí, např. zamykání souborů, systémovou administraci, standardní proudy, nové formy IPC, vzdálený souborový systém (RFS) a TLI. AT&T spolupracovala se Sun Microsystems a během let 1987 až 1989 spojila rozšíření z Xenixu, BSD, SunOS a Systemu V do vydání System V Release 4 (SVR4) nezávisle na X/Open. Toto nové vydání sloučilo všechny předchozí rozšíření do jednoho balíčku a zvěstovalo tak konec soupeřících verzí. Navýšilo však také licenční poplatky.
V této době spousta prodejců včetně Digital Equipment, Sun, Addamax a dalších, začalo stavět důvěryhodné verze Unixu pro aplikace s vysokou úrovní zabezpečení, povětšinou navržené pro armádní a policejní použití.
90. léta
V roce 1990 nadace Open Software Foundation vydala OSF/1 jako svou vlastní standardní implementaci Unixu založenou na jádře Mach a BSD. Nadace byla založena v roce 1988 a byla financována několika společnostmi z oblasti Unixu, které si přály čelit spolupráci AT&T a Sunu u vydání SVR4. Následně AT&T a další skupina držitelů licencí vytvořila skupinu Unix International, která bude čelit nadaci OSF. Stupňování konfliktu mezi těmito soupeřícími prodejci opět vyvolalo unixové války.
V roce 1991 skupina vývojářů BSD (Donn Seeley, Mike Karels, Bill Jolitz a Trent Hein) opustila Kalifornskou univerzitu, aby založili společnost Berkeley Software Design, Inc. (BSDI). BSDI vytvořila plně funkční komerční verzi BSD Unixu pro levnou a všudypřítomnou platformu Intel, což nastartovalo vlnu zájmu o použití levného hardwaru pro výrobní výpočty. Krátce poté, co byla založena, Bill Jolitz opustil BSDI a začal se zabývat distribucí 386BSD, což byl zdarma šířený předchůdce dnešních distribucí FreeBSD, OpenBSD a NetBSD.
V roce 1991 též vzniká Linux, který se v nejbližších letech rozroste do největšího soupeře všech unixových systémů, k čemuž přispěje též období unixových válek, kdy tradiční Unix tratil na svém obrazu u veřejnosti.
Do roku 1993 změnila většina komerčních prodejců svoje varianty Unixu tak, že byly založeny na Systemu V a navíc disponovaly mnoha rozšířeními z BSD. V témže roce hlavní hráči na poli Unixu založili iniciativu COSE, čímž ukončili nechvalně známé unixové války. V roce 1994 došlo ke spojení UI a OSF. Společná entita, která si zachovala jméno OSF, zastavila ještě téhož roku práce na OSF/1. V té době jej používal jako jediný už jen DEC, který v roce 1995 změnil jméno produktu na Tru64 UNIX.
Krátce po vydání UNIX System V Release 4 prodalo AT&T všechna svoje práva na Unix společnosti Novell (Dennis Ritchie to přirovnal k biblickému příběhu o Ezauovi, který prodal své dědické právo za příslovečnou „mísu čočovice“[7]). Novell vyvinul svoji vlastní verzi nazvanou UnixWare, kde spojil vlastní NetWare s UNIX System V Release 4. Novell se tím pokusil bojovat proti Windows NT, ale jejich klíčové trhy těžce utrpěly.
V roce 1993 se Novell rozhodl převést ochrannou známku UNIX® a certifikační práva na X/Open Consortium.[8] V roce 1996 se X/Open spojilo s OSF a vytvořila konsorcium The Open Group. Rozličné standardy pocházející od konsorcia The Open Group dnes určují, co je a co není operační systém „Unix“, především po roce 1998 vzniklá rodina standardů Single UNIX Specification.
V roce 1995 bylo podnikání s administrací a podporou stávajících Unixových licencí spolu s právy na další vývoj programového kódu Systemu V prodány Novellem společnosti Santa Cruz Operation.[9] Jestli Novell rovněž prodal vlastnická práva bylo dále předmětem sporu (viz níže).
V roce 1997 hledala společnost Apple Computer nové základy po svůj operační systém Macintosh a vybrala NeXTSTEP, operační systém vyvinutý společností NeXT. Tento hlavní operační systém, založený na BSD a jádru Mach, byl poté, co si jej Apple pořídil, přejmenován na Darwin. Použití Darwinu v Mac OS X ho, podle vyjádření zaměstnance Applu na konferenci USENIX, činí nejpoužívanějším, na Unixu založeným systémem na trhu stolních počítačů.
2000 až současnost
V roce 2000 prodala SCO celý svůj Unixový podnik a výhody společnosti Caldera Systems, která se později přejmenovala na The SCO Group. Tento nový hráč následně podal soudní žalobu na různé uživatele a prodejce Linuxu. SCO tvrdí, že Linux obsahuje autorsky chráněný kód z Unixu, který nyní The SCO Group vlastní. Mezi další obvinění patří porušení obchodního tajemství firmou IBM nebo porušení smlouvy bývalými zákazníky Santa Cruz, kteří od té doby přešli k Linuxu. Nicméně Novell zpochybnil vlastnictví autorských práv skupiny SCO na zdrojový kód Unixu. Podle Novellu, je SCO (tudíž i SCO Group) vlastně provozovatel licence pro Novell, který si ponechal hlavní autorská práva, právo veto na budoucí licenční aktivity skupiny SCO a 95 % výnosů z licence. Skupina SCO Group s tímto nesouhlasila a spor přerostl v soudní proces SCO vs. Novell. Dne 10. srpna 2007 byla hlavní část soudní pře rozhodnuta ve prospěch Novellu (tj. fakt, že Novell vlastní práva na Unix a SCO neoprávněně zadržovalo peníze Novellu). Soud též nařídil, že SCO musí stáhnout žaloby na IBM a další. Po rozhodnutí soudu Novell oznámil, že nemá žádný zájem na soudech kvůli Unixu a uvedl, že nevěří, že Linux obsahuje kód z Unixu.[10][11][12]
Pád bubliny Dot-com vedl k výraznému slučování Unixových projektů. Z mnoha komerčních verzí Unixu, které se zrodily v 80. letech, se na trhu relativně dobře daří pouze systémům Solaris, HP-UX a AIX, ačkoli se ještě dlouhou dobu držel IRIX od SGI. Z výše uvedených má největší podíl na trhu Solaris.[13]
V roce 2005 Sun Microsystems uvolnila množství systémového kódu Solarisu (založeného na UNIX System V Release 4) jako open source projekt se jménem OpenSolaris. Spolu s kódem byly uvolněny i nové technologie Sun OS (například souborový systém ZFS). Od roku 2006 se díky tomu na světě objevilo několik distribucí nepocházejících od Sunu, jako SchilliX, Belenix, Nexenta a MarTux.
Varianty operačního systému UNIX
V prostoru mezi dvěma základními směry (SYSTEM V a BSD Unix) vzniká celá řada variant a klonů tohoto operačního systému, které vyvíjí zejména různé firmy pro jimi vyráběné hardwarové platformy. Následující tabulka ilustruje pouze některé body vývoje v průběhu osmdesátých let dvacátého století:
Rok Výrobce Platforma Název OS Pozdější následovníci 1980 Microsoft PDP-11 XENIX 1982 Sun Microsystems Motorola 68000 SunOS Solaris 1983 Hewlett-Packard FOCUS (Series 500s) HP-UX Hewlett-Packard PA-RISC HP-UX 1984 DEC (Digital Equipment Corporation) VAX ULTRIX DEC (Digital Equipment Corporation) MIPS ULTRIX Digital UNIX DEC (Digital Equipment Corporation) Alpha Digital UNIX Tru64 1986 IBM PS/2 Micro Channel AIX IBM RISCový RS/6000 AIX/6000 1988 IBM mainframe System/370 AIX/370 SGI (Silicon Graphics Inc.) IRIX 1989 NeXT Apple Macintosh NeXTSTEP Mac OS X
Reference
- RITCHIE, Dennis M. Space Travel: Exploring the solar system and the PDP-7 [online]. [cit. 2007-03-11]. Dostupné v archivu pořízeném dne 2012-04-29.
- The Creation of the UNIX* Operating System: The famous PDP-7 comes to the rescue. www.bell-labs.com [online]. [cit. 24-09-2008]. Dostupné v archivu pořízeném dne 02-04-2014.
- The Creation of the UNIX* Operating System: The UNIX system begins to take shape. www.bell-labs.com [online]. [cit. 24-09-2008]. Dostupné v archivu pořízeném dne 15-07-2007.
- Stallings, William. "Operating Systems: Internals and Design Principles" 5th ed, page 91. Pearson Education, Inc. 2005.
- LIONS, John. Lions' Commentary on UNIX 6th Edition, with Source Code. USA: University of New South Wales (anglicky)
- UNIX. The Computer Chronicles [online]. Roč. 1985. Dostupné online.
- http://groups.google.com/group/comp.unix.questions/browse_frm/thread/2f0b5e719fa3a3ec/3fa5e5fe4d58f96b
- http://groups.google.com/group/comp.std.unix/msg/c9974cf0022884f8
- HP, Novell and SCO To Deliver High-Volume UNIX OS With Advanced Network And Enterprise Services
- Memorandum and Decision Order in SCO v. Novell. www.groklaw.net [online]. [cit. 2008-09-24]. Dostupné v archivu pořízeném z originálu.
- Memorandum and Decision Order Civil Case No. 2:04CV139DAK
- Novell Won't Pursue Unix Copyrights Archivováno 9. 4. 2008 na Wayback Machine August 15, 2007
- Stephen Shankland. Itanium: A cautionary tale [online]. ZDNet, 2005-12-07 [cit. 2006-10-04]. (Tech News). Dostupné v archivu pořízeném dne 2006-09-23.
Související články
Externí odkazy
- Obrázky, zvuky či videa k tématu Unix na Wikimedia Commons
- http://www.root.cz/clanky/historie-os-unix/
- http://www.levenez.com/unix/ (anglicky)