Rozdělení operačních systémů OS1 Přednáška číslo 2
Podle počtu ovládaných procesorů Jednoprocesorové (monoprocesorové) Víceprocesorové (multiprocesorové) Asymetrický processing (ASMP) na jednom procesoru běží procesy systému, na dalších uživatelské procesy Symetrický multiprocessing (SMP) kterýkoliv proces může běžet na kterémkoliv procesoru
Podle správy uživatelů Jednouživatelské (monouser) Víceuživatelské (multiuser) Více uživatelů pracuje současně v reálném čase Musí zajistit rozdělení a oddělení prostředků (paměti) mezi uživatele
Podle počtu spuštěných programů Jednoprogramové (monotasking) Víceprogramové (multitasking) více úloh je spuštěno současně Preemptivní multitasking pravidelné střídání úloh (Mac OS X, UNIX, Windows NT, Windows95) Nepreemptivní multitasking lze spustit více úloh, ale úloha opustí procesor pouze při ukončení anebo čekání na v/v operaci Kooperativní jako preemptivní, ale o předání procesoru se starají samotné úlohy (Windows 3.X, Mac OS před X)
Podle schopnosti práce v síti Lokální nedokáží pracovat v síti bez přídavných modulů Síťové mají klientskou i serverovou verzi
Podle míry specializace Speciální pro jeden typ úloh Univerzální různé typy úloh
Realtimové operační systémy Musí být schopny práce v reálném čase Řízení letadla, jaderné elektrárny, Musí reagovat okamžitě horní časová hranice Většinou mají malé jádro (mikrojádro), které ovládá jen základní funkce a na vše další se volají moduly Příklady: QNX RTLinux RTX RealTime extension nadstavba pro Windows
Základní typy struktur OS Monolitická struktura jádro a rozhraní - MS DOS, zařízení (tiskárny) Vrstvená struktura části systémů uspořádány do vrstev každá vrstva využívá služeb nižších vrstev. Systém je budován od vnitřních vrstev k vnějším. Vnitřní vrstvy jsou proto nejdůležitější z hlediska bezpečnosti. V současnosti nejčastější struktura
Základní typy struktur OS Virtuální počítače systém je rozdělen do samostatných modulů. Každý z nich vybaven prostředky. Obvykle se vzájemně neovlivňují. Abstraktní počítače jako virtuální počítače. Každý modul má svou pevnou specifickou funkci. Ovladače zařízení.
Základní typy struktur OS Model klient server systém má mikrojádro, které obsahuje jen základní funkce, ostatní funkce systému provádějí speciální systémové procesy servery. Procesy, které spouští uživatel se nazývají klienti a využívají služeb serveru. Typicky realtimové OS
Základní typy struktur OS Stavebnicová struktura co nejmenší jádro. Zbytek je přilinkován pouze tehy, vyžaduje-li ho některý z klientů. Opět typicky realtimové OS
Základy OS Unix 2. přednáška pokračování
Vznik UNIXu 2 polovina šedesátých let Vyvinut ze systému Multics Původně vyvinut jako systém pro zpracování textů Autoři Ken Thompson a Denis Ritchie Název vymyslel Brian Kernighan Původně napsán v jazyce B, z kterého byl vyvinut v r. 1971 jazyk C
Ken Thompson (vlevo) Dennis Ritchie (vpravo)
Ken Thompson (vpravo)
Dennis Ritchie Dennis MacAlistair Ritchie (narozen 9. 9. 1941)
Brian Kernighan Brian Wilson Kernighan (narozen 1942 v Torontu v Kanadě)
Pravidla vývoje UNIXu Psát programy, které budou dělat právě jednu věc, a tu budou dělat dobře. Psát programy tak, aby mohly navzájem spolupracovat. Psát programy tak, aby povely přijímaly hromadně ze vstupu v textové podobě. Psát programy tak, aby výstupy produkovaly v textové podobě a mohly být použity jako vstupy do programů dalších.
Vlastnosti OS UNIX multiprogramový multiuživatelský víceprocesorový s terminálovým přístupem Operační systém UNIX musí uživateli u terminálu vytvořit pocit, že počítač schovaný za terminálem je "pouze" jeho.
Vlastnosti OS UNIX Jádro běží v privilegovaném režimu Obvykle je tvořeno jedním souborem monolitický systém (v Linuxu /boot/vmlinuz) Vše ostatní běží v uživatelském režimu
Jádro systému 2 vrstvy HAL (Hardware Abstraction Layer) část jádra závislá na hardware, především ovladače zařízení Kernel část nezávislá na HW. Běží zde démoni systémové procesy, které běží na pozadí bez ohledu na uživatele
Struktura OS UNIX Programy Shell, vestavěné programy Skripty shellu Knihovny Jádro (privilegovaný režim) Kernel HAL Démoni
Struktura OS UNIX Knihovny obsahují objekty a různé rutiny (jako DLL ve Windows). Shell rozhraní pro komunikaci s uživatelem. Současné UNIXy mají i grafické rozhraní, které jej nahrazuje a běžný uživatel s shellem nemusí přijít do styku. Skripty posloupnosti příkazů shellu zapsané do souboru.
Struktura jádra UNIXu Rozhraní systémových volání VFS Správce procesů Souborové systémy Správce paměti Síťové služby Ovladač TCP/IP Ovladač prvního HD Ovladač druhého HD Ovladač DVD Ovladač síťové karty První pevný disk Druhý pevný disk DVD Síťová karta
Struktura UNIXového jádra Souborový systém rozhraní mezi ovladačem paměťového média a vyššími vrstvami jádra. V UNIXu platí, že vše je soubor. VFS (Virtual File systém) rozhraní pro podobný přístup k různým souborovým systémům. Uživatel se nemusí starat o fyzické umístění konkrétního souboru
Struktura UNIXového jádra Rozhraní systémových rozhraní rozhraní mezi jádrem a uživatelem (programy) S touto vrstvou se komunikuje pomocí knihoven obsahujících definice API funkcí (Application Programming Interface) zajištění bezpečnosti znemožnění zásahu uživatele do jádra zjednodušení práce programátorů
Prvky ochrany uživatelů v OS UNIX Uživatel má účet, který obsahuje následující informace: Jméno účtu a heslo Skupina a číslo uživatele Identifikace uživatele (jméno, příjmení ) Domácí adresář (/home/jmeno) Interpret příkazů shel (bash) Další informace (datum a místo posledního přihlášení)
Prvky ochrany uživatelů v OS UNIX Prvky se určují zvlášť pro: majitele souboru (u - user) skupinu uživatelů (g - group) ostatní, svět (o - other) všechny (a - all) Práva na: čtení/zápis/provedení (soubor) (r,w,x) výpis/modifikace/vstup (adresář) (r,w,x) Superuživatel (root) právo na cokoliv
Systém souborů a adresářový strom Systém souborů ext2fs, ext3fs, ReiserFS, XFS (Linux), efs (IRIX), ufs (Solaris) UNIX (Linux) má jednotnou strukturu adresářů měla by být jednotná na všech systémech Norma POSIX a POSIX-2
Typický strom adresářů UNIXu /unix, /bsd, /boot Jádro OS /bin Základní systémové programy a příkazy /dev Adresář speciálních souborů pro obsluhu periferií /etc Adresář konfiguračních souborů systému /lib Adresář knihoven /mnt Pomocný adresář pro připojování dočasných systémů souborů /tmp Veřejný adresář pro pomocné a dočasné soubory (temp)
Typický strom adresářů UNIXu /home Adresář s domovskými adresáři uživatelů /usr/bin, etc, lib, tmp Adresáře se soubory, které typicky z kapacitních důvodů nejsou v kořenovém adresáři. /usr/include soubory pro překladač jazyka C /usr/man Manuálové stránky /usr/local/bin, man, etc, lib,... Programy lokálně instalované
Typický strom adresářů UNIXu usr/sbin, /sbin Systémové programy určené zpravidla superuživateli /var Adresář pracovních a administrativních souborů systému /opt adresář s dalšími programy (pouze Linux) /srv kořenový adresář WWW, FTP (pouze některé distribuce Linuxu)
Příkazy UNIXu man nápověda spouštění: man příkaz (např. man man) cd změna adresáře (change directory) cd adresář cd.. skok do nadadresáře samotné cd skok do domácího adresáře uživatele
Příkazy UNIXu ls výpis souborů a adresářů ls l dlouhý výpis ls a včetně skrytých souborů (začínají tečkou) ls la obojí cp kopírování souborů cp odkud kam
Příkazy UNIXu mv přesun souborů mv odkud kam rm smazání souborů rm soubor rm i soubor s dotazem rm i *
Příkazy UNIXu rmdir smazání adresáře rmdir jmeno mkdir vytvoření adresáře mkdir jmeno chmod nastavení práv souborů a adresářů chmod abc soubor a,b,c čísla 0-7, (součet čísel: 4 čtení, 2 - zápis, 1 spouštění) např. 5 čtení a spouštění. Anebo pomocí symbolů r,w,x a u,g,o,a (viz cvičení)
Příkazy UNIXu ps výpis běžících procesů ps axu všechny procesy všech uživatelů kill stopnutí procesu kill 9 id natvrdo stopnut proces id clear smazání obrazovky pwd cesta do aktuálního adresáře
Příkazy UNIXu chown změna majitele souboru cat prohlížení textového souboru more, less prohlížení textového souboru se stránkováním
Příkazy UNIXu df výpis připojených disků a místa na nich free výpis stavu paměti du výpis velikosti podadresářů quota - prostor přidělený uživateli a jeho zaplnění which kde je umístěn program which bash kde je umístěn program bash
Současné UNIXy Linux www.linux.cz www.linux.org
Současné UNIXy BSD Berkeley Software Distributions www.freebsd.cz
Současné UNIXy Darwin a MacOS X pro PPC (Apple) www.gnu-darwin.org www.apple.com/macosx
Současné UNIXy Solaris wwws.sun.com/software/solaris
Současné UNIXy Tru Unix h30097.www3.hp.com/index.html
Současné UNIXy IRIX www.sgi.com/developers/technology/irix/
Současné UNIXy AIX www-1.ibm.com/servers/aix
Konec Děkuji za pozornost