28
kurz Operační systémy (IOSYS)

kurz Operační systémy (IOSYS)

  • Upload
    lynn

  • View
    54

  • Download
    0

Embed Size (px)

DESCRIPTION

kurz Operač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 : 0 0, Čt 11:00-12:00, jiný termín po předchozí domluvě. Informace ke kurzu. - PowerPoint PPT Presentation

Citation preview

Page 1: kurz Operační systémy (IOSYS)

kurzOperační systémy

(IOSYS)

Page 2: kurz Operač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ě

Page 3: kurz Operační systémy (IOSYS)

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

Page 4: kurz Operační systémy (IOSYS)

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.

Page 5: kurz Operační systémy (IOSYS)

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

Page 6: kurz Operační systémy (IOSYS)

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

Page 7: kurz Operační systémy (IOSYS)

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

Page 8: kurz Operační systémy (IOSYS)

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)

Page 9: kurz Operační systémy (IOSYS)

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.

Page 10: kurz Operační systémy (IOSYS)

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, ...

Page 11: kurz Operační systémy (IOSYS)

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

Page 12: kurz Operační systémy (IOSYS)

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

•…

Page 13: kurz Operační systémy (IOSYS)

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)

Page 14: kurz Operační systémy (IOSYS)

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.

Page 15: kurz Operační systémy (IOSYS)

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é

Page 16: kurz Operační systémy (IOSYS)

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.

Page 17: kurz Operační systémy (IOSYS)

Příkazy pro práci se soubory a adresáři

Příkazy Linuxu jsou case-sensitive (rozlišují se velká/malá písmena)! Nápověda: parametr „--help“

(např. „cp --help“).

•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

Page 18: kurz Operační systémy (IOSYS)

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)

Page 19: kurz Operační systémy (IOSYS)

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ší.

Page 20: kurz Operační systémy (IOSYS)

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.

Page 21: kurz Operační systémy (IOSYS)

Příkazy pro práci s procesy

Pro nápovědu zadejte parametr „--help“ (např. „ps --help“) či využijte manuál příkazem „man

<příkaz>“ (např. „man ps“). Pro zobrazení historie slouží příkaz „history“.

•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

•renice – změna priority již běžícího procesu

Hodnoty priority: -20..+20, kde -20 = max. priorita

(záporné pouze root)

Page 22: kurz Operační systémy (IOSYS)

Příkazy pro práci s procesy

Pro nápovědu zadejte parametr „--help“ (např. „ps --help“) či využijte manuál příkazem „man

<příkaz>“ (např. „man ps“). Pro zobrazení historie slouží příkaz „history“.

•jobs – výpis procesů v daném terminálu

•fg – aktivování procesu do popředí

•bg – přesunutí běhu procesu do pozadí (stejný význam má zadání: „<příkaz> &“)

Běh na pozadí je stav kdy úloha je spuštěna, ale nepřijímá žádný vstup z terminálu a nebrání v další činnosti na

tomto terminálu. Běh na popředí je pravý opak - přijímá vstup z terminálu a blokuje jej pro sebe. Pozastavená

úloha je taková, která momentálně neběží, ale ještě neukončila svou činnost.

Klávesové zkratky:

•Ctrl + C – přerušení běhu procesu na popředí

•Ctrl + Z – pozastavení běhu procesu na popředí

Page 23: kurz Operační systémy (IOSYS)

Plánování úloh

Démon - program běžící na pozadí, čeká na události které nastanou, reaguje na ně a

poskytuje služby. Např. webový server čekající na požadavek uživatele na stránky, SSH

server na vzdálené přihlášení, databázový server atd. Podobným způsobem funguje i démon

atd, který se stará o spouštění naplánovaných úloh v příslušný čas.

Pro plánování jednorázových úloh slouží příkaz „at“, kde parametr času zadáváme jako

HH:MM, HH:MM DD.MM.YYYY či výrazy jako midnight, noon, teatime, now, today, tomorrow a

jejich přírůstky. Pro výpis naplánovaných úloh slouží příkaz „atq“ (či „at –l“), pro odstranění

úlohy pak příkaz „atrm“ (či „at –d“).

Příklady: at 20:00, at 20:00 6.11.2012

at now + 1 min (at now + 1 hour, at now + 1 day, at now + 1 week)

Page 24: kurz Operační systémy (IOSYS)

Plánování úloh

Pro naplánování úloh s periodickým spouštěním se využívá nástroje Cron.

Démon crond se stará o periodické spouštění naplánovaných úloh v příslušný čas. Ten lze

nastavit v tzv. cron tabulce, tu lze otevřít příkazem „crontab –e“ (předtím doporučeno: export

EDITOR=nano) a upravovat dle následujících pravidel:

1. minuta 2. hodina 3. den v měsíci 4. měsíc 5. den v týdnu (0 - neděle, 1 - pondělí... 6 - sobota) 6. cesta k programu, který má cron spustit

Page 25: kurz Operační systémy (IOSYS)

Kompilace programů

Kompilace - překlad zdrojového kódu do binárního strojového kódu (v multiplatformních případech

jako Java navíc s tzv. mezikódem, angl. bytecode), ten se liší dle použité platformy a operačního

systému. Současné počítače však fungují na různých platformách a často navzájem

nekompatibilních operačních systémech (Windows, Linux, atd.).

Vývoj nativních aplikací – vytvářené pouze pro určitou platformu a operační systém (např. Linux),

jinde nefungují. Aplikace nejčastěji vytvořeny v C/C++, jehož zdrojové kódy jsou poté přeloženy do

nativního kódu pro každou platformu zvlášť.

Vývoj multiplatformních aplikací – aplikace nejčastěji spouštěné pomocí různých interpreterů

(např. Adobe Flex, Adobe Flash, Microsoft Silverlight, Java, JavaScript, atd.)

– ty jsou obvykle volně k dispozici pro většinu platforem.

Page 26: kurz Operační systémy (IOSYS)

gcc

GNU GCC (z angl. GNU Compiler Collection) – sada software pro kompilaci programů (překladače

jazyka C/C++, linker, knihovny, debugger, atd.) vytvořených v projektu GNU pod licencí GPL.

Knihovny - obsahují datové typy a podprogramy, jež lze využívat v našich programech.

Linker - spojuje (tzv. linkuje) překladačem vytvořené soubory se strojovým kódem do jednoho

komplexního souboru.

Debugger - program pro ladění a hledání chyb v programu.

GNU = projekt podporující volně šiřitelný software a jeho modifikaci.

GPL (General public licence GPL) = licence stanovující podmínky pro software k volnému použití i

modifikaci, základní předpoklad je bezplatné šíření software i zdrojových kódů.

Page 27: kurz Operační systémy (IOSYS)

gcc

Překlad:

gcc –o <název spustitelného souboru> <název zdrojového souboru> [-Wall]

Např: gcc -o hello_world hello_world.c -Wall

Spuštění:

./<název spustitelného souboru>

Např: ./hello_world

Parametr -Wall slouží k výpisu všech chybových zpráv překladačem. Linux spustitelné soubory hledá

ve výchozích složkách (/bin,/usr/bin a /usr/local/bin, atd.), jinak třeba zadat cestu k souboru

absolutně či relativně ("./" = aktuální adresář).

Page 28: kurz Operační systémy (IOSYS)

make

make – pro účely kompilace rozsáhlých programů, v textovém souboru „Makefile“ definuje jak se

překládá který soubor (umožňuje stanovit závislosti souborů, nastavovat proměnné, příkazy pro

kompilaci, komentáře…).

Parametr make –f umožňuje změnit název souboru „Makefile“.

Proměnná CFLAGS určuje parametry (tzv. přepínače) pro překladač, CC název překladače, # značí

komentář. Příkazy (musí být odsazeny tabelátorem!) jsou umístěny za tzv. cíli v blocích. První cíl je

implicitní cíl příkazu make.# Vlastní Makefile verze 0,5

CFLAGS=-Wall

CC=gcc

help:

echo " parametr compile - prelozi program, clean - smaze program"

compile: ahoj.c

$(CC) $(CFLAGS) -o ahoj ahoj.c

clean:

rm -f ahoj

Pravidla v Makefile:

cíl:závislost1 závislost2 ... [enter][tabelátor]akce1[tabelátor]akce2..