Portál AbcLinuxu, 4. května 2025 22:51
X Window System je s námi již několik desetiletí. Je standardem pro komunikaci s uživatelem na mnohých systémech, GNU/Linux nevyjímaje. Přes své nesporné výhody má také řadu velmi nepěkných vlastností, což mě občas vede k úvahám, zda by ho na desktopu nebylo lepší eliminovat.
V době svého vzniku byl X Window System doslova revolucí v UI. Koncept WIMP nebyl předtím uspokojivě realizován, proto tento systém, navíc velice robustně navržený, byl přijat ryze pozitivně.
Postupem času, jak vznikaly nové požadavky na to, co by měl počítač umět (zejména v oblasti multimédií), a s tím, jak rostly možnosti hardwaru, se do X začleňovala různá rozšíření, zajišťující tu či onu schopnost. Proto se původně poměrně jednoduchý systém proměnil v pěkného bumbrlíčka.
X Window System má celou řadu příjemných vlastností, např. tyto:
Ale jsou tu i stinné stránky:
S ohledem na výše uvedené jsem poněkud na pochybách, zda je klasický X pro běžný desktop to pravé ořechové. Systém byl navržen tak, aby úlohy běžely na výkonném stroji, zatímco uživatelé budou sedět u jednoúčelových grafických terminálů - pro toto nasazení má X svůj význam. Ale na PC mi přijde poněkud jako kanón na vrabce.
Problém je v tom, že (kromě aplikací běžících na speciálních knihovnách, třeba Qt) je X zažitým a široce používaným řešením, proto ho není možné jen tak zahodit a nahradit něčím jiným. Navíc to "jiné řešení" musí splňovat i řadu jiných podmínek (např. licenčních), což není tak úplně jednoduché.
Proto mi jako jedna z možných cest připadá vytvoření "odlehčeného" X serveru, který by neběžel jako samostatný proces, nýbrž by většina operací probíhala synchronně v rámci aplikačních procesů. Operace, které by takto řešit nešly, by se mohly provádět ve workqueues prostřednictvím procesů jádra.
Nevím zatím o žádném projektu, který by se tímto zabýval. Možná je to myšlenka nepatřičná, která se může ukázat cestou do pekel, ale jsem toho názoru, že stojí za to je jí vážně zabývat. Mohla by to být cesta, jak pomoct GNU/Linuxu k lepším výsledkům v desktopovém použití.
Tiskni
Sdílej:
svgalib
, a ztroskotaly IMHO právě na tom, že ačkoli byly v určitých situacích efektivnější než řešení přes X server (dodnes si pamatuji na výrazný rozdíl mezi sdoom
a xdoom
), nikomu se příliš nechtělo psát všechny aplikace dvojmo, zvlášť když by ta svgalib verze měla (oproti X11) jen velmi omezenou přenositelnost.
Samozřejmě že za tuto univerzalitu se vždy platí, obecné řešení bývá méně efektivní než speciální. Ale stejně jako používáme operační systém místo toho, aby každá aplikace komunikovala s perifériemi samostatně, stojí IMHO za to používat abstraktní vrstvu místo specifických řešení komunikace s grafickými adaptéry. Tam, kde je maximální efektivita klíčová (přehrávání videa, 3D hry apod.), existují nadstavby (DRI, OpenGL), které umožňují takové specifické úlohy řešit efektivněji. Nemyslím si totiž také, že by samotný X server byl tím, co způsobuje pomalost dnešních grafických uživatelských rozhraních. Když mi mohly grafické aplikace docela svižně běhat na 386DX-40 s 8 MB paměti, nevidím důvod, proč by to nemohlo jít na dnešních strojích (i těch (z dnešního pohledu) podprůměrných). Problém vidím spíš v neefektivních desktopových prostředích, tady je IMHO největší rezerva pro zlepšení.
To isto nestoji. ľudia stratili svoju tvorivosť, ktorú mávali za čias prvých letov na mesiac a nevidia, čo sa naozaj dá dosiahnúť.
Ja by som napísal niečo podobné ako userspace framebuffer. Ten framebuffer by bol len driver podobne ako vo FUSE filesystem. Existovať by mohol démon - bridge k X aplikáciam. Výhadou by bolo, že by renderovanie virtuálnej konzoly prevzal userspaceframebuffer a nemuseli by sme trpieť keď prepíname z X do konzoly; virtuálne plochy ako virtuálne konzoly, všetko by riadilo jadro, ale nevedelo by o tom.
twm
. Snažím se vám celou dobu vysvětlit, že pokud by někde prospěla odtučňovací kůra, jsou to daleko spíše desktopová prostředí. I kdyby se vám podařilo výrazně urychlit a zmenšit X server, nezískáte tím pozorovatelný efekt. Řádově účinnější úspory by byly možné na úrovni desktopových prostředí, tam je váš problém, ne v X serveru.
X
'?
Moje X zaberajú 5-12% z 320Mb RAM. Môj EvliWM mi zabera 40Kb RAM. Jadro môjho desktopu napísaného v Shelli, Perle, C, Emacs Lispu, Vim skripte a JavaSkripte (ff, tb) mi zabera cca 750Kb na disku.
Mojím cieľom nieje stenčovať X, ale zlepšiť GUI. Ide mi len o to, aby môj systém vyzeral a správal sa koherentne a nie, akoby ho nejaký šialenec rozreza motorovou pílou napoly a potom zlepil lepiacou páskou a nazval ho Desktopom.
To isto nestoji. ľudia stratili svoju tvorivosť, ktorú mávali za čias prvých letov na mesiac a nevidia, čo sa naozaj dá dosiahnúť.
Ja by som napísal niečo podobné ako userspace framebuffer. Ten framebuffer by bol len driver podobne ako vo FUSE filesystem. Existovať by mohol démon - bridge k X aplikáciam. Výhadou by bolo, že by renderovanie virtuálnej konzoly prevzal userspaceframebuffer a nemuseli by sme trpieť keď prepíname z X do konzoly; virtuálne plochy ako virtuálne konzoly, všetko by riadilo jadro, ale nevedelo by o tom.
To isto nestoji. ľudia stratili svoju tvorivosť, ktorú mávali za čias prvých letov na mesiac a nevidia, čo sa naozaj dá dosiahnúť.
Ja by som napísal niečo podobné ako userspace framebuffer. Ten framebuffer by bol len driver podobne ako vo FUSE filesystem. Existovať by mohol démon - bridge k X aplikáciam. Výhadou by bolo, že by renderovanie virtuálnej konzoly prevzal userspaceframebuffer a nemuseli by sme trpieť keď prepíname z X do konzoly; virtuálne plochy ako virtuálne konzoly, všetko by riadilo jadro, ale nevedelo by o tom.
V zápise do blogu neseparujme X a konzolu som ja vyjadril podobne. Projekt Y-Windows zomrel len kôli tomu, že neexistuje skupina ľudí, ktorá by GNU/Linux a zvyšok unixového neba tlačili tým správnym smerom.
Já si naopak myslím, že použití *nixu na běžném desktopu brání úplně jiné věci než je nedostatečný výkon X. Běžnému uživateli to je naprosto fuk. Věci, které potřebují vyšší grafický výkon používají SDL apod.
Použitelnost desktopu je v tom, že mi umožní dělat věci jako pořizování dokumentu, práci s poštou. Tady se nedá dnes nic vytknout. Při brouzdání internetem to už je horší (např. banky a podobné aplikace). A samozřejmě je třeba aby byl zpřístupněn podnikový IS a tady je *nixový desktop většinou vedle. Ovšem, že to není chyba samotného *nixového desktopu, že firma xy neudělá verzi pro *nix xz, ale nic to nemení na výsledku.
vi
je přežitek. Rozdíl mezi "stisknu f<
" a "chvíli podržím šipku doprava a pak budu pár vteřin čekat, kam jsem se vlastně trefil" je poměrně značný… :-)
vi
nepoužitelný. Obvykle v takové situaci skřípu zuby, nastavuji lokální echo a začínám používat ed
(ex
).
vi
se používat dá, jen je potřeba potlačit některé návyky, zejména (v této situaci) smrtící zvyk využívat šipky s autorepeatem.
Autor končil svůj příspěvek úvahou nad tím, že vytvořením jednodužších X dojdeme k lepší použitelnosti Linuxu na desktopu. Je to špatná úvaha. Vůbec nic se nezmění, použitelnost desktopu je v něčem jiném.
Naopak se připravíme o jednu ze zásadních výhod X - nezávislost na jádru systému a síťová transparentnost. NE - X Window není zbytečný moloch, naopak, je to jedna z nejdomyšlenějších koncepcí v IT.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.