Sysfs
Author
Albert FloresSysfs je v informatice virtuální systém souborů, který je zahrnut v jádře Linuxu od verze 2.6. Sysfs exportuje informace o zařízeních a ovladačích z jádra systému do uživatelského prostoru pomocí adresářového stromu umístěného v adresáři /sys a je používán i pro konfiguraci systému. Sysfs je podobný mechanismu sysctl, který je obsažen v BSD systémech, ale je implementován jako systém souborů namísto odděleného mechanismu.
Historie
Během vývojové řady 2.5 byl v jádře Linuxu představen model ovladačů, který opravoval několik následujících nedostatků verze 2.4:
* neexistence jednotné metody reprezentace vztahů typu ovladač-zařízení * neexistence žádného obecně použitelného mechanismu hotplug, tedy připojení či odpojení zařízení za běhu systému * procesní souborový systém procfs byl přeplněn spoustou informací nesouvisejících s procesy
Sysfs je navržen pro export informací, které jsou zahrnuty ve stromu zařízení, které by nadělaly nepořádek v procfs. Kód napsal Patrick Mochel. +more Maneesh Sonip později napsal záplatu podpůrného zásobníku sysfs, která redukovala využití paměti na rozsáhlejších systémech.
Systém sysfs je vnitřní systém souborů umístěný v paměti, který byl původně založen na ramfs. Ramfs byl napsán zhruba v době kdy byl Linux verze 2. +more4. 0 stabilizován. To, o jak elegantně vyřešený úkol šlo, se ukázalo tím, jak jednoduché bylo napsat jednoduchý systém souborů za použití tehdy nové VFS vrstvy. Byl velmi prostý a díky použití VFS poskytoval dobrý základ, ze kterého se odvozovalo mnoho dalších vnitřních systémů souborů umístěných v paměti.
sysfs byl původně nazýván ddfs a byl vytvořen pro odstranění nedostatků nového modelu ovladačů, který byl v té době napsán. Předtím bylo ladění chyb prováděno za použití procfs, který se používal k vygenerování stromu zařízení. +more S důraznými pobídkami Linuse Torvaldse byl převeden na nový systém souborů založený na ramfs, nový model ovladačů byl začleněn do linuxového jádra ve verzi kolem 2. 5. 1 a změnil název na driverfs, aby se název stal o něco více popisný.
Během dalšího roku vývoje verze 2. 5 se infrastrukturální kapacita nového modelu ovladačů stala společně s driverfs, využitelná i pro další subsystémy. +more Byly vyvinuty kobjects za účelem poskytování centrální mechanismu pro správu objektů a driverfs byl opětovně přejmenován na sysfs, aby reprezentoval jeho nezávislost na systému.
Technický přehled
Pro každý objekt přidaný do stromu modelů ovladačů (ovladače, zařízení obsahující zařízení třídy) jsou v sysfs vytvářeny adresáře. Vztah rodič-potomek je zobrazen pomocí podadresářů v /sys/devices/ (odráží fyzické rozvržení). +more Podadresář /sys/bus/ obsahuje symbolické odkazy, která zobrazují, jak jednotlivá zařízení náleží do jednotlivých sběrnic. Adresář /sys/class/ zobrazuje zařízení seskupené podle tříd, jako je například síť, zatímco /sys/block/ obsahuje bloková zařízení.
For device drivers and devices, attributes may be created. These are simple files; the rule is that they should only contain a single value and/or allow a single value to be set (unlike some files in procfs, which need to be heavily parsed). +more These files show up in the subdirectory of the device driver respective to the device. Using attribute groups, a subdirectory filled with attributes may also be created.
Vybrané sběrnice
PCI
Exportuje informace o PCI zařízeních.
USB
Obsahuje jak USB zařízení, tak i USB hostitele.
S/390 sběrnice
Protože architektura S/390 obsahuje zařízení, která nejsou nikde jinde obsažena, byly vytvořeny speciální sběrnice: * css: Obsahuje podkanály (v současné době jediný ovladač poskytovaný pro I/O podkanály). * ccw: Obsahuje kanál připojených zařízení (ovládaný pomocí CCW). +more * ccwgroup: Uměle vytvořené zařízení vytvořené uživatelem a sestávající z ccw zařízení, nahrazuje některé z funkcí chandev verze 2. 4 * iucv: Uměle vytvořená zařízení, jako například netiucv, která využívají IUCV prostředí VM.
Sysfs a uživatelský prostor
Sysfs je používán několika nástroji, které spolu s jádrem Linuxu zpracovávají informace o hardware a jejich ovladačích, jako například udev nebo HAL. Skripty byly napsány tak, aby mohly přistupovat k informacím, které byly předtím získány za pomoci procfs. +more Některé další skripty konfigurují ovladače zařízení a zařízení jako takové prostřednictvím jejich vlastností.
Související články
Souborový systém * configfs * kobject * sysctl - alternativní způsob exportu konfigurací používaných systémy BSD
Externí odkazy
[url=http://www. abclinuxu. +morecz/clanky/system/sysfs-brana-do-jadra]Sysfs - brána do jadra na abclinuxu. cz[/url] * [url=http://lwn. net/Articles/31185/]Driver model overview from the LWN porting to 2. 6 series[/url] * [url=http://lwn. net/Articles/54651/]kobjects and sysfs from the LWN porting to 2. 6 series[/url] * [url=http://wiki. debian. org/ramfs]Ramfs[/url] * [url=https://web. archive. org/web/20151208165134/https://www. kernel. org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel. pdf]The sysfs Filesystem, OLS'05[/url] .