Hlavní navigace

Linuxový desktop - desktopová prostředí

Stanislav Brabec 24. 2. 2003

V dnešním, posledním dílu se podíváme, jak vypadá v základních rysech vnitřní struktura desktopového prostředí a co se v počítači děje, když v tomto prostředí pracujeme.

Z minulého dílu bychom mohli nabýt dojmu, že grafické nadstavby (GUI) již nabízejí vše, co potřebujeme k práci. Přesto však vznikla další vrstva nadstavby – desktopové prostředí (desktop environment). Dnes si ukážeme, co přináší.

Integrace aplikací

Proč vůbec vznikla taková potřeba? Protože většina uživatelů počítače používá na svém počítači celou škálu aplikací, nikoliv jen jednu. V takové situaci se hodí, pokud aplikace spolu navzájem „spolupracují“ – tedy že je možné provádět užitečné přenosy dat pouhým klikáním či přetažením myší.

V tomto směru základní standardy mnoho nedefinují. Prvním krokem k integraci byly funkce Drag and Drop (táhni a pusť) a schránka (clipboard).

Oba tyto způsoby přetažení dat vyžadují spolupráci obou zúčastněných aplikací – ani jedna z nich sama není schopna rozhodnout, co přesně bude přeneseno. Jako příklad mohu uvést webový prohlížeč. Vezmeme-li obrázek a přetáhneme jej do grafického editoru, očekáváme, že se nám otevře jako grafika. Pokud ten samý obrázek přetáhneme do konzolového okna, očekáváme, že se objeví URL adresa tohoto obrázku. A konečně při přetažení na plochu by měla vzniknout buď záložka, nebo kopie obrázku.

I zde se používá osvědčené schema událostí – pro desktopovou aplikaci není přetažení ikony pouhou událostí typu „puštění levého tlačítka myši“, ale jde o mnohem pokročilejší událost – „puštění ikony“. Při vyřizování takové události aplikace naváže komunikaci s druhou aplikací a na základě obsluhovaných datových typů se dohodnou na tom nejvhodnějším.

Podobně probíhá i přenos přes schránku. Proto také o „obsah schránky“ přijdete, pokud ukončíte aplikaci, ve které jste jej zkopírovali. Žádný obsah schránky totiž neexistuje – jde jen o odkaz na aplikaci, kterou je třeba požádat o data.

Správce plochy a souborů

Nedílnou součástí každého moderního desktopového prostředí jsou správce plochy a správce souborů (dnes většinou jedna a tatáž aplikace). Jak název napovídá, starají se o zobrazení ikon souborů a oken adresářů, o spouštění aplikací při kliknutí na ikonu a o podkladovou plochu.

Abstraktní vstupně/výstupní vrstva – virtuální souborový systém

Další vlastností, kterou v desktopovém prostředí očekáváme, je nezávislost funkce aplikace na umístění souboru. Aplikaci používající abstraktní vstupně/výstupní vrstvu již nemusí zajímat, zda je otevíraný soubor na místním disku, kdesi na webu, nebo třeba zazipovaný uvnitř archivu. K otevření souboru jí postačí jediné – znalost adresy URI (Universal Resource Identifier, zobecnění URL – Universal Resource Locator).

Na tuto vrstvu jsme skrytě narazili již ve výše zmíněném příkladu – přetažení obrázku z webového prohlížeče do grafického editoru. Pokud by virtuální souborový systém (VFS) neexistoval, aplikace by nejspíš ohlásila, že soubor se jménemhttp://adresa neexistuje.

Abstraktní vstupně/výstupní vrstva se v GNOME nazývá gnome-vfs, v KDE pak KIO.

Asociace aplikací (application binding)

Desktopový systém musí mít přehled aplikací nainstalovaných v systému, aby věděl, čím lze který soubor otevřít a editovat. V každém desktopovém prostředí tedy existuje registr aplikací.

Rozpoznávání typu souboru se děje v zásadě třemi způsoby – podle přípony (nejběžnější model pro lokální soubory), podle obsahu (aplikace nahlíží do souboru a podle tzv. magického souboru {magic file} se pokouší odhadnout typ dat). Třetím, nejobecnějším systémem jsou tzv. MIME typy – jde o dvojice typ dat/formát souboru,centrálně evidované pro každý formát souboru. MIME typy jsou povinné pro každý soubor, který putuje po Internetu v e-mailu nebo na www. Jistě znáte typy jako text/plain nebo image/jpeg. Pokud k MIME typům přiřadíme ještě přípony a magický soubor, máme nejkomplexnější systém na rozpoznávání datových typů.

Asociace aplikací pak ke každému MIME typu přiřadí aplikaci (nebo více aplikací), kterými lze daný typ souboru otevřít nebo editovat.

Konzolové aplikace používají podobný registr v souboru /etc/mailcap.

Systémové menu

Fakt, že se nějaká aplikace nachází na disku, ještě neznamená, že ji tam uživatel najde. Od toho obsahuje desktopové prostředí menu aplikaci. Další úlohou desktopového prostředí je tedy definovat způsob, jakým se aplikace při instalaci dostane do menu.

Panely, síťová komunikace, rozhraní CORBA

V moderních desktopových prostředích najdete panely. Jde o zvláštní okna, která tvoří kontejner pro umístění dalších aplikací. Tyto aplikace při startu neotevírají žádné okno, ale pouze tzv. aplet – je to obdoba okna, která je však přizpůsobena tak, aby se dala vložit do panelu.

Panely znamenají novou dimenzi ve spolupráci aplikací – dřívější aplikace mezi sebou musely komunikovat pouze při předávání schránky nebo puštění ikony, ale v panelu musí reagovat na požadavky o změnu velikosti, posun, aktivaci… –tedy je nutné, aby si dvě aplikace mezi sebou předávaly standardní paletu událostí a odpovědí na ně. K tomu byl vyvinut nový systém komunikace – síťově transparentní rozhraní CORBA (Common Object Request Broker Architecture). CORBA umožňuje komunikaci aplikací nezávisle na jejich umístění a programovacím jazyku. Historicky navazuje na podobný standard RPC (Remote Procedure Call). Ke komunikaci používá nám již známé sokety (u místních aplikací GNOME je najdete v adresáři /tmp/orbit-uživatel, u KDE v /tmp/ksocket-uživatel).

Vnořování oken aplikaci se stalo oblíbenou technologií a dnes se používá v mnoha různých situacích – u již zmíněných panelů, u vypouštěných ikon (backdrop icons – zde však může jít i o běžná okna s obecným tvarem), zjednodušené rozhraní pro stavové a oznamovací informace (notification area) – tzv. doky (dock). Pro aplikace, které vnoření neumožňují, bylo vymyšleno pohlcení okna (window spawning – viz např. Netscape Plugger).

Ovšem dokonalosti dosáhl tento koncept u znovupoužitel­ných komponent.

Znovupoužitelné komponenty

Znovupoužitelné komponenty (reusable components) jsou objekty, které nabízejí CORBA rozhraní pro vnoření komponenty do jiné aplikace. Myšlenka znovupoužitelných komponent však nabízí více, než pouhé hostování okna. Komponenta může nabídnout také ovladače do lišty, položky v menu a další potřebné prvky. Hostující aplikace je pak použije dle svého uvážení.

Možnosti znovupoužitelných komponent jsou obrovské – již není třeba psát do každého programu ovladadač pro každý datový typ. Komponenta může být libovolně složitá, a tak jediná komponenta může tvořit základ webového prohlížeče, ale jinde může být použita jako pouhý prohlížeč nápovědy. Navíc může ve své neviditelné podobě sloužit k vytváření náhledů html souborů ve správci plochy. A pomocí stejné komponenty můžete během pouhých deseti minut naprogramovat svůj vlastní webový prohlížeč.

Vzájemné provázání může jít tak daleko, že se ze správce plochy stane plnohodnotný webový prohlížeč, jak to vidíme na příkladu prostředí KDE.

V KDE se znovupoužitelné komponenty skrývají pod názvem KParts a v GNOME pod názvem bonobo. Znovupoužitelné komponenty znají i uživatelé MS-Windows pod názvem OLE.

 

Doufám, že vám tento seriál vnesl alespoň jistou představu při odhalování vnitřní struktury linuxového desktopu.

Našli jste v článku chybu?

30. 1. 2008 11:05

firer (neregistrovaný)
...k tomuto stačí SLAX - miniCD, lze nahrát do RAMky a pak fičí fest. f.

1. 3. 2003 0:26

Jakub (neregistrovaný)

Uz vim. Dik. Bylo to zajimavy.
Akorat si system nejak nerozumi s moji grafikou, takze obraz byl "skakaci" a po par minutach jsem to musel vypnout. Ale Linux se mi libi. Jdu si koupit nove PC a prsknu ho tam. // Nevite nekdo nejaky serverovy Linux (neco jako W2K Server) - nejlepe zdarma? // A proc to jako nikdo nepouziva? Mne se to libilo. Naslo to vsechna zarizeni a bezel mi i internet - bez restartu HUBu nebo podobnych pitomin. Problem byl jen v te graficke karte (nebo monitoru). Dik. Budu m…

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Vitalia.cz: Z tohoto konopí dělají léčivé masti

Z tohoto konopí dělají léčivé masti

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Podnikatel.cz: Babiš: E-shopy z EET možná vyjmeme

Babiš: E-shopy z EET možná vyjmeme

Vitalia.cz: Dáte si jahody s plísní?

Dáte si jahody s plísní?

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

DigiZone.cz: ČRa DVB-T2 ověřeno: Hisense a Sencor

ČRa DVB-T2 ověřeno: Hisense a Sencor

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu