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.
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.
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.
Operační systém je jako srdce a mozek počítače dohromady. Bez něj by:
Operační systém má spoustu práce. Zde jsou ty nejdůležitější úkoly, které plní:
OS se stará o to, aby všechny části počítače (procesor, paměť, disk, tiskárna) spolu správně komunikovaly. Je to jako dopravní policista, který řídí provoz.
Když klikneš na ikonu hry nebo Wordu, OS se postará o to, aby se program spustil a dostal potřebné zdroje (paměť, procesor).
OS ti pomáhá ukládat, mazat, kopírovat a přesouvat soubory a složky na pevném disku. Udržuje v nich pořádek.
OS ti ukazuje, co se děje na obrazovce, a přijímá tvé příkazy z klávesnice a myši. Je to jako tlumočník mezi tebou a počítačem.
OS přiděluje paměť RAM programům, které ji potřebují, a zase ji uvolňuje, když programy skončí.
Existuje mnoho různých operačních systémů. Některé jsou pro počítače, jiné pro mobily.
Je důležité si uvědomit rozdíl mezi operačním systémem a aplikací.
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.
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.
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.
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ém určuje, jak jsou data organizována na disku. Každý operační systém preferuje jiný:
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:
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í.
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.
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í.
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).
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
Jako IT specialista budeš spravovat operační systémy, automatizovat úlohy a řešit problémy. Tato sekce tě naučí praktické dovednosti.
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
# 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}%")
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)
#!/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
Jako IT specialista musíš rozumět tomu, jak fungují operační systémy. Tato kapitola se zaměřuje na teorii.
| 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 |
| 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í |
| 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 |