Linux E X P R E S

Facebook

KIO slaves - vylepšený souborový systém

kde.png

Prostředí KDE nabízí velice silnou technologii pro jednotný přístup k souborům. Jmenuje se KIO a tento článek vás s ní seznámí.


Předmluva k VFS

Linux dnes běžně umí obsluhovat několik desítek souborových systémů. A co víc, jejich obsluha je z hlediska aplikací plně transparentní. Aplikace zavolá funkci fopen() pro otevření souboru, ta zavolá příslušnou rutinu z glibc, které pošle jádru systémové volání open(). Jádro za pomocí mechanismu zvaného VFS (virtual file system) přeloží obecné volání na takové, které přísluší danému souborovému systému. Výhoda tohoto řešení je, že jakmile se do jádra přidá podpora nového souborového systému, mohou jej využívat všechny stávající programy.

Glibc je systémová knihovna jazyka C. Je naprosto jedno, zda program běží v Pythonu nebo Perlu, nakonec se jeho volání převedou právě na volání standardní knihovny jazyka C, která tvoří páteř každého unixového systému. V linuxových systémech se nejčastěji používá glibc (GNU libc), ale existují i jiné implementace jako diet libc, avr libc, …

Systémové volání - sada funkcí komunikující přímo s jádrem operačního systému. Norma POSIX, kterou implementují unixové systémy, stanovuje, jak mají vypadat (odborně jakou mají hlavičku). Anglicky se systémové volání označuje jako syscall. Rozhraní mezi jádrem a běžnými aplikacemi je potom glibc.

Obrázek:  100.jpg

Přístup na disk pomocí VFS

Ovšem z historických důvodů není možné stejně jednoduše přistupovat ke vzdáleným souborům, třeba na FTP serveru. Řešení používané běžnými prohlížeči, jakými jsou Firefox nebo Opera, je jednoduše do aplikace naprogramovat všechny možné protokoly, které by mohl používat. Takže pomocí Firefoxu můžete snadno prohlížet soubory s protokolem HTTP, FTP nebo i pseudoprotokolem file, který označuje soubory na disku. Pokud chcete takto přistoupit k aplikacím na serveru, který nabízí pouze SSH přístup, máte smůlu. Dokud tuto podporu programátor do aplikace nepřidá, nemůžete ji použít.

KDE není jediné, které poskytuje transparentní přístup k souborům. Prostředí GNOME používá vlastní gnome-vfs, správce Midnight Commander obsahuje také vlastní implementaci. V současné době neexistuje v Linuxu unifikovaný způsob, jak možnosti VFS přidat ke všem aplikacím.

KIO slaves

Programátoři KDE přišli s jednoduchým řešením a vytvořili API zvané KIO (KDE Input Output) – označované jako KIO slaves, jež slouží pro přístup k souborům a adresářům, ale nezávisle na protokolu, který k nim přistupuje. Takže všechny aplikace KDE, které podporují KIO, mohou přistupovat stejně dobře k souborům na disku jako ke vzdáleným dokumentům na FTP nebo souborům uloženým v archivu. Jakmile se do KDE přidá podpora nového protokolu, všechny stávající aplikace jej umí zcela automaticky použít.

Jsou uvedeny v nápovědě prostředí KDE pod položkou Pomocné protokoly KDE. Jejich seznam je opravdu úctyhodný (v mojí instalaci KDE 3.5.5 v Debian Sid zahrnuje 40 položek), od archivačních protokolů BZIP2, AR, TAR nebo ZIP, přes síťové fish (SSH), SMB, telnet, WebDAV, FTP, HTTP nebo FTPS. Navíc obsahuje specialitky typu protokol MAC pro přístup k diskům operačního systému Mac OS či man nebo info pro prohlížení manuálových (respektive info) stránek, nebo audiocd pro prohlížení obsahu zvukových CD.

Jejich používání je jednoduché. Používají zápis ve formátu – protokol:/cesta, takže například adresa tar:/usr/share/gettext/archive.tar.gz vám zobrazí obsah archivu tak, jako by to byl standardní adresář. Obrázky z Konqueroru, dialogu pro otevření souboru, nebo Krusaderu dokazují, že je tato podpora skutečně univerzální a nezávislá na aplikaci.

Obrázek:  1.jpg

Zobrazení archivu v Konqueroru

Obrázek:  2.jpg

Zobrazení v dialogu pro otevření souboru

Obrázek:  3.jpg

Zobrazení téhož archivu v Krusaderu

Filesystem in User space je API pro ovladače souborových systémů, které běží v uživatelském prostoru. Klasické ovladače jako třeba pro XFS běží v jaderném prostoru, takže jejich chyba může poškodit celé jádro a jejich zatuhnutí zablokuje celý systém. Z toho důvodu se podpora SSH nebo HTTP do jádra nikdy nedostane. FUSE tyto ovladače implementuje v uživatelském prostoru, takže jejich chování neohrožuje stabilitu systému. Může se jednat o cestu, jak elegantně implementovat VFS do všech aplikací.

Zajímavé protokoly

Protože je těchto protokolů velké množství, není zde prostor pro popis všech. Navíc některé jako třeba LDAP nebývají běžně dostupné. Takové HTTP nebo FTP jsou navíc implementovány prakticky v každé aplikaci (i když ne tak elegantně jako v KDE). Ale mnoho z nich má velice zajímavé schopnosti.

audiocd je určen pro zobrazení obsahu zvukového CD. Ripování je tak v KDE velice jednoduché, stačí si prostě otevřít (nebo nechat si automaticky otevřít) oblíbeného správce souborů, do adresy zadat audiocd:/ a pokud je vybrán adresář Ogg Vorbis, při kopírování se obsah automaticky překóduje do tohoto formátu.

Obrázek:  4.jpg

Zobrazení obsahu zvukového CD

fish používající protokol SSH vám umožňuje pomocí adresy ve formátu fish://uživatel@server přistupovat ke vzdáleným souborům pomocí bezpečné šifrované cesty. V kombinaci s programem ssh-agent tvoří skutečně jednoduše použitelný, přitom velice bezpečný způsob, jak soubory posílat přes síť. Hledáte alternativu programu WinScp? Nemusíte, libovolná KDE aplikace umí komunikovat pomocí SSH (takže vám stačí Krusader nebo Konqueror).

Obrázek:  5.jpg

Přístup k souborům přes protokol fish

help je protokol pro formátované zobrazení nápovědy v KDE. Ostatně prohlížeč nápovědy není nic jiného než upravený webový prohlížeč (používající stejné vykreslovací jádro jako Konqueror), který stránky zobrazuje právě pomocí tohoto protokolu.

Obrázek:  8.jpg

Zobrazení nápovědy pomocí protokolu help

imap je protokol pro přístup k elektronické poště. Chcete známé uvést v úžas tím, že si e-maily čtete pomocí správce souborů? Jednoduše napište imap:/uživatel@server a můžete procházet poštovní schránkou. K dispozici je i zabezpečená varianta imaps či pop3 a pops3 pro protokol pop3.

Obrázek:  6.jpg

Přístup k e-mailům pomocí protokolu imap

info a man jsou veskrze užitečné protokoly, protože slouží ke čtení dokumentace. Pravděpodobně nic, čím budete ohromovat okolí, ale pokud raději pracujete v grafickém prostředí a chcete v něm i číst dokumentaci, můžete použít tyto protokoly. Navíc, pokud chcete zobrazit manuálovou stránku, stačí napsat #příkaz. Místo man:/ls tedy napsat #ls.

Obrázek:  7.jpg

Ne všechny protokoly jsou ovšem užitečné ve všech aplikacích

smb je velice užitečný protokol v případě, že se potřebujete připojit ke stanicím s operačním systémem Windows. Použití je velice jednoduché:

smb://[pracovní_skupina/]stanice

Nedokumentované kioslaves

Ne všechny protokoly si našly cestu do dokumentace a většina z nich je na úvodní stránce Konqueroru. Protokol applications zobrazuje aplikace dostupné v menu prostředí a settings zobrazuje moduly ovládacího centra KDE.

Další protokoly jsou sdruženy pod protokol system (ovšem je zcela jedno, zda je adresa system:/remote, nebo remote:/). Protokol trash zobrazuje obsah odpadkového koše, home zase domácí adresář, users zase domácí adresáře všech uživatelů. Nejzajímavější jsou

remote, který má stejný účel jako Okolní počítače v systémech Windows. Slouží jako shromaždiště odkazů na často navštěvované vzdálené servery. Opět se jedná o univerzální protokol a přidávání nových položek se realizuje přes průvodce.

Obrázek:  9.jpg

Univerzální protokol remote

media zobrazující zařízení připojená k počítači jako pevné disky, CD/DVD, USB flash disky a podobně.

Obrázek:  10.jpg

Zařízení připojená k počítači

Diskuze (2) Nahoru