====== Ovladač (Hardware Driver) ====== **Ovladač** je softwarová vrstva, která abstrahuje vlastnosti hardwaru. Díky ovladačům nemusí programátoři aplikací psát kód pro každý model tiskárny nebo grafické karty na trhu. Stačí, když aplikace pošle standardní požadavek operačnímu systému, a ten jej pomocí ovladače předá zařízení. ---- ====== Jak ovladač funguje? ====== Ovladač pracuje jako prostředník v hierarchii systému: 1. **Aplikace:** Uživatel klikne na "Uložit soubor". 2. **Operační systém:** Přijme požadavek a identifikuje, na který disk se má ukládat. 3. **Ovladač:** Přeloží příkaz na konkrétní sekvenci elektrických signálů a adres v paměti, které ovládají řadič disku. 4. **Hardware:** Fyzicky zapíše data na médium. ---- ====== Typy ovladačů ====== ===== 1. Kernel-mode ovladače ===== Běží jako součást [[linux_kernel|jádra]] operačního systému. Mají nejvyšší oprávnění a přímý přístup k hardwaru. Pokud v tomto ovladači dojde k chybě, obvykle dojde k pádu celého systému (tzv. "Modrá smrt" na Windows nebo "Kernel Panic" na Linuxu). ===== 2. User-mode ovladače ===== Běží v omezeném prostoru pro uživatelské aplikace. Používají se pro zařízení, u kterých není kritická rychlost a je preferována stabilita (např. některé USB periferie). Pokud tento ovladač selže, systém zůstane běžet. ---- ====== Ovladače v různých systémech ====== * **Windows:** Ovladače jsou často instalovány jako soubory s příponou ''.sys'' nebo ''.inf''. Microsoft používá model WDM (Windows Driver Model). * **Linux:** Většina ovladačů je integrována přímo v [[linux_kernel|jádře]] jako moduly (LKM). To je důvod, proč většina hardwaru na Linuxu funguje "hned po zapojení" bez instalace CD. * **macOS:** Používá systém "Extensions" (.kext) pro rozšíření funkčnosti jádra o podporu hardwaru. ---- ====== Proč jsou ovladače zdrojem problémů? ====== Ovladače jsou jedním z nejčastějších důvodů nestability počítačů: * **Zastaralost:** Nová verze operačního systému může vyžadovat novou architekturu ovladače. * **Chyby v kódu:** Protože ovladače často píší výrobci hardwaru (nikoliv autoři OS), nemusí být kód vždy dokonale optimalizován pro daný systém. * **Bezpečnost:** Špatně napsaný ovladač může sloužit jako brána pro útoky (např. [[rootkit|rootkity]]), protože má přístup k celému systému. ---- ====== Speciální kategorie: Grafické ovladače ====== Grafické karty (NVIDIA, AMD) mají nejkomplexnější ovladače. Neobsahují jen instrukce pro hardware, ale často i celé kompilátory pro [[shader|shadery]] a rozhraní pro herní knihovny jako DirectX nebo Vulkan. ---- //Související pojmy: Linux Kernel, Hardware, CPU, RAM, Rootkit, Shader, BIOS/UEFI.//