kurzOperační systémy
(IOSYS)
Vyučující
Vyučující cvičení:
Ing. Jiří Kysela E-mail: [email protected]
Tel: 466 037 095
Kabinet: 03013 (3. patro budova FEI)
Konzultační hodiny: St 10:00-11:00, Čt 11:00-12:00, jiný termín po předchozí domluvě
Informace ke kurzu
Název kurzu: Operační systémy
Ident: IOSYS
Kreditů: 5
Podmínky splnění kurzu:
Povinná aktivní účast na cvičeních
Odevzdání praktických příkladů zadaných na cvičení
Prezentace zvoleného téma
Absolvování závěrečné zkoušky
Harmonogram kurzu
Základní pojmy, dělení disků, swap, MBR, boot-manager, role administrátora.
OS Linux, soubory, adresáře, shell, ssh, GUI.
Procesy, ps, /proc, pstree, PID, PPID, terminál, signály, kill, top, nice, renice, jobs, fg, bg.
Plánování úloh, pojem démon, atd, at, cron, crontab.
Kompilace programů v Unixu, gcc, make, Makefile, GNU (./configure, make, make install).
Vznik procesu, komunikace mezi procesy, fork(), nepojmenované roury, |, pipe(), pojmenované roury, mknod file p.
Signály a jejich zpracování, kill(), signal(), sigprocmask(), alarm().
Vlákna, mutex, libpthread, kritická sekce.
Condition, libpthread, synchronizace vláken.
Sockety, klient/server na TCP/IP.
LiteraturaZákladní:
Tanenbaum, Andrew Stuart. Modern Operating Systems. 3rd Edition. U.S.A.: Prentice Hall, 2008.
Stones, Richard – Matthew, Neil. Linux: Začínáme programovat. 4. vydání. Brno: Computer Press, 2008.
Doporučená:
Shah, Steve – Soyinka, Wale. Administrace systému Linux. Překlad 4. vydání. Praha: Grada, 2007.
Graham, Steven – Shah, Steve. Administrace systému Linux: podrobný průvodce začínajícího administrátora. Překlad 3. vydání. Praha: Grada, 2003.
Kol. autorů. LINUX: Dokumentační projekt. 4. aktualizované vydání. Brno: Computer Press, 2008.
Spoustová, Drahomíra. Pohádky z příkazové řádky: Učební text pro předmět Úvod do Unixu. [online]. 2007.
Tanenbaum, Andrew Stuart. Structured Computer Organization. 5th Edition. U.S.A.: Prentice Hall, 2005.
Kol. autorů. The Linux Documentation Project. [online].
Brandejs, Michal. UNIX: materiály k výuce. [online]. 2008
http://asuei01.upceucebny.cz/usr/hudec/vyuka/os/#cviceni
(dostupné na intranetu UPCE, z vnější sítě přes VPN)
Elektronické zdroje ke kurzu
Dělení disků
Fyzický disk lze rozdělit více diskových oddílů (tzv. partition), jeho rozděleníuvedeno v tabulce rozdělení disku (tzv. partition table), nachází se v MBR a zabírá pouze 64 bytů (master partition table).
- Oddíly mohou být (celkem max. 4): Primární x Rozšířený (kontejner pro logické disky).
- Software pro práci s oddíly je např. Partition Magic či GParted.
Používá se z různých důvodů:
- instalace více O.S. na jeden disk
- obcházení omezení souborového systému
- použití více souborových systémů
- Ochrana izolace souborů
- lepší organizace dat
MBR
MBR (Master Boot Record) – první sektor na začátku disku(pevný disk: 0. hlava, 0. cylindr, 1. sektor)
- Zabírá 512 bytů.
- Obsahuje především:
Partition table
Zavadeč systému pro dual/multi boot (neboli boot loader či boot manager)
(v Linuxu např. GRUB či LILO, Windows – NT Loader)
SWAP
- Označuje virtuální paměť, do které si systém odkládá data z paměti RAM.
- V Linuxu je ve výchozím stavu jako zvláštní oddíl (partition),
na rozdíl např. od Windows (lze však taktéž využít swap v souboru)
- Oddíl má standardně velikost paměti RAM.
Virtualizace PC
- Lze virtualizovat části (např. mechaniku) ale i celé PC
- tzv. Virtual Machine řeší současný běh několika OS na jednom PC
(virtuální PC se tváří jako samostatné PC).
- Virtual Machine SW např.: VM Ware (zdarma VM Player), VirtualBox, ...
Emulátory
- Software simulující OS či platformu a umožňující spouštění a běh programů
pro ně určených
- Při vytváření emulátorů často chybí informace o původní architektuře,
používají se proto metody reverzního inženýrství (tzv. Reverse Engineering)
(disassemblery pro kód v Assembleru, dekompilátory pro kód ve vyšších
programovacích jazycích, ...)
- Např. DosBox – emulátor MS-DOS, WINE – emulátor Windows pro Linux,
Cygwin – emulátor Linux pro Windows
Role administrátora
Systémový administrátor – neomezená práva v operačním systému:
•Instalace a konfigurování aplikačního software, serverů
•Vytváření nových uživatelských účtů a jejich údržba
•Zálohování a obnova systému
•Monitorování a ladění systému
•…
SSH
= Secure Shell, zabezpečený komunikační protokol v poč. sítích
(zajišťuje připojení, autentizaci a šifrovaný přenos), standardně na portu 22 (TCP)
- Náhrada za nešifrovanou vzdálenou správu jako TelNet apod.
- Přenášená data mohou být i bezztrátově komprimována.
- Služby SSH: Spouštění příkazů, Přenos souborů (SFTP), X-forwarding (práce v
grafickém režimu na vzdáleném počítači)
- SSH klienti: Putty, WinSCP
(či např. řádkový program „SSH“ v Cygwin/Linuxu)
CLI, shell, terminál
• CLI (Command Line Interface) - nejstarší způsob ovládání počítače, vychází z konceptu TTY
(teletypewriter) užívaného již v polovině min. století, tedy vstupního zařízení kterým je klávesnice
s alfanumerickými znaky, díky níž uživatel ovládá systém pomocí zadávaných příkazů.
• Unix shell je programem (např. Bash z angl. Bourne Again SHell) který umožňuje zadávat
uživateli z klávesnice příkazy a vykonávat skripty. Je přístupný jako tzv. terminál, tzn.
prostřednictvím CLI. Unixové O.S. silně zaměřeny na CLI, oproti MS Windows kde je prioritní GUI
(Graphical User Interface). CLI podporují jak Linux Ubuntu, tak MS Windows.
GUI
• GUI (Graphical User Interface) - interaktivně využíváno vstupního zařízení klávesnice a myši k
ovládání systému pomocí grafických objektů, s nimiž uživatel manipuluje.
• X Window systém - implementace GUI v Linuxu, není součástí jádra O.S. jako v MS Windows
• Trend GUI - možnost funkce HUD (Head-Up Display), v Linux Ubuntu od ver 12.04 v novém
prostředí Unity. (ukázka: http://www.youtube.com/watch?v=w_WW-DHqR3c)
Srovnání GUI a CLI z pohledů výhodnosti ovládání:
GUI CLI
Skriptování, roury ne ano
Úspora zdrojů (paměť, CPU) ne ano
Vzdálený přístup velký datový přenos ano
Využití multitaskingu a dalších ploch ano pomaleji
Ovladatelnost multimédií a WWW ano ne
Schopnosti pro ovládání nízké vysoké
Soubory a adresáře
I-uzel (I-node) - záznam v souborovém systému uchovávající metadata o souboru
•Metadata - přístupová práva/datum a čas/vlastníka/délku souboru, disk. adresu uložení dat…
•Každý soubor je popsán I-uzlem, jejich množství určuje max. počet adresářů a souborů, jež lze v soubor. systému vytvořit.
Příkazy pro práci se soubory a adresáři
Příkazy Linuxu jsou case-sensitive (rozlišují se velká/malá písmena)!
•pwd – vypíše absolutní cestu k aktuálnímu adresáři
•cd – změní aktuální pracovní adresář
•mkdir – vytvoří adresář
•rmdir – zruší adresář
•rm – zruší soubor
•cp – kopíruje soubor
•mv – přesouvá soubor
•file – poskytuje informace o souboru
•tree – stromový výpis adresářů
•wc – stat. údaje o text. souboru
•ls – výpis adresáře
(nápověda: parametr --help)
Procesy
= všechny spuštěné (běžící) programy (proces je instancí programu)
- jeden program může běžet jako více procesů
- každý proces má systémem přiřazeno jednoznačné identifikační číslo, tzv. PID (Process ID)
- každý proces má svého rodiče, tzv. PPID (Parent PID)
(spustíme-li program ve Shellu, je on tímto rodičem)
- řízení úloh (tzv. job control) umožňuje procesy sledovat, ukončit,
přesouvat do popředí, pozadí,...
(příkazy pro tuto práci integrovány v shellu – např. v Bash)
Procesy
Každý proces má přidělen tzv. PCB (Process Control Block) - datovou struktura obsahující
data pro správu a běh procesů operačním systémem.
PCB obsahuje:
•identifikátor procesu (PID/PPID)
•informace o stavu procesu
•registry mikroprocesoru
•čítač programu (indikuje adresu následující instrukce procesu, která má být vykonána)
•plánovací informace mikroprocesoru (priorita procesu, ukazatele na fronty ve kterých proces
čeká, atd.)
•informace o prostředcích I/O (alokovaná I/O zařízení, otevřené soubory atd.)
a další.
Procfs
Pseudo-souborové systémy - virtuální souborové systémy, které nemají účel použití pro
záznamová datová média, ale plní určité specifické úlohy v systému. Nejčastěji se s nimi
setkáváme v prostředí OS Linux, kde ve formě virtuálních souborů a adresářů, poskytují
přístup k informacím o systému, které tak lze prohlížet či měnit. Jsou to například:
•procfs (zastoupený v adresáři „/proc“) – poskytuje informace o procesech a jádru systému,
např. v adresáři „/proc/version„ nalezneme informace o verzi Linuxu. Více informací např. na
http://www.root.cz/serialy/co-pred-nami-taji-proc/
•sysfs (zastoupený v adresáři „/sys“) – poskytuje informace o systému.
•devfs (zastoupený v adresáři „/dev“) – poskytuje informace o zařízeních.
Úkol: Nalezněte v procfs informace o typu mikroprocesoru počítače.
Příkazy pro práci s procesy
Příkazy Linuxu jsou case-sensitive (rozlišují se velká/malá písmena)!
•ps – vypisuje informace o stavu spuštěných procesů
•pstree – stromový výpis spuštěných procesů
•kill – ukončení procesu dle zadaného PID
•killall – ukončení procesů dle zadaného jména
•top – sledování stavu procesů v reálném čase
•nice – změna priority procesu (0..+19 či -20..+19 jako root, kde -20 = max. priorita)
•renice – změna priority již běžícího procesu
•jobs – výpis procesů v daném terminálu
•fg – aktivování procesu do popředí
•bg – přesunutí procesu do pozadí