Xorg a správa hardwaru

S posledními verzemi operačního systému Linux se setkáváme se změnou architektury správy hardwaru. Vrstevnatý model operačního systému se rozrostl a rozdělení Kernel Space a User Space již dlouhou dobu je velkým zjednodušením. Důvodem inkorporace dalších vrstev do systému je snaha o jeho univerzálnost, snadnou škálovatelnost a udržitelný vývoj do budoucna. Tento trend je bezpochyby pochopitelný a správný pro většinu desktopových aplikací. 

HAL (Hardware Abstraction Layer)

HAL (Hardware Abstraction Layer) má za cíl (zjednodušeně řečeno) vytvořit vrstvu mezi fyzickém hardwarem a aplikacemi, které jej využívají. Představme si běžnou situaci: potřebujeme uložit dokument na USB flash paměť. Do této akce je zapojeno mnoho komponent. Od obsluby přerušení, správy paměti, přes ovladač USB řadiče, ovladač systému souborů pro namountování, automatické namountování pro použití zařízení apod. Všechny tyto operace se musí provést pro uživatele transparentně.

HAL reprezentuje určitý hardware komponent jako objekt (device object). Objekt je identifikován jedinečným identifikátorem a vlastnostmi daného zařízení (key-value pairs). Některé vlastnosti jsou získány z daného zařízení, některé jsou doplněny z informačních souborů .fdi (device information files) a některé se vztahují k aktuální konfiguraci daného zařízení.

HAL má své API a s aplikacemi komunikuje skrze D-BUS. D-BUS je IPC (Inter-Process Communication) framework, který poskytuje systémovou sběrnici, která umožňuje aplikacím vzájemnou komunikaci. D-BUS navíc umožňuje asynchronní notifikace. HAL totiž může pomocí D-BUS informovat aplikace  (tyto aplikace musí být "spojené" s touto sběrnicí a můžeme nazvat D-BUS peers) o jakýchkoliv změnách na hardwarové vrstvě (připojení nového zařízení, jeho odpojení, změna konfigurace, ...).

HAL a Xorg

Xorg ve výchozím nastavení distribuce Ubuntu spoléhá na HAL (Hardware Abstraction Layer). Vypnout HAL v souvislosti s Xorg je jednoduché. Do konfiguračního souboru Xorg (-etc-X11-xorg.conf) přidejte následující:

Section "ServerFlags"
    Option "AutoAddDevices" "False"
    Option "AllowEmptyInput" "False"
EndSection


czin.eu
Copyright © 2010 VDSOFT.ORG. All Rights Reserved.