← Zpět na obsah

Kapitola 23: Operační systém, jeho funkce a typy

Operační systém - most mezi aplikacemi a hardwarem
Operační systém - most mezi aplikacemi a hardwarem

1. Úvod: Dirigent počítače

Představ si, že počítač je jako velký orchestr. Má spoustu nástrojů (hardware – klávesnice, myš, monitor) a spoustu muzikantů (programy – Word, hry, internetový prohlížeč). Ale kdo to všechno řídí, aby hráli dohromady a nezpůsobili chaos? Kdo je ten dirigent? Je to operační systém! Bez něj by počítač byl jen hromada železa a plastu.

2. Co je to operační systém?

Operační systém je nejdůležitější program v počítači. Spustí se hned, jak počítač zapneš, a stará se o to, aby všechno fungovalo.

Definice: Operační systém (OS)

Operační systém (OS) je základní software, který řídí veškerý hardware a software v počítači. Umožňuje uživateli komunikovat s počítačem a spouštět programy.

Proč je operační systém důležitý?

Operační systém je jako srdce a mozek počítače dohromady. Bez něj by:

3. Hlavní funkce operačního systému

Operační systém má spoustu práce. Zde jsou ty nejdůležitější úkoly, které plní:

4. Typy operačních systémů

Existuje mnoho různých operačních systémů. Některé jsou pro počítače, jiné pro mobily.

5. Rozdíl mezi operačním systémem a aplikací

Je důležité si uvědomit rozdíl mezi operačním systémem a aplikací.

Životní cyklus procesu
Životní cyklus procesu
Příklad: Operační systém je jako motor auta. Bez něj auto nejede. Aplikace je jako rádio nebo klimatizace v autě. Auto jede i bez nich, ale s nimi je to lepší.

Člověk a digitální svět

Operační systém je náš hlavní partner při práci s počítačem. Je to prostředí, ve kterém se pohybujeme, a jeho nastavení ovlivňuje naši bezpečnost a soukromí. Učíme se ho ovládat, abychom mohli efektivně využívat všechny možnosti, které nám digitální svět nabízí. Zároveň si musíme být vědomi, že i operační systém je potřeba udržovat v dobré kondici (např. pomocí aktualizací), aby nás chránil před nebezpečím.

Otázky k zamyšlení

Úkoly pro praxi

  1. Identifikace OS: Zjisti, jaký operační systém má tvůj počítač a tvůj mobilní telefon. Napiš si jejich názvy a verze.
  2. Funkce OS v praxi: Vyber si jednu funkci operačního systému (např. správa souborů). Zkus si ji v počítači vyzkoušet – vytvoř novou složku, zkopíruj do ní soubor, přejmenuj ho.
  3. Porovnání OS: Zkus se zeptat kamaráda, který má jiný operační systém než ty (např. ty máš Android, on iOS, nebo ty Windows, on macOS). Zjistěte, v čem jsou si vaše systémy podobné a v čem se liší.

* Rozšíření pro pokročilé

Architektura operačního systému

Operační systém se skládá z několika vrstev. Nejdůležitější částí je jádro (kernel), které komunikuje přímo s hardware.

Typy jader

Monolitické jádro obsahuje všechny funkce v jednom velkém bloku kódu. Je rychlé, protože všechno běží v jednom prostoru, ale chyba v jakékoli části může zhroutit celý systém. Příklady: Linux, tradiční Unix.

Mikrojádro obsahuje jen minimum funkcí (správa paměti, komunikace mezi procesy). Ostatní služby (souborový systém, síť) běží jako oddělené programy. Je stabilnější – chyba v jedné službě nezhroutí jádro – ale pomalejší. Příklad: Minix.

Hybridní jádro kombinuje oba přístupy – má větší jádro než mikrojádro, ale modulární strukturu. Příklady: Windows NT, macOS.

Procesy a vlákna

Když spustíš program, operační systém vytvoří proces – to je běžící instance programu s vlastní pamětí a prostředky. Každý proces má jedinečné ID (PID).

Vlákno (thread) je jednotka vykonávání uvnitř procesu. Jeden proces může mít více vláken, která sdílejí paměť a prostředky. Například: ve webovém prohlížeči jedno vlákno stahuje stránku, druhé vykresluje obrázky, třetí přehrává video.

Multitasking je schopnost systému "běžet" více programů současně. Ve skutečnosti procesor rychle přepíná mezi procesy (tisíckrát za sekundu), což vytváří iluzi současného běhu. Scheduler rozhoduje, který proces dostane čas procesoru.

Souborové systémy

Souborový systém určuje, jak jsou data organizována na disku. Každý operační systém preferuje jiný:

Souborové systémy - organizace dat na disku
Souborové systémy - organizace dat na disku

* Úkoly pro pokročilé

  1. Správce úloh: Otevři Správce úloh (Ctrl+Shift+Esc) ve Windows. Prozkoumej záložky: Procesy (co běží), Výkon (využití CPU, RAM), Spouštění (co se spouští při startu). Zapiš 5 procesů, které spotřebovávají nejvíce CPU.
  2. Excel – Porovnání OS: Vytvoř tabulku srovnávající Windows, macOS, Linux, Android, iOS. Sloupce: Výrobce, Typ zařízení, Souborový systém, Cena, Výhody, Nevýhody.
  3. Příkazový řádek: Vyzkoušej základní příkazy: dir (výpis složky), cd (změna adresáře), mkdir (vytvoření složky), type (zobrazení souboru). Napiš, co každý dělá.
  4. Word – Dokumentace instalace: Napiš návod "Jak nainstalovat Windows 11" nebo "Jak nainstalovat Linux". Zahrň: požadavky, stažení, vytvoření instalačního média, kroky instalace.

** Rozšíření pro maturitní obory

Podrobně: Správa paměti

Operační systém musí efektivně spravovat paměť, protože všechny běžící programy ji sdílejí. Pojďme se podívat na klíčové koncepty:

Virtuální paměť

Co se stane, když spustíš více programů, než se vejde do RAM? Operační systém použije část disku jako "náhradní paměť" – tomu se říká virtuální paměť (ve Windows "stránkovací soubor", v Linuxu "swap"). Méně používané části programů se přesunou na disk, aby uvolnily místo v RAM. Nevýhoda: disk je mnohem pomalejší než RAM, takže počítač se zpomalí.

Stránkování (Paging)

Paměť je rozdělena na malé bloky zvané stránky (obvykle 4 KB). Operační systém sleduje, které stránky jsou v RAM a které na disku. Když program potřebuje stránku, která není v RAM, dojde k "page fault" – systém musí stránku načíst z disku.

Ochrana paměti

Každý proces má svůj vlastní prostor v paměti a nemůže číst ani zapisovat do paměti jiných procesů. To zajišťuje stabilitu – chyba v jednom programu nezhroutí ostatní.

Plánování procesů (Scheduling)

Procesor může v daném okamžiku vykonávat jen jeden proces (na jednom jádře). Scheduler je část OS, která rozhoduje, který proces dostane čas procesoru. Existuje několik strategií:

Round Robin je nejběžnější algoritmus. Každý proces dostane malé "časové kvantum" (např. 10 milisekund). Po jeho uplynutí je proces přerušen a do CPU jde další. Tak všechny procesy dostávají čas "spravedlivě".

Priority Scheduling přiděluje CPU procesům podle priority. Systémové procesy mají vyšší prioritu než uživatelské. Ve Správci úloh můžeš měnit prioritu procesů (pravý klik → Nastavit prioritu).

Příkazová řádka – pokročilé

Profesionální správa systému se často provádí přes příkazovou řádku. Zde jsou užitečné příkazy:

# PowerShell - top 10 procesů podle CPU
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10

# PowerShell - běžící služby
Get-Service | Where-Object {$_.Status -eq "Running"}

# Linux Bash
ps aux --sort=-%cpu | head -10  # top procesy
df -h                            # využití disku
top                              # živý monitor
        

** Úkoly pro maturitní obory

  1. PowerShell skript: Napiš skript, který vypíše 10 procesů s nejvyšším využitím CPU a uloží je do souboru.
  2. Virtuální stroj: Nainstaluj VirtualBox. Vytvoř VM s Ubuntu Linux. Napiš zprávu o zkušenostech s instalací.
  3. Excel – Monitoring: Každou hodinu zapiš využití CPU a RAM. Po dni vytvoř graf a analyzuj vzorce.
  4. Word – Scheduling: Napiš dokument srovnávající scheduling algoritmy (3-4 strany). Popis, výhody, nevýhody, příklady.
  5. PowerPoint – OS internals: Vytvoř prezentaci "Jak funguje OS uvnitř" (12-15 snímků). Jádro, procesy, paměť, souborový systém.
  6. Canva – Cheat sheet: Vytvoř tahák příkazů pro PowerShell nebo Linux Bash (A4 pro tisk).

*** Rozšíření pro IT obory

Jako IT specialista budeš spravovat operační systémy, automatizovat úlohy a řešit problémy. Tato sekce tě naučí praktické dovednosti.

Práce s procesy v Pythonu

import subprocess
import os

# Spuštění externího příkazu
vysledek = subprocess.run(['ping', '-n', '4', 'google.com'],
                          capture_output=True, text=True)
print(vysledek.stdout)

# Získání seznamu procesů (Windows)
vysledek = subprocess.run(['tasklist'], capture_output=True, text=True)
print(vysledek.stdout)

# Práce s proměnnými prostředí
print(os.environ.get('PATH'))
print(os.environ.get('USERNAME'))

# Spuštění procesu na pozadí
proces = subprocess.Popen(['notepad.exe'])
print(f"Spuštěn proces s PID: {proces.pid}")
# proces.terminate()  # Ukončení procesu
        

Monitorování systému (psutil)

# pip install psutil
import psutil

# CPU
print(f"CPU využití: {psutil.cpu_percent()}%")
print(f"CPU jádra: {psutil.cpu_count()}")

# RAM
ram = psutil.virtual_memory()
print(f"RAM celkem: {ram.total / (1024**3):.2f} GB")
print(f"RAM využito: {ram.percent}%")

# Disk
disk = psutil.disk_usage('/')
print(f"Disk celkem: {disk.total / (1024**3):.2f} GB")
print(f"Disk volno: {disk.free / (1024**3):.2f} GB")

# Procesy
print("\nTop 5 procesů podle RAM:")
procesy = []
for proc in psutil.process_iter(['pid', 'name', 'memory_percent']):
    procesy.append(proc.info)

procesy.sort(key=lambda x: x['memory_percent'] or 0, reverse=True)
for proc in procesy[:5]:
    print(f"  {proc['name']}: {proc['memory_percent']:.1f}%")
        

Automatizace pomocí skriptů

import os
import shutil
from datetime import datetime

def zaloha_slozky(zdrojova, cilova):
    """Vytvoří zálohu složky s časovým razítkem."""
    cas = datetime.now().strftime('%Y%m%d_%H%M%S')
    nazev_zalohy = f"backup_{cas}"
    cesta_zalohy = os.path.join(cilova, nazev_zalohy)

    shutil.copytree(zdrojova, cesta_zalohy)
    print(f"Záloha vytvořena: {cesta_zalohy}")
    return cesta_zalohy

def smaz_stare_soubory(slozka, dni=30):
    """Smaže soubory starší než zadaný počet dní."""
    import time
    ted = time.time()
    starsi_nez = ted - (dni * 24 * 60 * 60)

    for soubor in os.listdir(slozka):
        cesta = os.path.join(slozka, soubor)
        if os.path.isfile(cesta):
            if os.path.getmtime(cesta) < starsi_nez:
                os.remove(cesta)
                print(f"Smazáno: {soubor}")

def hledej_velke_soubory(slozka, min_mb=100):
    """Najde soubory větší než zadaná velikost."""
    velke = []
    for root, dirs, files in os.walk(slozka):
        for soubor in files:
            cesta = os.path.join(root, soubor)
            try:
                velikost = os.path.getsize(cesta) / (1024 * 1024)
                if velikost > min_mb:
                    velke.append((cesta, velikost))
            except:
                pass
    return sorted(velke, key=lambda x: x[1], reverse=True)
        

Bash skripty (Linux)

#!/bin/bash
# Skript pro monitoring systému

echo "=== Systémový report ==="
echo "Datum: $(date)"
echo ""

echo "=== CPU ==="
top -bn1 | head -5

echo ""
echo "=== RAM ==="
free -h

echo ""
echo "=== Disk ==="
df -h

echo ""
echo "=== Top 5 procesů ==="
ps aux --sort=-%mem | head -6
        

*** Praktické úkoly pro IT obory

  1. Systémový monitor: Napiš Python skript, který každých 5 sekund zapisuje CPU a RAM využití do CSV souboru. Po 10 minutách vytvoř graf.
  2. Automatická záloha: Napiš skript, který automaticky zálohuje zadanou složku a maže zálohy starší než 7 dní.
  3. Čištění disku: Napiš nástroj, který najde 10 největších souborů v zadané složce a nabídne jejich smazání.
  4. Service monitor: Napiš skript, který kontroluje, zda běží určitá služba, a pokud ne, restartuje ji a pošle upozornění.

*** Rozšíření pro IT obory: Operační systémy do hloubky

Jako IT specialista musíš rozumět tomu, jak fungují operační systémy. Tato kapitola se zaměřuje na teorii.

Funkce operačního systému

Porovnání operačních systémů

Vlastnost Windows Linux macOS
Jádro NT Kernel Linux Kernel XNU (Darwin)
Licence Proprietární Open Source (GPL) Proprietární
Souborový systém NTFS, ReFS ext4, Btrfs, XFS APFS, HFS+
Použití Desktop, gaming, enterprise Servery, IoT, development Kreativa, development

Linux distribuce

Distribuce Základ Použití
Ubuntu Debian Desktop, servery, začátečníci
CentOS/Rocky RHEL Enterprise servery
Arch Linux Nezávislý Pokročilí uživatelé
Kali Linux Debian Penetrační testování

Procesy a vlákna

Souborové systémy

Souborový systém Max. velikost souboru Funkce
FAT32 4 GB Kompatibilita (USB flash)
NTFS 16 EB Oprávnění, šifrování, komprese
ext4 16 TB Journaling, Linux standard
exFAT 16 EB Kompatibilita Win/Mac/Linux

*** Úkoly pro IT obory (bez programování)

  1. Virtualizace: Nainstaluj VirtualBox. Vytvoř virtuální stroj s Ubuntu. Prozkoumej základní příkazy Linuxu.
  2. Správce úloh: Analyzuj procesy ve Správci úloh (Windows) nebo top/htop (Linux). Identifikuj 5 nejvíce zatěžujících procesů.
  3. Porovnání: Napiš dokument srovnávající Windows, Linux a macOS pro: server, desktop, development, gaming.
  4. Souborový systém: Zformátuj USB flash disk různými souborovými systémy. Otestuj kompatibilitu s různými OS.
← Zpět na obsah