Hlavní navigace

Wayland možná časem nahradí letitý X Server

Adam Štrauch

S několika výjimkami se dá říct, že X Server je dnes součástí každého linuxového desktopu a inovace uživatelského prostředí šly často ruku v ruce se změnami právě v něm. Po 25 letech ale nastal čas protokol X opustit a jít zase o dům dál. V tom domě bydlí Wayland a i když je mnohem prostší, určitě ho oceníte.

Autorem projektu Wayland je Kristian Høgsberg, který na něm začal pracovat v roce 2008, během práce ve firmě Red Hat. Až do minulého roku se o Wayland moc nemluvilo, ale pak se stal středem pozornosti na všech linuxových portálech včetně Roota. Pod názvem Wayland nic smysluplného nehledejte, autor si ho zvolil při cestě do města Wayland ve státe Massachusetts v USA. I když není zdaleka kompletní, některé distribuce už přemýšlí o jeho nasazení.

První bude pravděpodobně MeeGo, do kterého je Wayland tlačeno firmou Intel. V tomto ohledu má MeeGo proti ostatním navrch, protože je určeno pro mobilní zařízení od telefonů pro tablety. Ty jsou často operačnímu systému přizpůsobeny, takže Intel ví, na co má optimalizovat. Na druhé místo z těch výraznějších hráčů se bude tlačit Ubuntu s Fedorou. Jelikož se firmě Canonical podařilo docela úspěšně zaklínit prostředí Unity mezi uživatele, je opuštění klasického GNOME a vyhození X Serveru dalším logickým krokem. MeeGo by mohlo být bez X Serveru možná už na konci tohoto roku. Podobně na tom je třeba i Android, který nikdy X Server nepotřeboval a vše vykresluje do framebufferu.

Unity je řešené jako plugin do Compizu a není náhodou, že Canonical najal vývojáře Compizu Sama Spilsburyho, který se zasloužil o oddělení závislostí na X Serveru do pluginu a tím uvolnil cestu pro Wayland. Na tomto místě by Unity mohl pomoci výkonový „boost“, který Wayland přinese. Druhou variantou je Unity 2D, které je postavené na knihovnou Qt. Canonical sice zvolil cestu dvou implementací toho samého, ale v tomto případě to v adopci Waylandu distribucí Ubuntu bránit nebude, Qt momentálně Wayland podporuje, a jen pro doplnění, GTK+ je na tom podobně.

Další distribucí je Fedora, ta je v zařazování novinek známá, příkladem může být třeba použití Btrfs jako výchozího souborového systému ve Fedoře s číslem 16, která vyjde v říjnu tohoto roku. Podle Adama Jacksona to s Waylandem nebude jiné.

Zatímco nejpoužívanější knihovny podporu Wayland mají, s prostředími to bude ještě horší. KDE ve verzi 4.7 přidalo podporu pro OpenGL ES, které je zatím podmínkou. O Waylandu se otevřeně hovoří a je dokonce k dispozici i základní podpora. GNOME je na tom naopak, protože o GNOME-Shellu jsem ve spojitosti s Waylandem nenašel ani čárku.

Co je na X špatného

Jistě se ptáte, co je na X Server a X protokolu tak špatného, že je potřeba ho nahradit. Na to velmi dobře odpoví Wayland FAQ, ze kterého jsem si dovolil kousek přeložit:

„Problém s X je … je to X. Když děláte X server, je tu ohromné množství funkcionality, které musíte podporovat, abyste mohli komunikovat přes X protokol, i když to nikdo nepoužije. Například core fonts je původní model pro práci s fonty, který se staral o vykreslování textu na obrazovku mnoho let protokolu X verze 11. To zahrnuje *code tables, glyph rasterization, kešování, XLFD (opravdu, XLFDs!) a také kompletní renderovací API, které vám dovolí kreslit tečkované čáry, polygony, oblouky a mnoho jiných věcí stylu 80. let. V mnoha částech jsme byli schopni udržovat X Server moderní přidáním rozšíření jako XRandR, XRender, COMPOSITE a několik dalších, méně užitečných, ale nikdy nebudeme schopni se zbavit renderovacího API a mnoho dalších komplikací, které se na moderním desktopu téměř nepoužívají. S Wayland můžeme odsunout X Server a mnoho dalších starých technologií na pozici vrstvy, která se postará o kompatibilitu, namísto jádra moderního desktopu. Možná to chvilku potrvá, ale nikdy se tam nedostaneme, pokud to nebudeme plánovat.

X protokol byl poprvé představen v roce 1984 jako několika týdenní snaha vylepšit W window system. V roce 1984 to byl určitě dobrý nápad a jeho autor určitě netušil, že se bude používat ještě dalších 30 let. X verze 11, kterou používáme do dnes, byla představena v roce 1987 a od té doby už se jen přidávaly nové a nové vlastnosti, se kterými Wayland ani nepočítá.

Co Wayland přinese

Z dnešního pohledu se může zdát X Server jako obrovský moloch, který určitě nekopíruje UNIXovskou filozofii psát jeden program pro jeden účel a psát ho dobře. Dnes už bylo mnoho věcí přesunuto do jádra nebo do různých knihoven a toho samozřejmě Wayland naplno využívá. Díky tomu bude moct být mnohem menší a rychlejší. Možná ještě víc než uživatelé budou Wayland vítat vývojáři programů, kteří museli s X Serverem do teď nějak spolupracovat.

Teprve když si porovnáme, jak obě řešení fungují, pochopíme, proč je Wayland krokem vpřed. K tomu nám pomůže popis architektury a dva obrázky na domácích stránkách.

Začneme X Serverem. Když uživatel provede nějaký vstup, jádro si toho všimne a pomocí evdev ovladače dá vědět X Serveru. Na něm pak je, aby rozhodl, kterému připojenému klientovi (aplikaci) se odešle informace o tomto vstupu. Na scénu poprvé vstupuje kompozitor, který se stará o různé efektní úpravy. To může být třeba vylepšení okrajů nebo jenom otočení. Vzhledem k tomu, že je kompozitor oddělen od X Serveru, tak ten občas neodhadne, jakému oknu vstup pošle, což samozřejmě vede k podivnému chování.

Když klient dostane informaci o vstupu, rozhodne se, co udělat a případně změní něco v obsahu okna, třeba zvýrazní tlačítko, na které se kliklo. To vyvolá požadavek na vykreslení odeslaný zpět na X Server. Když je požadavek přijat, X Server přepošle požadavek ovladači, který programu umožní vykreslit co potřebuje. X Server také vypočítá, která oblast se změní a pošle to kompozitoru. Ten provede svoji transformaci a upraví danou část okna podle sebe. Kompozitor vyvolá požadavek na vykreslení a pošle také svůj back buffer. X Server pak překopíruje back buffer do front bufferu nebo prohodí jejich ukazatele.

Wayland má mnohem střídmější návrh. Když uživatel dá nějaký vstup, ten projde do Wayland serveru s kompozitorem. Jelikož jsou správa oken a kompozitor spojení, lze přesně určit, kterému klientovi se má vstup odeslat. Souřadnice události jsou klientovi přepočítány na jeho oblast. Transformační efekty pro okna musí být vytvořené tak, aby šly souřadnice přepočítat zpátky. Když klient dostane informace o události o vstupu, vykreslí případné změny a pošle Wayland serveru informaci o tom, co se změnilo. Na rozdíl od X Serveru, zde se provádí vykreslování na straně klienta, tedy aplikace.

Samotná komunikace klienta se serverem byla u Waylandu dost osekaná a zatím neexistuje podpora pro klienty běžící na jiném stroji, i když se na ní pracuje. V 80. letech byly terminály připojené k hlavnímu serveru ještě běžné, ale v dnešní době je podporou této vlastnosti pro X Server spíše brzdou, než že by to přinášelo něco pozitivního. Navíc X protokol nebyl přes síť nikdy nějak rychlý.

Závěr

Ještě to pár měsíců nebo možná let potrvá, než bude Wayland připravený na nasazení a musí se před tím vyřešit spousta problémů včetně uzavřených ovladačů. Wayland je závislý třeba na kernel-mode-settingu, což nepodporuje žádný z uzavřených ovladačů a například NVIDIA se nechala minulý rok slyšet, že podporu pro Wayland zatím neplánuje. Zamíchat kartami by mohlo nasazení Waylandu v Ubuntu nebo v jiných významných distribucích.

Pokud si chcete Wayland zkusit, potřebujete grafickou kartu NVIDIA, AMD nebo Intel a k ní otevřené ovladače. Vše, co je potřeba, najdete v sekci building na domácích stránkách projektu Wayland.

Našli jste v článku chybu?

23. 7. 2011 10:13

mm (neregistrovaný)

Naprosto klidně budu používat i technologii třeba z roku 1898 nebo starší, pokud bude funkční. Koneckonců se to často děje...
Používáš třeba splachovací záchod? Víš jak je to staré? Je nutné to měnit anebo jen občas vylepšit?
Musíte zkrátka někteří ještě dospět...



22. 7. 2011 15:19

raketoplány podle designu ze 70. let taky pořád ještě lítají (teda až do včerejška).. a tcp/ip nebo email jsou ještě starší a jak rádi je všichni používají :-)

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

Přehledná titulka, průvodci, responzivita

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

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

DigiZone.cz: „Black Friday 2016“: závěrečné zhodnocení

„Black Friday 2016“: závěrečné zhodnocení

Lupa.cz: Kdo pochopí vtip, může jít do ČT vyvíjet weby

Kdo pochopí vtip, může jít do ČT vyvíjet weby

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

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

Co všechno ovlivňuje ženskou plodnost?

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

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

EET: Totálně nezvládli metodologii projektu

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

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

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Vitalia.cz: Taky věříte na pravidlo 5 sekund?

Taky věříte na pravidlo 5 sekund?

Vitalia.cz: Když přijdete o oko, přijdete na rok o řidičák

Když přijdete o oko, přijdete na rok o řidičák

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

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

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

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum