Operační systémy II přednášky

Podobné dokumenty
Přednáška 5. Identita uživatelů, procesů a souborů. Přístupová práva a jejich nastavení. Úvod do Operačních Systémů Přednáška 5

Identita uživatelů, přístupová práva. Linux

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

Tomáš Borland Valenta

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

Linux-příkazový řádek

Rozdělení operačních systémů

Úvod, jednoduché příkazy

Úvod do Operačních Systémů

Přednáška 2. Systémy souborů OS UNIX. Nástroje pro práci se souborovým systémem. Úvod do Operačních Systémů Přednáška 2

Úvod do Operačních Systémů

Úvod do Operačních Systémů

Systém souborů (File System)

ZOS OPAKOVÁNÍ. L. Pešička

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Základní příkazy pro práci se soubory

Úvod do Operačních Systémů

Unix je víceuživatelský a víceúlohový OS

Linux Teorie operačních systémů a realita

LINUX ADRESÁŘOVÁ STRUKTURA. Co to, hrome, je? V této lekci se budeme brouzdat adresáři. SPŠ Teplice - 3.V

Operační systéme II cvičení

Operační systémy. Přednáška 2: Procesy a vlákna

Základy operačního systému LINUX část I

LINUX SOUBORY. Zadejme příkaz ls l! V této lekci se odrazíme od dlouhého výpisu příkazu ls a uvidíme, kam nás to zanese. SPŠ Teplice - 3.

UŽIVATEL, SKUPINA, PROCES

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí

Univerzita Pardubice Fakulta elektrotechniky a informatiky ISOSY Matěj Trakal

Systém adresace paměti

Identita uživatele (procesu)

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Administrace OS Unix. Úvodní informace Principy administrace Uživatelé

a co je operační systém?

Úvod. unx-predn_01-uvod.odt :13:43 1

Architektura systému GNU/Linux. Bohdan Milar

Procesy a vlákna (Processes and Threads)

Management procesu I Mgr. Josef Horálek

IT ESS II. 1. Operating Systém Fundamentals

Operační systémy. Tomáš Vojnar IOS 2009/2010. Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, Brno

PSK3-3. Základní příkazy. Zápis cesty

Základy programování (IZP)

C2110 Operační systém UNIX a základy programování

Úvod do Linuxu. SŠSI Tábor 1

Operační systémy. Cvičení 1: Seznámení s prostředím

Základní příkazy OS UNIX

Téma 2: Práce s commands. Téma 2: Práce s Commands

Přednáška 6. Procesy a vlákna (vznik, stavy, atributy). Signály. Nástroje pro práci s procesy a vlákny. Úvod do Operačních Systémů Přednáška 6

Identita uživatele. predn_04.odt :47:03 1

Cvičení 2. Přesměrování vstupu a výstupu. Posloupnost příkazů. Příkazy pro informaci o uživatelích

Úvod do Operačních Systémů

Úvod do Linuxu SŠSI Tábor 1

Lekce 25 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Úvod do UNIXu. Okruh č. 1 - přihlášení, historie, práce se soubory. Jakub Galgonek. verze r1. inspirováno materiály Davida Hokszy

Paralelní výpočty na clusteru KMD

Systém souborů (file system, FS)

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Příkaz finger. # finger sam Login: sam Name: Sam Greenfield Directory: /home/sam Shell: /bin/tcsh Last login Sun Dec 25 14:47 (EST) on tty2 No Plan.

A7B38UOS Úvod do operačních systémů. 6. Cvičení. Příkazy sed a awk

Příkaz find, práce s procesy a úlohami, plánování úloh

Přednáška 8. Proměnné. Psaní a ladění skriptů. Parametry skriptu. Vstup a výstup. Konfigurační soubory shellu. Úvod do Operačních Systémů Přednáška 8

IPZ laboratoře Struktura pevného disku L305 Cvičení 1 Cvičící:

Úvod do UNIXu. Libor Forst

Základní příkazy UNIXu (Linuxu)

Cvičení 3. Plán. Procesy. procesy, jobs Find Wildcards Příklad uživatelé. ZOS 2005, L. Pešička. eryx4> ps x

Úloha 3 editor a skripty. připojte se vzdáleně na dray6.feld.cvut.cz heslo získáte na adrese

Nastroje na zpracovani textu:

Architektura systému. Tomáš Borland Valenta

Základy programování (IZP)

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Základy programování (IZP)

Principy počítačů a operačních systémů

LINUX uživatelské účty (1)

Domácí příprava k předmětu YD38UOS Úloha 10 práce s lokálními soubory pokračování

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

8 Třídy, objekty, metody, předávání argumentů metod

Činnost počítače po zapnutí

Operační systém UNIX

Úvod do Operačních Systémů

Logická organizace paměti Josef Horálek

Střední odborná škola a Střední odborné učiliště, Hořovice

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek

Operační systém GNU/Linux

Soubory. SŠSI Tábor 1

První kroky s METEL IEC IDE

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Metody připojování periferií BI-MPP Přednáška 2

VISUAL BASIC. Práce se soubory

Jazyk C práce se soubory. Jan Hnilica Počítačové modelování 16

Operační systémy 1. Přednáška číslo Souborové systémy

udev a kamarádi... Středisko UN*Xových technologií

Práva a jejich použití, screenujeme, pracujeme v GNU/Linuxu

Sekvenční a podmíněné provádění

Architektura a koncepce OS OS a HW (archos_hw) Architektura a koncepce OS Jádro OS (archos_kernel) Architektura a koncepce OS Typy OS (archos_typy)

Shrnutí Obecné Operační systém Microsoft Windows 7 Ultimate Centrální procesor

Computer Press Brno 2003

PSK3-7. Plánované spouštění programů a správce sezení. Skupiny procesů

Vstupně - výstupní moduly

Procesy a vlákna - synchronizace

Transkript:

Doc. Ing. Aršt Veselý, CSc. KIT, 336 Út 13-113 vesely@pef.czu.cz - skripta Operační systémy II Operating Systems - dobrovolné - u zkoušky, praktické věci ze cvičení písemná - obecné otázky, příklady - podmínkou zápočtu docházka a rozumná aktivita - 3 absence Operační systém Unix Skládá se z 1. jádro (kernel) - základ 2. systémové programy - programy uložené na disku v knihovnách a umožňují uživatelům základní práce v systému (kopírování v systému, psaní programů...) Úkoly kernelu - vytváří další procesy a řídí jejich činst - umožňuje komunikaci mezi procesy - poskytuje prostředky pro práci s vnějšími zařízeními - vytváří souborovou strukturu na discích - sleduje svou činst a vytváří logy a statistiky - proces program spuštěný nad operačním systémem spouští se startovacími skripty - multitaskingový OS běží současně více procesů Systémové programy - shell (interpret příkazů) - rozhraní mezi uživatelem a počítačem - (sh, bash, ksh, csh, tcsh) - bash - řádkově orientovaný (prompt $...) - napíšeme příkaz a bash zařídí ve spolupráci s OS vykonání - vnitřní příkaz - pro bash samotný (cd) - vnější příkaz - knihovna (cp) - skript - program v jazyce shellu - ovládají se jím shelly - programy pro manipulaci se soubory a adresáři (ls, cp, rm, tar, atd.) - nacházejí se v adresářích /bin a /usr/bin - ls - list - výpis obsahu adresáře, nebo informací o souboru - cp - copy - kopírování - rm - remove - vymazání - mkdir - make directory - vytvoření adresáře - cat - cataminate? - zobrazení obsahu textového souboru - mv - move - přejmevání/přesunutí - cd - change directory - mění aktuální adresář - ps - program status - název - ls... - modifikátory - začínají pomlčkou -l - long ls -l - dlouhý výpis - parametry - ls -l /bin - dlouhý výpis adresáře /bin - manuál - příkazy jsou v 1. oddílu - napíšu man ls a dozvím se něco o ls - 1 - Christy

- když napíšu man man dozvím se něco o manuálu / /bin /usr/bin /home /vak /programy /prog1 /prog2 /data /bily /prog1 - úplná cesta - začínají lomítkem /home/bily - částečná cesta - začíná obecně v jiném adresáři než v kořevém bily/prog1 - aktuální adresář - proměnná - příkaz cd mění aktuální adresář - jsem v vak - napíšu cat bily/prog1 - nenajde - musím udělat cd /home/bily a pak cat prog1 - interface - řádkově orientovaný - shell - celoobrazovkový - podobný NC - jmenuje se Midnight Commander (MC) - grafické - X-Windows - Open Windows - ve Windows si spustím Terminal - je to emulátor shellu bash - objeví se $ Programuje se v - řádkový editor - ed - čte příkazy z klávesnice - upravená verze pro vytváření ze skriptu - sed - čte příkazy ze skriptu - celoobrazovkový - vi - příkazový režim - vkládací režim - režim základní řádky - spustí se vi jmé souboru -> jsem v příkazovém režimu - příkaz a nebo i -> přepne do vkládacího režimu - klávesa Esc -> vrací zpět do příkazového režimu - znak -> dostanu se do režimu základní řádky - příkaz w -> obsah souboru se zapíše do souboru na disku - příkaz q -> ukončí se - příkaz q! -> ukončí se i bez zapsání (w) - zpět opět Esc - okenní - editor Windows program - soubor na disku - magic number - header - text of program - inicializovaná data proces - spuštěný program - zásobník - mění se velikost, ostatní jsou neměnné - neinicializovaná data - inicializovaná data - text - v neinicial. a inicial. jsou globální proměnné - kompilátor - cc - příkaz cc mycat.c - výsledek bude v souboru a.out - cc -o mycat mycat.c -> výstup bude v mycat - cc -lm -o mycat mycat.c -> bude také prohledávána knihovna libm.a - vi mycat.c -> editace -!c -> odkaz v historii na poslední příkaz který začínal na c (tzn. spustí řádek cc -lm -o mycat...) - při překladu se děje toto - 2 - Christy

SOURCE PROGRAM /usr/include preprocesor (cc) READY FOR COMPILATION kompilátor (cc) RELATIVNÍ MODUL libm.a libc.a /usr/lib leader (ld) SPUSTITELNÝ MODUL - username - uživatelské jmé /etc/passwd - UID - identifikační číslo uživatele - groups - skupiny uživatelů /etc/groups - Berkley - každý uživatel mohl být současně ve více skupinách, max. v 16-ti - SYSTEM V - jen v jedné skupině, ale může jí změnit - obsah /etc/passwd vak 123... 11Studenthome/vak/bin/bash usernamezakódované heslouidgidpoznámkadomácí adresářlogin shell (shell, který se spustí po spuštění systému) - heslo -> zašifrová -> šifra (zobrazuje se na místě zakódované heslo ) - porovnávají se šifry - když není na místě hesla uvede nic, je možné vstoupit bez hesla - program passwd mění hesla - /etc/shadow - v modernějších unixech - místo šifry se zobrazuje pouze x Ochrana adresářů a souborů - přístupovými právy - každý soubor a adresář má svého individuálního a skupivého vlastníka - r - read - w - write - x - execute files directories r číst číst obsah w psát vytvářet a rušit soubory x spustit vstoupit do adresáře - vstoupit do adresáře cat /home/vak/adr1/soub1 x r -> protože ard1 nemá právo x, uživatel nemůže projít na soub1 práva se přidělují - přidělují se nezávisle individuální vlastník skupivý vlastník ostatní r-w-x r-w-x r-w-x r---x ----- r---- soub - ind. - vak - skup. - student -> připojí se dvorak - student a chce si přečíst soub soub má práva r-w-x --w-x ----- -> první práva se neberou v potaz -> druhá práva jsou rozhodující, protože jsou ve stejné skupině -> chybí právo čtení a proto ho nemůže otevřít -> když se připojí bily - delnici a poslední práva by byla r-w-x, tak on by to mohl číst, ale dvorak ne r-w-x --w-x ----- - 3 - Christy

111 11 7 3 chmod 73 soub - přímá změna oprávnění ls -l soub - prohlídnu si nastavená oprávnění superuživatel - obvykle root - UID= - má všechny práva k souborům a adresářům USER RUNNING 1. interupt return 2. KERNEL RUNNING sleep preemption reschedule ASLEEP 4. wakeup 3. READY TO RUN 1. spustíme program -> user running - běh v uživatelském módu 2. kernel runnig - běh v módu jádra 4. zablokován 3. připraven k běhu 1. -> 2. - vnitřní nebo vnější přerušení - generované instrukcí, nebo dojde k chybě 2. -> 4. - když procesu chybí zdroj pro jeho úspěšné pokračování (např. data z disku), nebo proces požádá o zablokování 2. -> 3. - preempce - proces přerušen interaktem od hodin 4. -> 3. wakeup - probuzení 3. -> scheduler rozhoduje o tom který proces bude spuštěn a kdy Př. RETURN FROM INTERRUPT PROCESS A INTERRUPT run in user mode INTERRUPT HANDLER run in kernel mode běží proces A - můj program - je v něm napsá open (funkce open je v knihovně) - je v ní napsána instrukce vnitřního interruptu -> generuje se vnitřní interrupt -> skočí se do OS - začne běžet interrupt handler (ošetření vnitřního interruptu) - pokud proces běží v módu jádra nemůže být po preempci přerušen informace o běžících procesech je uložena v - tabulce procesů - každý proces má vyhrazenu jednu řádku - jsou zde jen běžící procesy - 4 - Christy

- pointer na disk, kde leží user area - když se proces rozběhne je nahrán do paměti - sloupce - identifikace procesu (číslo) - PID - vlastník individiální - UID - vlastník skupivý - GID - stav procesu - 32bitové pole - zaznamenávají se tam signály, které byly procesu zaslány - čítače pro výpočet priority - spotřeba procesorového času, obsazení paměti - kde je v paměti umístěn - odkaz na tabulku stránek - user area - jsou zde i neběžící procesy - parametry přesu z periférií 32 signálů - procesy si je mezi sebou mohou posílat prostřednictvím OS Kontext procesu - přepínání kontextu - operační systém přepne proces - uživatelský - text, data, zásobník, obsah uživatelských registrů - systémový - informace o procesu uloženém v tabulce stránek, informace o uživatelské oblasti, obsah systémových registrů, systémový zásobník, obsah tabulky stránek process table MAIN MEMORY u-area in memory process A DISK u-area of process A kernel processes text data stack process A Vi editor a (append) příkazový mód zadávání dat příkazová řádka Zápis w d wy w a c 2! set number gt number - vnější interupty se vykonávají v kontextu běžícího procesu A B C zablokoval open() 1 bajtů read() DMA vnější přerušení přepnutí kontextu se neprovede - 5 - Christy

fork() - systémová služba - vznikne vý proces -> PID = (swapper) fork() -> PID = 1 (init) -> PID = 2... Operační systémy II Př. OS vytvoří kopii procesu, vě vzniklý proces bude mít stejný kontext, jako ten předchozí, bude mít ale jiné PID, návratová hodta rodiče je dětské PID, návratová hodta v dětském procese je main() { } int r; if((r=fork()) == ) printf( I am child ); else printf( I am parent ); SYSTEM CALLS fork() PARENT PROCESS PID = 1 CHILD PROCESS PID = 11 NEW PROCESS IS CREATED REQUALS 11 PRINT I am parent END OF PROCESS REQUALS PRINT I am child END OF PROCESS Př. main () { if (fork() == ) pause(); fork(); pause(); } - fork spustí vý proces - je zablokován - hlavní proces běží dál a spustí další proces - oba jsou zablokovány - výsledek jsou tři zablokované procesy v paměti execve() - mění text procesu execl() - mění text procesu Př. #include <stdio.h> main() { if (fork () == ) execl( /bin/date, date, NULL); wait(null); printf( child process finished\n ); /*child*/ /*parent*/ - 6 - Christy

} Signály - je jich 32 - procesy si je můžou posílat prostřednictvím OS - kill() - posílá signál - signal() - ošetřit (zachytit) signál - kill[-signal]pid... - hranaté závorky znamenají, že to co v nich je tam být může, ale nemusí - kill -9 PID - zapíše se do tabulky procesů, že byl signál zaslán - proces, pokud byl zablokován, tak je OS odblokován - pošle se signál, proces je probuzen a když začne být zpracováván tak záleží na tom zda je ošetřen když jo tak se vykonává co se má udělat, pokud není ošetřený tak většiu skončí >abcd 1. interpretuje speciální znaky 2. přezdívka, funkce 3. vnitřní příkaz shellu >cd 4. podle nastavení cest začne hledat soubor abcd 1. spuštění na popředí spuštění na pozadí & Popředí Pozadí wait() fork() EXECVE ("abcd",...) > fork() wait() EXECVE() > > find / -name ls - print & - find běží na pozadí a my můžeme pracovat 2>chyba >vysledky & - výsledky do souboru 2>/dev/null & /dev ls -al /dev počet hardlinků - vlastníci název souboru brw-rw-rw- 1 root floppy 2, datum fdh144 typ souboru hlavní, vedlejší číslo b nebo c hlavní - ovladač blokové nebo znakové vedlejší - identifikace zařízení swapper (dlouhodobý plávač) 1 init 2 page daemon (stránkování - uvolňování stránek)... /etc/inittab - pozměňujeme funkce burn shellu vc2345write/etc/rc.d/rc.2 net345wait/etc/rc.d/rc.net zastavení systému 1 jeduživatelský režim 2-5 multiuser 6 restart - 7 - Christy

c12345respon/sbin/getty 96 tty1 Operační systémy II soubor open() = d d... descriptor (malé celé číslo, 1, 2,...) read (d, kam, počet bytů) = n ukazovátko lseek() - čtení ze souboru n=write(d, odkud, počet) close (d) Unix filesystem - soubory jsou organizovány pomocí adresářů do stromové struktury - soubory a adresáře jsou organizovány do systému souborů / etc vmunix bin lib dev re.d group passwd Typy souborů rmální soubory - adresáře d řídící soubory b řídíc soubory c linkové soubory l Struktura systému souborů Directory 2 2 vmunix 7 bin 15 dev 85 lib 12 Boothblock Superblock i-de area Data Suberblock - obsahuje informace o fylesystemu - velikost filesystemu - velikost i-uzlů - počet volných bloků - počet volných i-uzlů - 8 - Christy

- seznam volných bloků - seznam volných i-uzlů block (cluster) - umístění dat na disku - 512 B PROCESS file, byte FILE MANAGER file, byte -> fylesystem, block number filesystem, block number DISC HANDLER filesystem, block number -> disc, cylindr, surgace, sector disc, cylindr, surgace, sector DISC MODULE 12 11 1 9 8 7 6 5 4 3 2 1-9 - Christy

5kB + 128 x 512B + 128 x 128 x 512B + 128 x 128 x 128 x 512B = 1 GB - předpokládá se že se používají převážně malé soubory - přístup k těmto malým souborům je rychlý - čím větší soubor, tím pomalejší, protože musím víckrát číst z disku (každých 128B je čtení navíc) Hard link - odkaz z adresáře na i-uzel - příkaz ln - vytvoří link rm - smaže link mv - přejmevává a přesouvá linky - není možné dělat hard linky - z jedho systému souborů do druhého - na adresáře - došlo by k cyklení Soft link - soubory typu l - zvláštní soubor (s vlastním i-uzlem) - obsahem je cesta k nějakému souboru na který odkazuje - takto lze dělat odkazy z jedho systému souborů na druhý - příkaz ln -s /etc/passwd hesla - vytvoří soft link Přístupová práva r čtení w zapisování x spuštění UID... reálný individuální vlastník GID... reálný skupivý vlastník EUID... efektivní individuální vlastník EGID... efektivní skupivý vlastník na začátku EUID = UID EGID = GID EUID == superuser EUID == UIDO Bit set? EUID == GIDO Bit set? Bit set? acess allowed acess denied - změna EIUD (EGID), pokud se spustí soubor s nasteveným s-bitem (uživatele, skupiny) - v tom případě EUID = UID vlastníka spuštěného souboru (EGID = GID spuštěného souboru) Změna hesla /bin/passwd - 1 - Christy

/etc/passwd /etc/shadow - pokud je spuštěn soubor s nastaveným t-bitem, tak pokud končí, tak se zachovává část informace (tabulka stránek) -> při opětném spuštění je spuštění rychlejší Nastavení přístupových práv s s t r w x r w x r w x 1 1 1 1 1 1 1 1 4 7 5 5 s - user s-bit s - group s-bit t - t-bit systémové volání chmod ("/home/vak/prog",4755) Chybí přednáška 22.11., 29.11. a 6.12. - 11 - Christy