UNIX 9. Jádro systému © Milan Keršlágerhttp://www.pslib.cz/ke/slajdy Obsah: ● jádro monolitické, mikrojádro.

Slides:



Advertisements
Podobné prezentace
Obecně o operačních systémech
Advertisements

PEVNÝ DISK POČÍTAČE.
Software start počítače a operační systém.
SOFTWARE dálkové studium PODNIKÁNÍ 2. listopad 2006.
SOFTWARE operační systémy
ZÁKLADNÍ DESKA.
Operační systém Adam Greguš, 4.A.
Maturitní okruh č. 7. Odstínit aplikace od specifik HWSpráva procesůSpráva pamětiSpráva souborůSpráva vstupů a výstupůSpráva sítěSystém ochrany a bezpečnostiSystém.
Štěpán Lískovec, 4.A.  =základní programové vybavení počítače (tj.software)  hlavní úkol:  A, zajistit uživateli možnost ovládat PC  B, vytvořit pro.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Operační systémy.
Operační systémy.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Lokální počítačové sítě Novell Netware Ing. Zdeněk Votruba Úvod do síťového operačního systému Novell Netware.
Operační systém (OS) ICT Informační a komunikační technologie.
Druhy počítačů Osobní počítače Pracovní stanice Superpočítače
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
Obchodní akademie, Ostrava-Poruba, příspěvková organizace
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Operační systémy Mgr. Ludmila Faltýnková EU OPVK ICT2-4/Inf12 Základní škola Olomouc, Heyrovského 33 Určeno pouze pro výuku Žádná část ani celek nesmí.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
1. ELEKTRICKÝ SIGNÁL VSTUPUJE DO uPROCESORU 2.VYMAŽE DATA KTERÁ ZŮSTALA V REGISTRECH VNITŘNÍ PAMĚTI 3. NASTAVÍ REGISTR CPU – ČÍTAČ INSTRUKCÍ NA F000 ADRESA.
Operační systémy. Operační systémy Operační systém je základním programovým vybavením nezbytně nutným pro provoz počítače. Poznámka: Operační systém.
Operační systémy Název a adresa školy
Pevný disk (HDD - Hard Disk Drive)
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Start Linuxu Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
OPERAČNÍ SYSTÉMY.
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
Základy operačních systémů
Operační systémy Start OS © Milan Keršláger Obsah: start počítače.
Počítačová bezpečnost 1. Stavba a start PC © Milan Keršláger
Operační systémy cvičení 1 © Milan Keršláger Obsah: náplň předmětu,
Diskový oddíl. Diskové oddíly (partition) slouží k rozdělení fyzického disku na logické oddíly, se kterými je možné nezávisle manipulovat jeden disk se.
Počítačová bezpečnost Cvičení 1: Zabezpečení startu PC © Milan Keršláger
NÁZEV ŠKOLY:Základní škola a mateřská škola Bohdalov ČÍSLO PROJEKTU: CZ.1.07/1.4.00/ ŠABLONA:III/2 TÉMATICKÁ OBLAST:Informační a komunikační technologie.
OPERAČNÍ SYSTÉMY učební text pro žáky SŠ.
Technologie počítačů 1. Stavba počítače © Milan Keršláger
ÚVOD DO PŘEDMĚTU INFORMAČNÍ TECHNOLOGIE. OPERAČNÍ SYSTÉM Je v informatice základní programové vybavení počítače (tj. software), které je zavedeno do paměti.
Unix a Internet 9. Samba © Milan Keršlágerhttp:// Obsah: ●
Operační systémy Stavba OS © Milan Keršláger Obsah: funkce OS,
UNIX Jádro systému © Milan Keršláger
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Počítačová bezpečnost Cvičení 1: Start počítače IBM PC © Milan Keršláger
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
UNIX 4. Systém souborů a jádro © Milan Keršlágerhttp:// Obsah: ● systém souborů,
Základní desky Marek Kougl 1.L.
Číslo projektu CZ.1.07/1.5.00/ Název školy Gymnázium Česká a Olympijských nadějí, České Budějovice, Česká 64 Název materiálu VY_32_INOVACE_IVT_1_KOT_07_BIOS.
Paměti PC HDD, CD/DVD, USB Flash RAM a ROM Vnější paměť Disková paměť
PC základní jednotka.
SOFTWARE Operační systémy.
Vypracoval / Roman Málek
Programování mikropočítačů Platforma Arduino
SW počítače - operační systém
Služby Windows Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
UNIX 9. Jádro systému © Milan Keršláger
Operační Systém Operační systém je v informatice základní programové vybavení počítače (tj. software), které je zavedeno do paměti počítače při jeho.
OPERAČNÍ SYSTÉMY Číslo projektu CZ.1.07/1.5.00/ Název školy
Technologie počítačů 1. Stavba počítače
Vlastnosti souborů Jaroslava Černá.
Operační systémy - úvod
Název školy: ZŠ Bor, okres Tachov, příspěvková organizace
Operační systémy 9. Spolupráce mezi procesy
UNIX 9. Jádro systému © Milan Keršláger
Spuštění OS Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Operační systémy.
Souborové systémy 1 Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Transkript prezentace:

UNIX 9. Jádro systému © Milan Keršlágerhttp:// Obsah: ● jádro monolitické, mikrojádro a hybridní ● RTOS, kernel space a user space ● syscall, unixový čas ● BIOS, setup, start počítače (z diskety, disku), ● start jádra, ovladače, kořenový systém souborů ● init, runlevel, démon

Jádro operačního systému ● základní součást operačního systému ● doplňují ho pomocné nástroje ● úkoly jádra a operačního systému 1) umožnit uživateli ovládat počítače ● zajistit spuštění programu, vstupy, výstupy, správu poč... 2) vytvořit abstraktní vrstvu pro programy 3) spravovat prostředky počítače ( přidělovat je procesům ) ● unixová jádra ● programům poskytují systémová volání (syscall) ● Linux: modulární monolitické jádro (viz dále)

Typy jader OS ● monolitické jádro – monolithic kernel ● jeden celek řeší celý problém ● varianta: modulární jádro ● mikrojádro – microkernel ● idea jako u strukturovaného programování ● ještě menší: exokernel, nanokernel, picokernel ● hybridní jádro – hybrid kernel ● něco mezi monolitickým a mikrojádrem ● snaha o využití „toho lepšího“ z obou ● RTOS – speciální případ

Monolitické jádro ● jádro je jeden celek ● původní model (např. Unix) ● v souvislém úseku paměti (kernel-space) ● vše na stejné (absolutní) úrovni oprávnění ● chyba (např. v ovladači) ohrožuje celé jádro ● umožňuje efektivní programátorské triky ● do téže paměti zasahují různé subsystémy ● vývoj náročný na znalost funkce celého jádra ● dnes Linux, FreeBSD a další ● části jako samostatné moduly → modulární jádro

Mikrojádro ● jádro minimalizováno (jen nejnutnější části) ● hezké rozvržení, vlastní písečky, snadné pochopit ● vše ostatní jako běžné procesy – tzv. servery ● souborový subsystém, síťový subsystém a další ● komunikace přes API (zasílání zpráv) ● proces (server) lze po pádu restartovat (ale fuj) ● výkonnostní problémy (někdy nemusí vadit) ● vyvolání služby jádra může znamenat nutnost čekat na přepnutí kontextu mezi jádrem a procesem (i více procesy) ● samostatné procesy nemohou manipulovat se společnými daty (např. cache) ● GNU Hurd + mikrojádro GNU Mach – stále není finální ● MINIX, Symbian (je navíc RTOS)

Hybridní jádro ● kombinuje výhody monolitu a mikrojádra ● základní jádro je větší ● včetně částí citlivých na výkonnost ● blíží se z druhé strany modulárnímu monolitu ● Microsoft Windows NT ● NT 3.1, 3.5, 3.51, 2000, XP, 2003, Vista, 2008, 7,... ● Microsoft Windows CE ● poslední verze odklon od mikrojádra k hybridnímu ● Windows Mobile, Pocket PC, Windows Phone

Operační systém reálného času ● RTOS – Real Time Operating System ● definovaná časová ultimáta ● krátká doba reakce na událost ● rychlé přepínání úloh ● úloha má garantovaný běh v jednotce času – programátor ví, že za daný čas dostane alespoň garantovaný strojový čas procesoru – může si rozmyslet, co je nebytně nutné spočítat a co může počkat ● typicky mobilní telefony – nestihne-li připravit data, je výpadek přenosu (hlasu) ● Symbian, Windows CE, RTLinux,...

Kernel space a user space ● kernel space (prostor jádra ) ● jádro v privilegovaném stavu, plně ovládá počítač ● user space (prostor procesů) ● procesy v neprivilegovaném stavu – při snaze o ovládnutí počítače → vyvolání jádra – každý proces svůj adresní prostor ● volání služeb jádra (syscall) – proces žádá jádro o provedení nějaké služby – služba je vykonána v privilegovaném režimu ● user space → kernel space → user space

Syscall, system call ● systémové volání jádra OS ● v unixových systémech základní kámen – vytváří API, které používají procesy ● čtení z disku, přidělení paměti, ovládání hardware,... – zajišťuje kompatibilitu ● jednou zavedený syscall je podporován „do nekonečna“ ● velký odpor proti bezhlavému zavádění nových syscallů ● problémy při snaze o rozšíření staršího volání – posuzuje oprávnění a provede privilegovanou činnost ● výjimka → proces s právy roota může všechno ● mikrojádra syscall nemají – používají zasílání zpráv skrze API – vyvolává lavinu změn kontextu mezi servery

Unixový čas ● slouží pro interní evidenci času ● počátek :00:00 UTC – též T00:00:00Z ISO 8601 ● každý den přesně sekund – zajišťuje souvislý čas – snadný převod na lokální čas podle databáze ● problém přestupných sekund – např :59:60 – POSIX.1 v roce 2001 zamítl jejich zahrnutí → velké potíže při nasazení NTP (Network Time Protocol) → též velká komplexita interního řešení přestupné sekundy

Časové zóny ● systém používá UTC (univerzální čas, tj. GMT) ● poslední změna souboru, události v logu,... ● uživateli je přepočítán čas podle akt. zóny – v systému je uložena databáze změn proti UTC ● v adresáři /usr/share/zoneinfo ● obsahuje záznamy pro časové zóny i přestupné roky – např. gregoriánská reforma v září 1752 odebrala 10 dní – ne každá země má letní čas a podobně – neřeší přestupné sekundy – globální nastavení systému v /etc/localtime – uživatel může změnit pomocí proměnné prostředí TZ ● dědí se z rodičovského procesu na potomky ● každý uživatel může mít svoje nastavení (GMT, MET,...)

Start počítače – PC

Start počítače ● dva základní kroky ● inicializace hardware – pomocí firmware (BIOS) ● aktivace software – typicky zavedení jádra operačního systému – využívá informace od firmware (ACPI) ● jednotlivosti specifické pro různé typy počítačů ● IBM PC: vysoká variabilita startu ● jednoúčelová zařízení obvykle jen jednu metodu

Zapnutí PC ● reset (signál propojující všechny obvody) ● po zapnutí nebo zmáčknutí tlačítka ● CPU do 16bitového režimu (jako Intel 8086) ● interpretace kódu od adresy 0xFFFF0 ● zde je umístěn BIOS ● vlastní BIOS i doplňující karty – grafická karta, řadiče pro disky (SATA, SCSI) atd. – BIOS je najde a spustí jejich inicializační kód – mohou rozšířit schopnosti BIOSu ● start systému z netradičního zařízeni (SCSI řadiče, síťová karta) ● BIOS plně kontroluje první fázi startu PC

BIOS ● Basic Input-Output systém ● v paměti ROM (dnes Flash) ● na základní desce od jejího výrobce – vyrábí několik firem, modulární – závislý na HW (přímo jej ovládá) ● poskytuje jednoduché API – služby BIOSu ● čti sektor z disku, vytiskni znak, pošli na port,... ● plně na BIOS spoléhal pouze DOS ● je 16bitový z původního IBM PC XT (1983) ● 32bitová rozšíření BIOSu se neujala

Činnost BIOSu při startu ● cílem BIOSu je aktivace operačního systému ● detekce a inicializace hardware ● uvedení HW do výchozího stavu ● lze (částečně) přeskočit u teplého startu ● ACPI (standard, vytvořil Intel 1996) – běžné v počítačích PC po roce 2000 – informace o konfiguraci do tabulek v paměti – tabulky často chybně vytvořené ● tvůrce BIOSu potřebuje funkční start jen pro Windows ● POST testy (Power On Self Test) ● slouží k základnímu prověření funkčnosti hardware

SETUP ● aplikace pro volitelná nastavení BIOSu ● při startu stiskem DEL, F2 a podobně ● je to součást BIOSu nebo samostatná aplikace ● nastavení uloženo v paměti CMOS – zálohováno baterií (spolu s RTC) ● např. pořadí zařízení pro zavedení OS – dříve pevně stanoveno → boot viry z disket ● dnes snaha o automatizaci, minimalizace ● někdy schválně mnoho voleb – nastavení chipsetu (frekvence, napájení, režimy...) – vhodné pro experty, pro přetaktování,...

Zavedení OS ● IBM PC: BIOS ● disketa – nejjednodušší, jako emulace u ostatních ● pevný disk – jako disketa, ale navíc MBR ● CD/DVD – emulace diskety nebo přímo ● BootROM – start pomocí síťové karty (bez disku) ● USB mass storage (flash disk, externí HDD apod.) ● Apple: EFI (Intel) ● náhrada BIOSu ● binární „ovladače“ HW ● problém možnosti tajit ovládání a nastavování HW

IBM PC: start z diskety ● BIOS umí disketovou mechaniku plně ovládat ● HW FDD mechaniky je ovládán jednotně ● potřebujeme načtení požadovaného sektoru ● nalezení a inicializace disketové mechaniky ● BIOS zavede boot sektor do RAM ● první sektor na disketě (CHS = 0,0,0) → 512 bajtů ● využívá služby BIOSu → HW nezávislý kód ● skočí se na začátek ● obsahuje kód zavaděče jádra OS ● specifický pro různé OS (DOS, Windows NT, Linux)

IBM PC: start z disku – I. ● přidává další vrstvu – MBR + oddíly ● dnes typický postup ● BIOS musí umět z pevného disku číst ● jinak se nenačte zavaděč (taky ho potřebuje) ● IDE/PATA – standardní ovládání HW ● problémy s výkonem → několik standardů ● dopředně nekompatibilní (nový disk do starého PC) ● SCSI – rozšíření BIOSu na řadiči ● SATA – rozšíření BIOSu na řadiči nebo AHCI

Oddíly (partitions) ● oddíl je logické rozčlenění pevného disku ● protože pevný disk je velký nebo více FS, OS ● dělení bez podpory v HW → SW musí respektovat ● popis rozdělení uložen do tabulky uvnitř MBR ● Master Boot Record (CHS = 0,0,0) → 512 bajtů ● obsahuje zavaděč a tabulku dělení disku na oddíly ● zpětná kompatibilita ● oddíl má strukturu jako disketa ● MBR může být nezávislý na OS → DOS MBR

IBM PC: start z disku – II. ● BIOS načte do paměti MBR ● tj. prvních 512 bajtů na HDD ● pokud je neplatný, zahlásí BIOS chybu – MBR not found ● skočí se na začátek MBR (zavaděč + tabulka) ● vybere se aktivní oddíl ● k němu se přistupuje dále jako k disketě ● MBR zavede z aktivního oddílu boot sektor ● není-li platný, zahlásí MBR chybu (OS not found) ● dále se pokračuje jako při startu z diskety

Start unixového systému ● jádro převezme kontrolu ● přepne procesor do 32bitového režimu (+ring0) ● aktivuje si příslušné ovladače pro hardware – využije informace od BIOSu (ACPI) a PCI ID – každý ovladač má inicializační část ● připojí kořenový systém souborů (root filesystem) – určuje správce počítače (např. při instalaci) ● z něj spustí první proces → init – může to být i jiný program ( /bin/bash ) ● používá se vyjímečně (např. po havárii při opravě systému)

Ovladač ● ovladač je typicky součást jádra OS ● slouží k obsluze vstupně-výstupního zařízení – typicky je možné ovladač vyměnit (aktualizovat) – též pro podporu sítě, souborových systémů atd. ● jádro používá jen ovladače, které potřebuje – podle aktuálního stavu (připojeného hardware) – hot-plug zařízení → USB flash disk ● připojuje/odpojuje se za běhu ● v Linuxu jako moduly – lze je nahrát nebo vyhodit z jádra za běhu systému – jádro může být menší → v paměti jen to, co je potřeba

Kořenový systém souborů ● kořenový systém souborů – „ / “ ● připojuje se jako první po startu jádra OS – jádro samo o sobě žádný další FS nepřipojuje – vzniká tak strom adresářů s jediným kořenem ● musí obsahovat vše pro zahájení startu počítače – program init, startovací skripty, konfigurační soubory – skripty připojí další FS → /etc/fstab ● další FS se připojuje do již existujícího adresáře – vznikne stromová struktura různých FS – VFS musí vždy vědět, na jakém FS se nachází

Proces init ● v unixových OS proces číslo 1 ● je spuštěn jako první – je (pra)rodičem všech ostatních procesů ● je též univerzální adopce „osiřelých“ procesů – výjimkou je v Linuxu tzv. initrd ● spouští se procesy před init, ale init má stejně číslo 1 ● spouští startovací skripty – vybere sadu skriptů podle runlevel ● řídí se podle souboru /etc/inittab – spustí démony – připraví prostředí pro uživatele (GUI, přihlašovací dialog...)

Runlevel ● různé varianty spuštění systému ● runlevel je stav procesu init, u Fedory např: 1 – singeuser (správa systému) 3 – multiuser (běžný provoz, bez GUI) 5 – jako 3 ale s GUI 6 – reboot (restart systému) ● mezi runlevely se dá přecházet – příkaz (jen root): telinit 3 – při startu lze jádru říct číslo runlevelu ● jinak podle /etc/inittab ● předání parametru jádru při startu lze zabránit (heslo pro zavaděč) – při přechodech mezi runlevely se spouští určité skripty ● démoni (resp. startovací skripty) se spouští jen v určitém runlevelu

chkconfig ● nastavování služeb spouštěných při startu ● rozlišuje jednotlivé runlevely ● chkconfig –-list ● chkconfig služba on|off ● v SYSV systémech (Fedora, RHEL, CentOS...) – nastavuje symbolické linky v /etc/rcX.d/ – X představuje číslo runlevelu – ručně: – /etc/init.d/služba start|stop|restart|status

Démon ● démon je proces běžící na pozadí ● bez kontaktu s uživatelem – uzavřeny standardní proudy (stdin, stdout, stderr) – používá se „double fork“ → rodičem se stane init ● zprávy do logu → syslog → /var/log/... – správce počítače by měl sledovat (používá je i jádro) ● zajišťuje nějakou službu (ve Windows: services) – terminálové přihlášení ze sítě: sshd – sdílení souborů (NFS, Samba, …), WWW server,... ● spouštění a zastavování démonů pomocí skriptů – např.: /etc/init.d/httpd restart – skripty používá při startu proces init

Syslog ● logovací démon ● někdy jsou dva (pro běžné procesy a pro jádro) ● démon zapisuje do souborů – Fedora používá: /var/log/messages, /var/log/secure, /var/log/maillog ● program volá knihovní funkci – knihovní funkce syslog() ● předává se typ, úroveň, zpráva, čas doplněn démonem ● zpráva přes jádro logovacímu démonu, ten ji zapíše na disk – log se může odesílat přes síť na jiný počítač ● útočník pak nemůže logy změnit – logy by měl správce neustále sledovat ● program logwatch (přehledný denní „výcuc“)

Double fork shell fork() wait() httpd exit() fork() Démon (htttpd je WWW server) provede dvojitý for, tj. vytvoří potomka, kterému rodič skončí a je adoptován procesem init. Tím zanikne vazba na shell (a terminál). ztráta rodiče → jádro nastaví: ppid()=1 init wait() exec(„httpd“)