Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

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

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.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

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ý.

davame_internetu_obsah
       

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.

Adam Štrauch

Adam Štrauch

Adam Štrauch je redaktorem serveru Root.cz a svobodný software nasazuje jak na desktopech tak i na routerech a serverech. Ve svém volném čase se stará o komunitní síť, ve které je již přes 100 členů.

Školení: Hackujeme operační systém Android

 

Školení vám ukáže, jak se dostat k Linuxu (tzv. "rootování"), který se pod hezkou tváří Androida skrývá a jak ho naplno využít. Pomůže vám to při záloze dat, zvětšování prostoru pro aplikace nebo sdílení připojení k internetu a pokud chcete z telefonu dostat opravdové maximum, ukážeme vám, jak v něm vyměnit kompletní systém za lepší.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 1,82

Přehled názorů

prenositelnost
pepazdepa 22. 7. 2011 00:26
Nový
├ 
Re: prenositelnost
SuD 22. 7. 2011 04:13
Nový
│
├ 
Re: prenositelnost
Adam Štrauch 22. 7. 2011 06:18
Nový
│
└ 
Re: prenositelnost
Vít Profant 22. 7. 2011 09:08
Nový
│
 
├ 
Re: prenositelnost
hawran diskuse 22. 7. 2011 09:26
Nový
│
 
└ 
Re: prenositelnost
JH 22. 7. 2011 15:42
Nový
├ 
Re: prenositelnost
lennart 22. 7. 2011 08:37
Nový
└ 
Re: prenositelnost
Mepho 22. 7. 2011 16:39
Nový
 
└ 
Re: prenositelnost
lok 23. 7. 2011 09:12
Nový
primo framebuffer
zdfgdsfdsdf 22. 7. 2011 06:19
Nový
└ 
Re: primo framebuffer
titanik 22. 7. 2011 08:47
Nový
 
└ 
Re: primo framebuffer
fasdfasdf 22. 7. 2011 09:39
Nový
 
 
└ 
Re: primo framebuffer
Luke 22. 7. 2011 19:16
Nový
opět rozvrtávání funkčních věcí
mm 22. 7. 2011 07:15
Nový
├ 
Re: opět rozvrtávání funkčních věcí
bhawk 22. 7. 2011 08:01
Nový
└ 
Re: opět rozvrtávání funkčních věcí
Zůstat v roce 1984 22. 7. 2011 11:20
Nový
 
├ 
Re: opět rozvrtávání funkčních věcí
kralovsky ony 22. 7. 2011 13:41
Nový
 
├ 
Re: opět rozvrtávání funkčních věcí
alfi . 22. 7. 2011 15:19
Nový
 
│
└ 
Re: opět rozvrtávání funkčních věcí
Boo 23. 7. 2011 09:11
Nový
 
│
 
├ 
Re: opět rozvrtávání funkčních věcí
Jirka 23. 7. 2011 11:13
Nový
 
│
 
└ 
Re: opět rozvrtávání funkčních věcí
Franta Kučera 24. 7. 2011 15:41
Nový
 
├ 
Re: opět rozvrtávání funkčních věcí
mm 23. 7. 2011 10:13
Nový
 
│
└ 
Re: opět rozvrtávání funkčních věcí
mw 17. 8. 2011 13:45
Nový
 
├ 
Re: opět rozvrtávání funkčních věcí
piCZa 24. 7. 2011 21:31
Nový
 
│
└ 
Re: opět rozvrtávání funkčních věcí
Fen 27. 7. 2011 14:13
Nový
 
└ 
Re: opět rozvrtávání funkčních věcí
Skoll 21. 10. 2011 09:11
Nový
Co WM
Tomas Z. 22. 7. 2011 08:50
Nový
V zasade
rcs-34 22. 7. 2011 08:54
Nový
└ 
Re: V zasade
Mordae 22. 7. 2011 11:38
Nový
 
├ 
Re: V zasade
Mordae 22. 7. 2011 11:42
Nový
 
│
└ 
Re: V zasade
wetrtrwetewr 22. 7. 2011 14:08
Nový
 
└ 
Re: V zasade
Franta Kučera 24. 7. 2011 15:45
Nový
Budoucnost
Rovano 22. 7. 2011 09:21
Nový
└ 
Re: Budoucnost
hawran diskuse 22. 7. 2011 09:33
Nový
 
└ 
Re: Budoucnost
Poborskiii 22. 7. 2011 12:13
Nový
 
 
└ 
Re: Budoucnost
koudy 22. 7. 2011 14:47
Nový
 
 
 
└ 
Re: Budoucnost
Marvn 22. 7. 2011 18:18
Nový
 
 
 
 
└ 
Re: Budoucnost
Leonardo 24. 7. 2011 11:42
Nový
 
 
 
 
 
└ 
Re: Budoucnost
vend 16. 8. 2011 21:12
Nový
opravdu moloch?
alfi . 22. 7. 2011 09:55
Nový
└ 
Re: opravdu moloch?
j. 22. 7. 2011 10:53
Nový
 
└ 
Re: opravdu moloch?
Ja 22. 7. 2011 13:34
Nový
Citim se clankem nerespektovan
Clock 22. 7. 2011 17:55
Nový
└ 
Re: Citim se clankem nerespektovan
nhx 22. 7. 2011 20:05
Nový
nahradíme všechno staré tím novým
Kolaloka 22. 7. 2011 18:04
Nový
└ 
Re: nahradíme všechno staré tím novým
Sten 22. 7. 2011 20:27
Nový
 
├ 
Re: nahradíme všechno staré tím novým
Vláďa J 22. 7. 2011 22:40
Nový
 
└ 
Re: nahradíme všechno staré tím novým
rer 23. 7. 2011 14:53
Nový
síťová transparentnost
xurfa 22. 7. 2011 21:37
Nový
└ 
Re: síťová transparentnost
Sten 23. 7. 2011 12:21
Nový
 
└ 
Re: síťová transparentnost
Mordae 23. 7. 2011 13:10
Nový
 
 
└ 
Re: síťová transparentnost
Sten 23. 7. 2011 13:15
Nový
 
 
 
└ 
Re: síťová transparentnost
Jeery12 23. 7. 2011 22:38
Nový
 
 
 
 
└ 
Re: síťová transparentnost
Sten 26. 7. 2011 14:20
Nový
vapourware
Peter S. 22. 7. 2011 23:29
Nový
└ 
Re: vapourware
Rovano 23. 7. 2011 13:16
Nový
 
└ 
Re: vapourware
Rovano 23. 7. 2011 13:18
Nový
 
 
└ 
Re: vapourware
xurfa 24. 7. 2011 21:50
Nový
 
 
 
└ 
Re: vapourware
Rovano 24. 7. 2011 22:19
Nový
proc najednou mnenit X
nele 22. 7. 2011 23:57
Nový
├ 
Re: proc najednou mnenit X
Lael Ophir 23. 7. 2011 02:38
Nový
│
├ 
Re: proc najednou mnenit X
Sten 23. 7. 2011 12:19
Nový
│
│
└ 
Re: proc najednou mnenit X
Hujer 24. 7. 2011 15:28
Nový
│
├ 
Re: proc najednou mnenit X
Paulos 25. 7. 2011 14:03
Nový
│
│
└ 
Re: proc najednou mnenit X
Mirek_ 27. 7. 2011 08:08
Nový
│
└ 
Re: proc najednou mnenit X
Kaacz 13. 8. 2011 03:10
Nový
├ 
Re: proc najednou mnenit X
Phokz 23. 7. 2011 09:31
Nový
│
└ 
Re: proc najednou mnenit X
Lael Ophir 23. 7. 2011 16:04
Nový
│
 
├ 
Re: proc najednou mnenit X
VNC 23. 7. 2011 19:32
Nový
│
 
└ 
Re: proc najednou mnenit X
ebik 24. 7. 2011 12:20
Nový
└ 
Re: proc najednou mnenit X
Miroslav Prýmek 27. 7. 2011 11:42
Nový
co tak vektorova fotka
fwehfiow 23. 7. 2011 22:18
Nový
└ 
Re: co tak vektorova fotka
vervwevw 23. 7. 2011 22:26
Nový
 
└ 
Re: co tak vektorova fotka
Sten 24. 7. 2011 11:03
Nový
Nechci compozite manager
ebik 24. 7. 2011 12:27
Nový
├ 
Re: Nechci compozite manager
ebik 24. 7. 2011 12:29
Nový
├ 
Re: Nechci compozite manager
Sten 24. 7. 2011 14:12
Nový
│
└ 
Re: Nechci compozite manager
ebik 30. 7. 2011 20:31
Nový
└ 
Re: Nechci compozite manager
Ivan 28. 7. 2011 15:43
Nový
 
└ 
Re: Nechci compozite manager
ebik 30. 7. 2011 19:38
Nový
Patří k tomu taky Yutani?
gabo 25. 7. 2011 06:48
Nový
Připojení klienta po síti
FrG 9. 8. 2011 11:39
Nový
Pusteni pouze dane aplikace vzdalene
Adam Přibyl 10. 8. 2011 07:23
Nový
└ 
Re: Pusteni pouze dane aplikace vzdalene
tux 15. 8. 2011 23:28
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem