Operační systém UNIX
Operační systém UNIX (maturitní otázka č. 9)
UNIX (původně Unics - Unary Information and Computing Service) je víceúlohový a víceuživatelský operační systém. Jeho funkčnost není omezena jen na platformu i386, ale zvládá i mnoho dalších, např. Amiga, Sparc, aj.
Historie
UNIX byl vytvořen Kenem Thompsonem a Dennisem Ritchiem roku 1969 v Bell Laboratories, kde byl vyvíjen až do konce sedmdesátých let. Poté probíhal vývoj UNIXu především na dvou místech: na univerzitě v Berkeley, odkud pochází BSD Unix (dnes se můžeme setkat s FreeBSD, NetBSD a OpenBSD) a pod vedením AT&T (SYSTEM III nebo SYSTEM V).
V 60. letech pracovali Bell Laboratories spolu s MIT a General Electric na experimentálním operačním systému jménem Multics (Multiplexd Information and Computing Service). Tento projekt, ačkoliv přinášel do oblasti operačních systémů mnohá vylepšení se příliš nevydařil - byl prodělečný. Pod vedením Kena Thompsona a Dennise Ritchieho byl však vytvořen nový operační systém - Unics (jako protiklad k Multics). Později se název změnil na Unix.
V roce 1973 byl Unix přepsán v programovacím jazyce C.
Varianty UNIXu
Některé operační systémy typu UNIX |
---|
FreeBSD |
NetBSD |
OpenBSD |
Linux |
Mac OS X |
Solaris |
XENIX |
AIX |
IRIX |
Tento výčet samozřejmě není vyčerpávající, jde jenom o to ukázat některé OS UNIXového typu. Tyto systémy nemusí být být přímo odvozené ze zdrojového kódu Unixu, jde jenom o to že splňují stejnou charakteristiku a filosofii.
Charakteristika
Systém založený na UNIXu je:
- jednoduchý
- víceúlohový (implementuje multitasking)
- víceuživatelský
- téměř vše je soubor
- obsahuje jednoduché malé programy, který každý dělá jednu věc a dělá ji dobře - tyto programy lze propojovat pomocí rour
- obsahuje skvělé nástroje na zpracování textů
Filosofie systému
Jako filosofie systému se obvykle označuje jeho vnitřní struktura. Operační systém typu UNIX se skládá z těchto částí:
- jádro (kernel) - stará se o hardware a přidělování:
- času jednoho či více procesorů
- operační paměti
- diskového prostoru, ve kterém organizuje souborový systém
- různých dalších periferií
- interpret příkazů (shell) - slouží pro komunikaci systému s uživateli
- aplikace - programy pro správu systému a pro vlastní užitečnou práci
- grafické uživatelské rozhraní (GUI) - nejznámějším grafickým prostředím je X Window System(1984) (neplést s Microsoft Windows - verze 1.0 z roku 1985)
Linux
Linux je název jádra (kernelu) několika operačních systémů. Nejznámějším z nich je GNU/Linux - operační systém GNU založený na linuxovém jádře. Dnes už se však název Linux vžil jako název celého operačního systému GNU/Linux. Pokud tedy v tomto článku budu mluvit o Linuxu, budu tím mít na mysli GNU/Linuxvžil jako název celého operačního systému GNU/Linux. Pokud tedy v tomto článku budu mluvit o Linuxu, budu tím mít na mysli OS GNU/Linux.
Distribuce
Stručný přehled nejvýznamějších distribucí (řazeno abecedně):
Název | Popis |
---|---|
Debian | Léty prověřený systém kladoucí důraz na stabilitu a prověřenost. Často nasazovaný na serverech. Vhodný pro pokročilejší uživatele. |
Gentoo | Všechny programy se kompilují přímo na cílovém stroji, vyšší rychlost, optimalizace přímo pro cílový stroj. Vhodný pro pokročilé uživatele. |
Mandriva | Distribuce vhodná pro začátečníky, vše lze upravovat pomocí grafických konfiguračních nástrojů. Z tohoto důvodu však zároveň nemá příliš dobře okomentované konfigurační soubory. Prostředí se snaží podobat systému Microsoft Windows, je tedy vhodné pro přecházející uživatele. |
RedHat | Tvrdě komerční distribuce, jejíž volně šiřitelný fork se nazývá Fedora. |
Slackware | Hodně "spartánská" distribuce, do nedávna neměla ani pořádný balíčkovací systém (resp. nástroje pro jeho správu). Pro pokročilé uživatele. |
SUSE | Distribuce spíše pro začátečníky vyvíjená firmou Novell. Uživatelskou přívětivostí srovnatelná s Mandrivou. |
Ubuntu | Derivát Debianu s velkou uživatelskou základnou. V poslední době se objevuje řada jeho forků, které se zpravidla liší jenom jiným výchozím WM (Window Manager - správce oken), předinstalovanými aplikacemi nebo dokonce jenom tapetou na ploše. Příkladem je Kubuntu, Xubuntu, Grubuntu či Greenie Linux. Vhodný pro naprosté začátečníky. |
Distribuce je v podstatě verze Linuxu. Jednotlivé distribuce mají společné jádro, ke kterému často přidávají svoje vlastní patche. Také aplikace v nich použité se až na vyjímky (aplikace pro správu distribuce) vyvíjejí odděleně. Pro distribuci jsou specifické tyto věci:
- Výchozí nastavení - předinstalovaný software, parametry jádra, WM a další.
- Balíčkovací systém
- Repozitáře - existují servery, na kterých je uložena většína linuxového
softwaru. Pro instalaci balíčku pak stačí např. napsat jenom
emerge firefox
. Balíčkovací systém si z repozitářů daný balíček stáhne, zkontroluje závislosti a nainstaluje. Žádná další interakce ze strany uživatele není potřeba.
Bezpečnost
Přístupová práva
Přístupová práva v Linuxu jsou trojího druhu: právo ke čtení (r), k zápisu
(w) a k provedení (x). Tyto práva se určují u 3 různých skupin: u vlastníka,
skupiny a ostatních. Přísupová práva mohou bt zapsána např. takto (výstup
programu ls -l
):
-rw-r--r-- 1 stinovlas users 703M 2008-03-08 19:27 Asterix a Vikingové.avi -rw-r--r-- 1 stinovlas users 52K 2008-03-08 19:27 Asterix a Vikingové.srt -rwxr-x--- 1 stinovlas programmers 2,1K 2008-02-15 09:34 tisk.pl
Znamená to, že vlastník filmu a titulků (uživatel stinovlas) může číst a zapisovat do souboru. Členové skupiny users a všichni ostatní můžou soubor jenom číst. V adresáři se nachází ještě perlovský skript tisk.pl. Jeho vlastník ho může číst, zapisovat do něj a spouštět ho. Členové skupiny programmers ho mohou číst a spouštět a ostatní nemůžou nic.
Kromě symbolického zápisu pomocí rwx existuje ještě oktalový zápis - čtení je 4, zápis 2 a provedení 1. Předchozím případě by tedy práva vypadala takto:
644 Asterix a Vikingové.avi 644 Asterix a Vikingové.srt 750 tisk.pl
Víceuživatelský systém
Linux je víceuživatelský systém, což znamená, že umožňuje práci více uživatelů najednou. Dosahuje toho mimo jiné pomocí multitaskingu - schopnosti počítač vykonávat (nebo alespoň zdánlivě) více úloh zároveň. Vícejádrové procesory skutečně mohou vykonávat více úloh současně, jednojádrové dělí velmi krátké časové úseky mezi běžící procesy, takže to vypadá, že pracují souběžně.
Superuživatel
Superuživatel je člověk, mající plnou kontrolu nad systémem, všemi jeho procesy apod. V Linuxu se tradičně nazývá root, nicméně za superuživatele je považován každý, jehož UID (user identification) je rovno 0. I v případě, že má osoba superuživatelský účet, měla by kvůli bezpečnosti používat normální uživatelský účet a za roota se přihlašovat jenom kvůli správě systému.
Shell
Shell (též příkazový procesor) - druhá vrstva operačního systému - má v Linuxu hned několik zástupců. Dnes zřejmě nejpoužívanější je bash (Bourne-again shell). Z dalších můžeme jmenovat např. sh (Bourne shell), csh (C shell) nebo tcsh (TENEX C shell).