|
1.1 Historie
Pro zopakování zde uveďme stručný přehled vývoje Linuxu.
Kořeny Linuxu vycházejí z UNIXU.
V roce 1991 začal finský student Linus Benedict Torvalds vyvíjet základní jádro tohoto OS. Tento svůj produkt poskytl veřejnosti. V počátcích sám netušil, jak moc se tento OS rozšíří a jak široká programátorská veřejnost se do vývoje zapojí.
Svůj zdrojový kód jádra poskytl s GPL - General Public License, což umožňovalo komukoliv číst a měnit tento zdrojový kód. Součástí GPL je požadavek opětovného poskytnutí změněného zdrojového kódu veřejnosti.
V současnosti se na vývoji podílí mnoho lidí, na vývoj a implementace změn do jádra linuxu stále dohlíží Linus Torvalds.
Funkce jádra zahrnují kontrolu vstupů a výstupů, kontrolu a komunikaci se zařízeními, správu procesů a souborů.
1.2 K jakým učelům se dá Linux využít
Systém Linux se dá využít k nejrůznějším účelům.
Jako například
- pracovní stanice
- souborový server
- tiskový server
- webový server
- dns server
- poštovní server
- IP směrovač, firewall
- databázový server
1.3 Doporučené HW požadavky
Obecně má Linux nízké požadavky na HW. Záleží na tom, co na daném počítači nebo serveru budeme provozovat, kolik požadavků od různých uživatelů nebo aplikací bude muset počítač zpracovávat.
Pokud během instalace vybereme pouze nezbytně nutné balíky (protože každá běžící aplikace nebo služba zabírá systémové prostředky), snížíme tím nároky na HW.
Pro běžné funkce by mělo stačit následující:
- Pentium III nebo AMD 750 MHz
- 512 MB RAM
- HDD 4 GB
- síťové rozhraní (min. 100 Mb/s)
Velký diskový prostor potřebujeme u souborových serverů, databázových serverů. Rychlý disk budeme potřebovat především v případě, kdy počítač používá hodně uživatelů, často se zapisuje a čte z disku.
Stejně tak i pro paměť platí, že pokud budeme počítač zatěžovat náročnými operacemi (časté databázové dotazy, webový server, velmi vytížený poštovní server), je větší kapacita paměti výhodou.
Konkrétní HW požadavky jsou závislé na požadovém účelu a předpokládané zátěži.
Dlouhodobé zatížení serveru by nemělo přesahovat hodnotu 1. Zatížení si můžeme zobrazit například příkazem top.
Tři hodnoty u "load average" znamenají zátěž během poslední minuty, 5 minut a 15 minut.
1.4 Charakteristika OS
Existují základní dvě verze - stabilní a vývojářská. Stabilní poznáte podle toho, že za poslední tečkou je sudé číslo (2.6), vývojářskou verzi poznáte podle lichého čísla za tečkou v označení verze.
Dále existuje celá řada distribucí linuxu, jako např. Mandriva, Fedora, SUSE, Debian, Slackware ...
My tu budeme používat distribuci Debian GNU/Linux. Během instalace je možno vybrat si z více než 15 tisíc balíčků předkompilovaného softwaru (v roce 2005), řešení závislostí za nás udělá instalační nástroj aptitude. Stejně tak výborně řeší odstraňování, aktualizace apod.
Protože velká část základních nástrojů, které spolu s jádrem vytvářejí kompletní operační systém, pochází z projektu GNU (http://www.gnu.org/home.cs.html), nazýváme tento systém GNU/Linux.
Pro získání Debianu můžete navštívit www.debian.cz.
OS Linux je multiuživatelský a multitaskový.
1.5 Základní pojmy
Multiuživatelský znamená, že umožňuje více uživatelům používat OS současně.
Multitasking (více procesů) znamená umožnění spuštění různých procesů různými uživateli současně.
Díky multiuživalskému a multitaskovému prostředí se zdá, že se mohou vykonávat různé procesy současně. Toto by bylo možné jen s více procesory. S jedním procesorem je to jen zdánlivé a procesy se střídají.
V UNIXU se zavedl tzv. preemptive multitasking. Znamená to, že každému procesu je přidělen určitý maximální čas, během kterého může pracovat. Po uplynutí tohoto času předá operační systém procesorový čas jinému procesu.
Operační systém koordinuje přístup k různým zdrojům (např. k HDD, disketě, pásce apod.).
Problém může nastat v případě, že více procesů si vyhrazuje právo pracovat s určitými zdroji.
Např. proces P1 chce pracovat se zdroji Z1 a Z2 a proces P2 se zdroji Z2 a Z1. Každý z procesů si vyhradí nejdříve právo přístupu na jeden ze dvou zdrojů (P1 na Z1, P2 na Z2). Ve chvíli, kdy chtějí přistupovat na druhý zdroj - zjistí - že daný zdroj je již využíván.
Nastává čekání, procesy se dostávají do mrtvého bodu (dead lock).
Řešit tento problém pomáhá tzv. multithreading (thread = vlákno).
V případě zmíněného problému proces předem informuje OS, které zdroje chce zamknout a teprve potom začne zamykat.
Multithreading - v rámci jednoho procesu se využívá více vláken (posloupnost instrukcí, které se vykonávají), např. v rámci jednoho procesu se zobrazuje správce souborů, zobrazují se informace o souborech v nápovědných bublinách u ikon, současně s tím se stahuje nějaký soubor.
V Linuxu neplatí binární kompatibilita (program zkompilovaný pro jednu verzi nemusí běžet na jiné verzi OS, jsou zde jiné verze knihoven).
Knihovna je soubor, který obsahuje podprogramy, metody, procedury, které jsou využívány nějakým programem.
Shell - příkazový interpreter. Lze vnořovat jeden do druhého, platnost proměnných uvnitř se nepřenáší do vnějších úrovní, platí jen lokálně. Každý má své vlastní proměnné prostředí.
1.6 Zavaděč operačního systému
Po startu počítače se pomocí zavaděče operačního systému spustí operační systém. Na počítači je možné mít více operačních systémů a pomocí nabídky zavaděče zvolit, který z nich spustit.
LILO
Potřebuje vědět, na kterých sektorech je jádro uloženo. Nezná strukturu file systému. Po změně jádra se v příkazovém řádku spustí příkaz lilo pro aktualizaci zavaděče.
GRUB (GRand Unified Bootloader)
Po změně jádra nemusíme na rozdíl od zavaděče LILO aktualizovat zavaděč. Je výhodný, používáme-li více jader.
1.7 Souborový systém (tradiční, žurnálový, síťový)
Tradiční souborové systémy
ext2 - běžný souborový systém Linuxu
minix - první souborový systém podporovaný Linuxem
MS-DOS/VFAT - souborový systém pro DOS a Window9x. VFAT je 32 bitová verze 16 bitového souborového systému.
Žurnálové souborové systémy
ext3 - žurnálová verze souborového systému ext2
ReiserFS - zahrnuto v Linuxovém jádru z roku 2001. Dobře zachází s malými soubory nebo velkým počtem souborů. Užívá mnoho technik pro úsporu místa a zlepšení výkonu (vytváření INODE na vyžádání místo v době vzniku souboru, vytváření vyváženého stromu souborů.
NTFS - Windows souborový systém. Z Linuxu je podporováno jen čtení (zápis je ve vývoji)
Síťové souborové systémy
NFS - Network File System. Navržen pro sdílení souborů a adresářů v síti. Potřebuje konfiguraci NFS serveru, který soubory poskytuje a NFS klientů, kteří soubory používají, jako by byly přímo na jejich počítačích.
SMB - Server Message Block. Dovoluje Linuxu připojovat sdílené složky z Windows.
NCP - Netware Core Protocol. Umožňuje pracovat se sdílenými prostředky z jiného operačního systému (Novell).
Rozdíl mezi tradičním a žurnálovým systémem je v postupu ukládání dat.
Tradiční systém nejprve uloží data a poté metadata.
Žurnálový systém nejprve zapíše do žurnálu, co bude ukládat. Poté uloží data, metadata a po úspěšném zápisu smaže záznam ze žurnálu.
Výhoda žurnálového systému ukládání se projeví např. v případě pádu systému. Po nastartování systému stačí zkontrolovat záznamy v žurnálu, nemusí se procházet a kontrolovat všechny soubory. Záznam v žurnálu znamená, že bylo v plánu nějaká data uložit nebo že pád nastal v průběhu ukládání dat nebo metadat. Pokud by vše proběhlo, smazal by se záznam ze žurnálu.
1.8 Označování disků, logických jednotek, zařízení
/dev/tty1 … 1. virtuální konzole
/dev/tty2 … 2. virtuální konzole
atd.
/dev/ttyS0 … sériový port COM1
/dev/ttyS1 … sériový port COM2
/dev/lp0 … první paralelní port
/dev/fd0 … disketa A:
/dev/fd1 … disketa B:
/dev/hda … první IDE kanál master, většinou IDE hard disk
/dev/hdb … první IDE kanál slave
/dev/hdc … druhý IDE kanál master, většinou CD ROM
/dev/hdd … druhý IDE kanál slave
/dev/hda1 … první partition na hda
atd.
/dev/sda … první SCSI disk
/dev/sda1 … první partition na první SCSI disku
USB klíč se přiřadí na první volní sd (když není žádný SCSI disk, přiřadí se na sda, připojíme jej jako sda1)
/dev/scd0 … první SCSI CD ROM
1.9 Rozdělení disku (fdisk)
# fdisk
vypíše základní možnosti zápisu fdisku
Usage: fdisk [-l] [-b SSZ] [-u] device
E.g.: fdisk /dev/hda (for the first IDE disk)
or: fdisk /dev/sdc (for the third SCSI disk)
or: fdisk /dev/eda (for the first PS/2 ESDI drive)
or: fdisk /dev/rd/c0d0 or: fdisk /dev/ida/c0d0 (for RAID devices)
# fdisk -l /dev/hda
zobrazí informace o rozdělení a souborovém systému disku a jeho logických jednotek.
Disk /dev/hda: 10.0 GB, 10056130560 bytes
255 heads, 63 sectors/track, 1222 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 791 6353676 7 HPFS/NTFS
/dev/hda2 792 1156 2931862+ 83 Linux
/dev/hda3 1157 1222 530145 82 Linux swap / Solaris
Upravování rozdělení disku hda
# fdisk /dev/hda
Command (m for help): m .... po napsání písmene m se zobrazí nápověda
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition ... smazání partition
l list known partition types ... výpis možných typů soub. syst.
m print this menu
n add a new partition ... vytvoření nové partition
o create a new empty DOS partition table
p print the partition table ... výpis aktuálního rozdělení
q quit without saving changes ... odchod bez uložení
s create a new empty Sun disklabel
t change a partition's system id ... změna typu souborového systému
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): n ... přidávání nové partition
Command action
e extended
p primary partition (1-4)
p
Selected partition 4
No free sectors available
Command (m for help): t ... změna typu soub. syst.
Partition number (1-4): 1
Hex code (type L to list codes): L ... výpis možností soub. syst.
vybereme možnost 7 pro NTFS, c pro FAT32, 82 pro swapovací oddíl linuxu, 83 pro linux (ext2, ext3, reiser).
Hex code (type L to list codes): 7
Command (m for help): q ... pro ukončení bez uložení, chceme-li změny zapsat, napíšeme w
pro smazání oddílu napíšeme d a následně číslo oddílu.
1.10 Formátování
Po rozdělení disku je potřeba formátováním připravit oddíly na zápis dat.
Formátování na ext2
mkfs -t ext2 /dev/hda5
mkfs.ext2 /dev/hda5
mke2fs /dev/hda5
Formátování na ext3
mke2fs -j /dev/hda5
Formátování oddílu swap
mkswap /dev/hda6
1.11 Cvičení
- Co je to GPL?
- Uveďte některé z distribucí Linuxu.
- Co znamená termín multiuživatelský OS, multitasking.
- Co je to dead lock?
- je to knihovna (v OS Linux)?
- Co je to shell?
- Jaké typy zavaděčů OS znáte?
- Rozdělte souborové systémy a u každého uveďte typické zástupce.
- Jakým způsobem se označují zařízení v Linuxu?
- Jakým způsobem můžeme změnit rozdělení pevného disku?
- Jakým příkazem vypíšeme rozdělení pevného disku?
- Jakým příkazem zformátujeme logickou jednotku na zvolený souborový systém?
Domácí úkol
Zopakujte si základní pojmy a poznatky probrané v této kapitole (historie, GPL, distribuce Linuxu, charakteristika OS Linux, problémy s dead lock, pojmy knihovna, shell, zavaděč, typy souborových systémů, označení zařízení, rozdělení a formátování disku).
Shrnutí
- zopakovali jste si historii vývoje OS Linux
- seznámili jste se s pojmem GPL
- umíte uvést některé z běžných distribucí Linuxu
- umíte vysvětlit pojmy multitasking, multithreading, víceuživatelský OS
- víte, jakým způsobem řeší OS problém dead lock
- umíte vysvětlit pojmy knihovna, shell, zavaděč
- znáte rozdělení souborových systémů a u každého umíte uvést typické zástupce
- víte, jak Linux označuje disky, logické jednotky a další zařízení
- víte, jakým příkazem rozdělit a zformátovat disk
|