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

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

Operační systémy. Přednáška 1: Úvod

Procesy a vlákna (Processes and Threads)

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Principy operačních systémů. Lekce 1: Úvod

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

IT ESS II. 1. Operating Systém Fundamentals

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

2010/2011 ZS. Operační systém. úvod základní architektury

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

úvod Historie operačních systémů

Stavba operačního systému

OPERAČNÍ SYSTÉMY. Operační systém je prostředník mezi hardwarem (technickým vybavením počítače) a určitým programem, který uživatel používá.

Operační systémy. Tomáš Hudec.

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

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Principy operačních systémů. Lekce 5: Multiprogramming a multitasking, vlákna

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

Definice OS. Operační systém je základní programové vybavení počítače, nezbytné pro jeho provoz.

Základní informace. Operační systém (OS)

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE

Matematika v programovacích

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

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)

VirtualBox desktopová virtualizace. Zdeněk Merta

ÚVOD DO OPERAČNÍCH SYSTÉMŮ

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

Profilová část maturitní zkoušky 2014/2015

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

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

Logická organizace paměti Josef Horálek

OPS Paralelní systémy, seznam pojmů, klasifikace

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

a co je operační systém?

Minimální požadavky na systém Linux a Windows na jednom disku Zrušení instalace Mandriva Linuxu... 23

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

DERATIZACE ANEB PROČ PŘÍKAZY ;)

Počítač jako prostředek řízení. Struktura a organizace počítače

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

Výpočetní technika. PRACOVNÍ LIST č. 7. Ing. Luděk Richter

09. Memory management. ZOS 2006, L.Pešička

Přednáška 11. Historie MS Windows. Architektura Windows XP. Grafické a znakové rozhraní. Úlohy, procesy a vlákna.

Shrnutí předcházející přednášky

Pokročilé architektury počítačů

SOU Valašské Klobouky. VY_32_INOVACE_01_15 IKT Operační systémy, základní vlastnosti, přehled. Mgr. Radomír Soural

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

Profilová část maturitní zkoušky 2015/2016

SADA VY_32_INOVACE_PP1

Úvod do operačního systému Linux Mgr. Josef Horálek

OPERAČNÍ SYSTÉM ZLÍNSKÝ KRAJ. Obchodní akademie, Vyšší odborná škola a Jazyková škola s právem státní jazykové zkoušky Uherské Hradiště

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE JÍST.

Název školy: Základní škola a Mateřská škola Žalany

Hospodářská informatika

Témata profilové maturitní zkoušky

Činnost operačních systémů. Beránek Pavel 1. KŠPA

VIRTUALIZACE POČÍTAČE HISTORIE A VÝVOJ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Základy informatiky. 05 Operační systémy. Zpracoval: Pavel Děrgel Upravil: Daniela Szturcová

Operační systém. Logické prostředky výpoč etního systému jsou:

GNU/LINUX SILNÉ A SLABÉ STRÁNKY

Přidělování CPU Mgr. Josef Horálek

I n f o r m a t i k a a v ý p o č e t n í t e c h n i k a. Operační systém

Identifikátor materiálu: ICT-1-17

Software programové vybavení. 1. část

ÚVOD DO OPERAČNÍCH SYSTÉMŮ. Vývoj SW aplikací. Unix, POSIX, WinAPI, programování komunikace s periferními zařízeními, ovladače zařízení

Tomáš Borland Valenta

Před instalací 25 Minimální požadavky na systém Linux a Windows na jednom disku Zrušení instalace Mandriva Linuxu...

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

Vrstvy programového vybavení Klasifikace Systémové prostředky, ostatní SW Pořizování Využití

Instalace OS, nastavení systému

Pokročilé architektury počítačů

PB153 Operační systémy a jejich rozhraní

pouˇzití USB nebo SPI

Jak funguje GNU/Linux

Úvod do operačního systému Linux Mgr. Josef Horálek

Virtualizace na Linuxu

Česká pošta, s.p. na Linuxu. Pavel Janík open source konzultant

PŘÍKAZY PRÁCE SE SLOŽKAMI

Virtuální učebna: VMware VDI zefektivňuje výuku, zjednodušuje správu a snižuje náklady

Základy programování (IZP)

Operační systémy. Tomáš Hudec.

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Integrace formou virtualizace

Operační systémy (OS)

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

Úvod do Linuxu SŠSI Tábor 1

Základy informatiky. 04 Operační systémy. Kačmařík/Szturcová/Děrgel/Rapant

Základní typy struktur výpočetních systémů

1.2 Operační systémy, aplikace

Ladění ovladačů pomocí virtuálního stroje...2 Úvod...2 Ladění ovladačů pomocí dvou fyzických počítačů...2 Ladění ovladačů pomocí jednoho fyzického

Vzdálený přístup k počítačům

1 Úvod 1.1 Vlastnosti programového vybavení (SW)

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

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

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

Paralelní programování

PRINCIPY OPERAČNÍCH SYSTÉMŮ

Operační systém GNU/Linux

Základy programování Operační systémy (UNIX) doc. RNDr. Petr Šaloun, Ph.D. VŠB-TUO, FEI (přednáška připravena z podkladů Ing. Michala Radeckého)

Transkript:

Operační systémy IOS 2016/2017 Tomáš Vojnar ÚÓ Ò Ö ØºÚÙØ ÖºÞ Vysoké učení technické v Brně Fakulta informačních technologií Božetěchova 2, 612 66 Brno Úvod p.1/30

Tyto slajdy jsou určeny pro studenty předmětu IOS na FIT VUT. Obsahují základní popis vývoje, struktury a vlastností operačních systémů se zaměřením na systém UNIX. Předpokládají se základní znalosti programování a přehled základních pojmů z oblasti počítačů. Obsah slajdů může být v některých případech stručný, podrobnější informace jsou součástí výkladu: Velmi silně se předpokládá účast na přednáškách a doporučuje se vytvářet si poznámky. Předpokládá se také aktivní přístup ke studiu, vyhledávání informací na Internetu či v literatuře (jimiž doporučuji si případně doplnit obsah slajdů), konfrontace obsahu slajdů s jinými zdroji a také praktické experimentování s GNU/Linuxem (či FreeBSD nebo podobnými UNIXovými systémy). Úvod p.2/30

Motivace Operační systém je významnou částí prakticky všech výpočetních systémů, jež typicky zahrnují: hardware, operační systém (OS), uživatelské aplikační programy a uživatele. I pro ty, kteří se nebudou nikdy podílet na vývoji žádného OS, má studium OS velký význam: OS mají významný vliv na fungování celého výpočetního systému a znalost principů jejich fungování je tedy zapotřebí při vývoji: hardware, na kterém má běžet nějaký OS a software, který má prostřednictvím nějakého OS efektivně využívat zdroje hardware, na kterém běží což by mělo platit vždy. Úvod p.3/30

OS jsou obvykle značně komplikované systémy, jež prošly a procházejí dlouhým vývojem, při kterém: byla učiněna řada rozhodnutí ovlivňujících filozofii vývoje počítačových systémů (otevřený x uzavřený software, ovlivňování počítačového trhu na základě vlastností OS, vývoj SW v komunitách vývojářů, virtualizace,...), byla použita řada zajímavých algoritmů, způsobů návrhu architektury SW, metodologií a technik softwarového inženýrství apod., jež jsou inspirující i mimo oblast OS. Zapojení se do vývoje některého OS či jeho části není navíc zcela nepravděpodobné: Není např. možné dodávat nově vyvinutý hardware (rozšiřující karty apod.) bez podpory v podobě ovladačů (driverů). Pro potřeby různých aplikací (např. u vestavěných počítačových systémů) může být zapotřebí vyvinout/přizpůsobit vhodný OS. Zapojení se do vývoje některého otevřeného OS (Linux, FreeBSD, mikrojádra typu Hurd či L4,...) je značnou intelektuální výzvou a může přinést příslušné intelektuální uspokojení. Úvod p.4/30

Organizace studia Přednáška: 3h/týden principy a vlastnosti operačních systémů (UNIX obvykle jako případová studie) UNIX z uživatelského a částečně programátorského pohledu Samostatná práce: min. 2h/týden samostudium, experimenty,..., úkoly (+ dobrovolná demo-cvičení) Hodnocení: projekty 30b půlsem. zkouška 10b (zápočet: min 10b z půlsem. zk. a projektů) semestrální zkouška 60b (minimum: 27b) celkem 100b Pro ilustraci: v loňském roce úspěšnost cca 67 %. Úvod p.5/30

Zdroje informací WWW stránky kursu: ØØÔ»»ÛÛÛº غÚÙØ ÖºÞ» ØÙ Ý»ÓÙÖ»ÁÇË»Ô٠л Diskusní fóra kursu: jsou dostupná v IS FIT diskutujte! Literatura: koupit či vypůjčit (např. v knihovně FIT, ale i v jiných knihovnách). Je-li některá kniha dlouhodobě vypůjčena některému zaměstnanci, neváhejte a kontaktujte ho. Internet: vyhledávače (google,...); často jsou užitečné dokumenty typu HOWTO, FAQ,... encyklopedie: ØØÔ»»ÛÛÛºÛ Ô ºÓÖ» velmi vhodné při prvotním ověřování některých bodů z přednášek při studiu, lze pokračovat uvedenými odkazy, nutné křížové ověřování. dokumentační projekty: ØØÔ»»ÛÛÛºØÐ ÔºÓÖ»,... UNIX, Linux: program Ñ Ò ( RTFM! ), GNU Ò Ó a další dokumentace (»Ù Ö» Ö» Ó,»Ù Ö»ÐÓ Ð» Ö» Ó),... Úvod p.6/30

Literatura [1] Silberschatz, A., Galvin, P.B., Gagne, G.: Operating Systems Concepts, 9th ed., John Wiley & Sons, 2012. (Významná část přednášek je založena na tomto textu.) [2] Tanenbaum, A.S.: Modern Operating Systems, 4th ed., Pearson, 2014. [3] Tanenbaum, A.S., Woodhull, A.S.: Operating Systems Design and Implementation, 3rd ed., Prentice Hall, 2006. [4] Raymond, E.S.: The Art Of Unix Programming, Addison-Wesley, 2003. ØØÔ»»ÛÛÛº Ø ºÓÖ» Ö»ÛÖ Ø Ò»Ø ÓÙÔ» ØÑл [5] Russinovich, M., Solomon, D., Ionescu, A.: Windows Internals, 6th ed., Microsoft Press, 2012. [6] Skočovský, L.: Principy a problémy operačního systému UNIX, 2. vydání, 2008. ØØÔ»» ÓÓÚ ÝºÞ»Ô ÔÓ Ù¾¼¼» Uvedeny jsou pouze některé základní, zejména přehledové knihy. Existuje samozřejmě řada dalších knih, a to včetně knih specializovaných na detaily různých subsystémů operačních systémů (plánovač, správa paměti, souborové systémy, ovladače,...). Tyto knihy často vycházejí přímo ze zdrojových kódů příslušných subsystémů, které uvádějí s příslušným komentářem. Úvod p.7/30

Základní pojmy Úvod p.8/30

Význam pojmu operační systém Operační systém je program, resp. kolekce programů, která vytváří spojující mezivrstvu mezi hardware výpočetního systému (jenž může být virtualizován) a uživateli a jejich uživatelskými aplikačními programy. Cíle OS kombinace dvou základních, do jisté míry protichůdných cílů, jejichž poměr se volí dle situace: Maximální využití zdrojů počítače: drahé počítače, levnější pracovní síla, zejména dříve (nebo na speciálních architekturách). Jednoduchost použití počítačů: levné počítače a drahá pracovní síla, dnes převažuje. Úvod p.9/30

Dvě základní role OS: Správce prostředků (pamět, procesor, periferie). Dovoluje sdílet prostředky efektivně a bezpečně. Více procesů sdílí procesor, více programů sdílí pamět, více uživatelů a souborů obsazuje diskový prostor,... Tvůrce prostředí pro uživatele a jejich aplikační programy (tzv. virtuálního počítače). Poskytuje standardní rozhraní, které zjednodušuje přenositelnost aplikací a zaučení uživatelů. Poskytuje abstrakce: Technické vybavení je složité a značně různorodé práci s ním je nutné zjednodušit. Problémy abstrakcí: menší efektivita, nepřístupné některé nízkoúrovňové operace. Příklady abstrakcí: proces a, soubor b, virtuální pamět,... a Program: předpis, návod na nějakou činnost zakódovaný vhodným způsobem (zdrojový text, binární program). Proces: činnost řízená programem. b Soubor: kolekce záznamů sloužící (primárně) jako základní jednotka pro ukládání dat na vnějších pamět ových médiích. Adresář: kolekce souborů. Úvod p.10/30

Výše uvedené není zadarmo! OS spotřebovává zdroje (pamět, čas procesoru). OS se obvykle chápe tak, že zahrnuje: jádro (kernel), systémové knihovny a utility (systémové aplikační programy), textové a/nebo grafické uživatelské rozhraní. Přesná definice, co vše OS zahrnuje, však neexistuje: Někdy bývá OS ztotožňován takřka pouze s jádrem. GNU GNU is Not UNIX: Projekt vývoje svobodného (free) OS, který zahrnuje jádro (Linux, Hurd), utility, grafické i textové rozhraní (bash, Gnome, KDE), vývojové prostředky a knihovny (gcc, gdb,...) i řadu dalších programů (včetně kancelářských programů a her). Microsoft Windows: Je či není prohlížeč Internetu či přehrávač videa nedílnou součástí OS? Úvod p.11/30

Jádro OS Jádro OS je nejnižší a nejzákladnější část OS. Zavádí se první a běží po celou dobu běhu počítačového systému (tzv. reaktivní spíše než transformační program). Navazuje přímo na hardware, příp. virtualizovaný HW, a typicky ho pro uživatele a uživatelské aplikace zcela zapouzdřuje. Běží obvykle v privilegovaném režimu. V tomto režimu může provádět libovolné operace nad (virtualizovaným) HW počítače. Za účelem oddělení a ochrany uživatelů a jejich aplikačních programů nesmí tyto mít možnost do tohoto režimu libovolně vstupovat. Nutná HW podpora v CPU. Zajišt uje základní správu prostředků a tvorbu prostředí pro vyšší vrstvy OS a uživatelské aplikace. To, jaké konkrétní služby jádro nabízí, je výsledkem zvoleného kompromisu mezi efektivitou, bezpečností, flexibilitou a příp. dalšími aspekty. Jedná se ovšem minimálně o tu část služeb, která bezprostředně vyžaduje interakci s HW (přepínání kontextu, zavádění stránek, nastavování parametrů HW apod.). Úvod p.12/30

Systémové i uživatelské aplikační programy mohou explicitně žádat jádro o služby prostřednictvím systémových volání (system call). Děje se tak přímo nebo nepřímo s využitím specializovaných instrukcí (např. u x86 softwarové přerušení nebo Ë Ë ÄÄ/Ë Ë ÆÌ Ê), které způsobí kontrolovaný přechod do režimu jádra. Rozlišujeme dva typy rozhraní: Kernel Interface: přímé volání jádra specializovanou instrukcí Library Interface: volání funkcí ze systémových knihoven, které mohou (ale nemusí) vést na volání služeb jádra Applications Libraries Kernel Hardware Library Interface Kernel Interface HW Interface Úvod p.13/30

Typy jader OS Monolitická jádra: Vytváří vysokoúrovňové komplexní rozhraní s řadou služeb a abstrakcí nabízených vyšším vrstvám. Všechny subsystémy implementující tyto služby (správa paměti, plánování, meziprocesová komunikace, souborové systémy, podpora sít ové komunikace apod.) běží v privilegovaném režimu a jsou těsně provázané za účelem vysoké efektivity. Vylepšením koncepce monolitických jader jsou monolitická jádra s modulární strukturou: Umožňuje zavádět/odstraňovat subsystémy jádra v podobě tzv. modulů za běhu. Např. FreeBSD či Linux (Ð ÑÓ, ÑÓ ÔÖÓ, ÖÑÑÓ,...) Úvod p.14/30

Mikrojádra: Minimalizují rozsah jádra a nabízí jednoduché rozhraní, s jednoduchými abstrakcemi a malým počtem služeb pro nejzákladnější správu procesoru, vstup/výstupních zařízení, paměti a meziprocesové komunikace. Většina služeb nabízených monolitickými jádry (včetně např. ovladačů, významných částí správy paměti či plánování) je implementována mimo mikrojádro v tzv. serverech, jež neběží v privilegovaném režimu. Příklady mikrojáder: Mach, QNX, L4 (pouhých 7 služeb oproti více než 200 u jádra 2.6 Linuxu; verze L4: Fiasco, Pistachio, sel4,...),... Výhody mikrojáder: Flexibilita možnost více současně běžících implementací různých služeb, jejich dynamické spouštění, zastavování apod. Zabezpečení servery neběží v privilegovaném režimu, chyba v nich/útok na ně neznamená ihned selhání/ovládnutí celého OS. Nevýhoda mikrojáder: vyšší režie výrazně vyšší u mikrojader 1. generace (Mach), lepší je situace u (stále experimentálních) mikrojader 2. generace (např. L4: minimalismus, optimalizace pro konkrétní architekturu), nicméně tato nevýhoda přetrvává. Úvod p.15/30

Hybridní jádra: Mikrojádra rozšířená o kód, který by mohl být implementován ve formě serveru, ale je za účelem menší režie těsněji provázán s mikrojádrem a běží v jeho režimu. Příklady: Mac OS X (Mach kombinovaný s BSD), Windows NT (a vyšší),... Exojádra: Experimentální jádra poskytující velmi nízké rozhraní zaměřené hlavně na bezpečné sdílení prostředků (a ne na tvorbu abstrakcí či standardního rozhraní). Doplněno o knihovny implementující služby jinak nabízené běžně jádrem. Příklady: Aegis, Nemesis,... Úvod p.16/30

Historie vývoje OS Je nutné znát historii, protože se opakuje... :-) První počítače: Knihovna podprogramů (například pro vstup a výstup) zárodek OS. Dávkové zpracování: důležité je vytížení stroje, jednoduchá podpora OS pro postupné provádění jednotlivých úloh seřazených operátory do dávek. Multiprogramování více úloh zpracovávaných současně: Překrývání činnosti procesoru a vstup/výstupního podsystému (vyrovnávací paměti, přerušení). Zatímco jedna úloha běží, jiná může čekat na dokončení I/O (problém: ochrana paměti, řešeno technickými prostředky). OS začíná být významnou částí programového vybavení (nevýhoda: OS zatěžuje počítač). Úvod p.17/30

Příchod levnějších počítačů: Interaktivnost, produktivita práce lidé nečekají na dokončení zpracování dávky. Stále se ještě nevyplatí každému uživateli dát počítač terminály a sdílení času: timesharing/multitasking, tj. současný běh více aplikací na jednom procesoru. Problém odezvy na vstup: preemptivní plánování úloh a. Oddělené ukládání dat uživatelů: systémy souborů. Problémy s přetížením počítače mnoha uživateli. OS řídí sdílení zdrojů: omezené použití prostředků uživatelem (priority, quota). a Nepreemptivní plánování: Procesor může být procesu odebrán, pokud požádá jádro o nějakou službu (I/O operaci, ukončení, vzdání se procesoru). Preemptivní plánování: OS může procesu odebrat procesor i proti jeho vůli (tedy i když sám nežádá o nějakou službu jádra), a to na základě příchodu přerušení při určité události (typicky při vypršení přiděleného časového kvanta, ale také dokončení I/O operace jiného procesu apod.). Úvod p.18/30

Ještě levnější počítače: Každý uživatel má svůj počítač, který musí být levný a jednoduchý (omezená pamět, chybějící ochrana paměti, jednoduchý OS na poli OS jde o návrat zpět: CP/M, MS-DOS). Další pokrok v technologiích sítě, GUI. Nové OS opět získávají vlastnosti starších systémů (propojení přes sít si opět vynucuje patřičné ochrany,...). Následoval (následuje) podobný vývoj u nejprve málo výkonných kapesních počítačů a mobilů s omezenými OS (jednoúlohovost apod.), nyní již ale běžně s více-jádrovými procesory a převzetím mnoha rysů běžných OS. Další podobný vývoj: např. senzorové sítě, Internet of Things apod. prozatím málo výkonné uzly (spotřeba energie), ale co bude následovat? Úvod p.19/30

Přehled technického vybavení CPU MEMORY Procesor: řadič, ALU, registry (IP, SP), instrukce BUS Pamět : adresa, hierarchie pamětí (cache,...) I/O Periferie: disk, klávesnice, monitor, (I/O porty, pamět ově mapované I/O, přerušení, DMA) Sběrnice: FSB, HyperTransport, QPI, NVLink, CAPI, PCI, USB, IEEE1394, ATA/SATA, SCSI/SAS,... Úvod p.20/30

Klasifikace počítačů Klasifikace počítačů podle účelu: univerzální, specializované: vestavěné (řízení technologických zařízení, palubní počítače, spotřební elektronika,...), aplikačně orientované (databázové, výpočetní, sít ové servery,...), vývojové (zkoušení nových technologií),... Klasifikace počítačů podle výkonnosti: vestavěné počítače, handheldy, mobily,..., osobní počítače (personal computer), pracovní stanice (workstation), servery, střediskové počítače (mainframe), superpočítače. Úvod p.21/30

Klasifikace OS Klasifikace OS podle účelu: univerzální (UNIX, Windows, Linux,...), specializované: real-time (QNX, RXS, RT-Linux,...), databáze, web,... (např. z/vse), mobilní zařízení (Android, ios, Windows Phone,...),... Klasifikace OS podle počtu uživatelů: jednouživatelské (CP/M, MS-DOS,...) a víceuživatelské (UNIX, Windows,...). Klasifikace OS podle počtu současně běžících úloh: jednoúlohové a víceúlohove (multitasking: ne/preemptivní). Úvod p.22/30

Příklady dnes používaných OS typ počítače mainframe superpočítače server PC real-time handheldy, mobily příklady OS MVS, z/os, VM/CMS, VM/Linux, z/vse, Windows často varianty Linuxu/UNIXu, Windows HPC UNIX, FreeBSD, Linux, Windows Windows, MacOS X, Linux QNX, RT-Linux Android, ios, Windows Mobile, Firefox OS, Linux Úvod p.23/30

Implementace OS OS se obtížně programují a ladí, protože to jsou velké programové systémy, paralelní a asynchronní systémy, systémy závislé na technickém vybavení. Z výše uvedeného plyne: Jistá setrvačnost při implementaci: snaha neměnit kód, který již spolehlivě pracuje. Používání řady technik pro minimalizaci výskytu chyb, např.: inspekce zdrojového kódu (důraz na srozumitelnost!), rozsáhlé testování, podpora vývoje technik automatizované (formální) verifikace. Úvod p.24/30

Hlavní směry ve vývoji OS Pokročilé architektury (mikrojádra, hybridní jádra,...): zdůraznění výhod, minimalizace nevýhod, možnost kombinace různých, současně běžících OS,... Bezpečnost a spolehlivost. Podpora hard real-time (průmyslové procesy), soft real-time (multimédia). Multiprocessing (SMP,...). Virtualizace. Distribuované zpracování, clustery, gridy, Internet of Things. OS kapesních počítačů (handheld), vestavěných systémů, mobilů,... Vývoj nových technik návrhu a implementace OS (podpora formální verifikace,...).... Úvod p.25/30

Základy práce s UNIXem Úvod p.26/30

Studentské počítače s UNIXem na FIT studentské UNIXové servery: eva (FreeBSD), merlin (Linux/CentOS) PC s Linuxem (CentOS): běžně na učebnách (dual boot) Přihlášení: Login: xnovak00 Password: # neopisuje se - změna: příkaz passwd... $ # prompt - vyzývací znak shellu Vzdálené přihlášení: programy/protokoly pro vzdálení přihlášení: ssh, telnet (telnet neužívat!) putty ssh klient pro Windows Úvod p.27/30

Základní příkazy Práce s adresáři a jejich obsahem: cd change directory pwd print working directory ls [-al] výpis obsahu adresáře/informace o souborech mkdir make a directory rmdir remove a directory mv přesun/přejmenování souboru/adresáře (move) cp [-r] kopie souboru/adresáře (copy) rm [-ir] smazání souboru/adresáře (remove) Úvod p.28/30

Výpis obsahu souboru: cat spojí několik souborů na std. výstup more/less výpis po stránkách head -13 FILE prvních 13 řádků tail -13 FILE posledních 13 řádků file FILE informace o typu obsahu souboru Úvod p.29/30

Speciální znaky ^C ukončení procesu na popředí ^Z pozastavení procesu na popředí (dále / ) ^S/^Q pozastavení/obnovení výpisu na obrazovku ^\ ^C a výpis core dump ^D konec vstupu ($^D ukončí shell) ^H smazání posledního znaku (backspace) ^W smazání posledního slova ^U smazání současného řádku Úvod p.30/30