Több mint egy év fejlesztés után bemutatásra került a Wayland 1.23 stabil kiadása, amely a protokoll, az interprocess kommunikációs mechanizmus és a könyvtárak legújabb verzióját tartalmazza. Az 1.23-as ág visszafelé kompatibilis az 1.x kiadások API és ABI szintjén, és főként hibajavításokat, valamint kisebb protokollfrissítéseket tartalmaz. A projekt eredményeit MIT licenc alatt terjesztik. A Weston referenciakompozit szerver, amely kódot és példákat biztosít a Wayland használatára asztali környezetekben és beágyazott megoldásokban, külön fejlesztési ciklus keretében fejlődik.
Főbb változások a protokollban:
- A libwayland-ben megvalósított API lehetővé teszi a kliens számára, hogy meghatározza a kapcsolatok maximális belső puffer méretét a szerver oldalán. Az alapértelmezett maximális puffer méret a wl_display interfészen keresztül állítható be, míg az új API lehetővé teszi a kliensek számára, hogy azt minden klienskapcsolathoz kötötten módosítsák. A gyakorlati szempontból ez a változtatás lehetővé teszi a nagyobb méretű pufferek használatát olyan speciális Wayland kliensekben, mint az Xwayland, amelyeknél magasabb eseménybeviteli intenzitás tapasztalható.
- A kérdésekhez (request), eseményekhez (event) és felsorolásokhoz (enum) lehetőség van XML attribútum 'deprecated-since' használatára az elavult elemek megjelölésére. A Wayland terminológiájában a kérdések olyan üzenetek, amelyeket a kliens küld szerverhez; az események az üzenetek, amelyeket a szerver küld a kliensnek; a felsorolások olyan nevekkel társított számértékek halmazai, amelyeket a protokoll manipulál.
- A wayland-scanner utility, amely a protokollt leíró XML fájlok alapján header fájlokat és C nyelvű kódot generál, új 'enum-header' módot kapott, amely lehetővé teszi, hogy csak a 'felsorolások' szerepeljenek a header fájlokban.
- A wayland-scanner biztosítja a 'felsorolások' érvényesítő függvények (validator) generálását a szerver oldalán.
- Lehetőséget kaptak az esemény sorok elnevezésére a könnyebb hibaelhárítás érdekében.
- A wl_client_get_user_data() és wl_client_set_user_data() függvények könnyítik meg tetszőleges adatok klienshez való csatolását.
- Új kérdés került bevezetésre: wl_shm.release, amely lehetővé teszi a kliens számára, hogy tájékoztassa a szervert a megosztott objektum használatának megszüntetéséről, így a szerver felszabadíthatja a hozzá kapcsolódó memóriát.
- Hozzáadva az OpenBSD platform támogatása.
A Wayland-t érintő események, amelyek a legutóbbi kiadás óta történtek:
- Megjelent a XWayland 24.1.0, amely támogatja az Explicit Sync technológiát és javítja a GLAMOR és EXA 2D-gyorsított architektúrák támogatását.
- A labwc (Lab Wayland Compositor) összetett szerver frissítése, amely Openbox ablakkezelőre emlékeztető funkciókat kínál.
- A wprs projekt, amely Waylandhoz fejleszti a grafikus alkalmazásokhoz hasonló screen segédprogramot.
- A Niri kompozit szerver kiadása, amely Waylandot használ, és lehetővé teszi a mozaikszerű (tiling) elrendezést, csoportosítva az ablakokat egy végtelenül görgethető képernyősávba.
- A Wayland-Protocols protokoll és kiterjesztések frissítése: 1.34, 1.33, 1.32, 1.35.
- Az SDL3 könyvtár fejlesztése, amely alapértelmezés szerint Waylandot alkalmaz.
- Az LXQt 2.0.0 asztali környezet kiadása, amely támogatja a Waylandot a PCManFM-Qt fájlkezelőben, az értesítési rendszerben, az asztalon, a programindító segédprogramban (Runner), a panelben, a kijelentkezési felületen, az LXQt beállítófelületen és a legtöbb alkalmazásban.
- A Sway 1.9 felhasználói környezet kiadása, amely Waylandot használ.
- Az új miracle-wm kompozit menedzser, amely Waylandra és a Mir kompozit menedzserek építőelemeire alapoz.
- A Louvre — új könyvtár kompozit fejlesztéshez szerverek Wayland alapú.
- A Wayland támogatás megvalósítása az Xfce-ben.
- Kezdeti Wayland támogatás a Budgie asztali környezetben.
- Kezdeti Wayland támogatás a Cinnamon asztali környezetben.
- Majdnem befejeződött a MATE asztali környezet Waylandra portolása.
- A Lubuntu disztribúció áttér a Qt 6 és Wayland használatára.
- A KDE 6 alapértelmezettként Wayland protokollt használó ülést kínál. Megvalósult a színkezeléshez szükséges Wayland kiterjesztések támogatása.
- Az Electron platformra bekerült a Wayland ablakdíszítési mód.
- A Wayfire kompozit szerver frissítése, amely Waylandot használ, és lehetővé teszi a felhasználói felületek 3D-effektusokkal való létrehozását a Compiz 3D-bővítményei stílusában.
- Wayland támogatás az IntelliJ IDE és az OpenJDK környezetében.
- Wayland támogatás a GNU Emacs szövegszerkesztőben.
- A GNOME-ban, a Wayland alapú ülés során megvalósult a Input Leap szoftveres KVM-kapcsoló támogatása, amely lehetővé teszi egy billentyűzet és egér használatát több számítógép irányításához.
- A Fedora KDE Desktop kiadása megszüntette a X11 protokollt alapú ülések támogatását az alapcsomagban.
- Javult a Wayland alapú környezetek támogatása a zárt forráskódú NVIDIA illesztőprogramokban.
- Kifejlesztették a drivert, amely lehetővé teszi a Wine használatát Wayland alapú környezetekben XWayland és X11 komponensek alkalmazása nélkül.
- Megjelent a 13.0-s Weston kompozíciós szerver.
- A KDE, GNOME, Enlightenment, Wayfire, Mir, Xfce és Sway Wayland feletti működésének tesztelésére külön Live disztribúció, a Rebecca Black Linux kerül forgalomba.
- A Linux-on futó Firefox alapértelmezés szerint a Wayland kompozíciós szerver használatát támogatja az XWayland helyett. Lehetőség nyílik olyan kiadások létrehozására is, amelyek kizárólag Wayland támogatásával működnek.
Ne feledjük, hogy a Wayland a kompozit szerver és a vele működő alkalmazások közötti interakciós protokoll. Az ügyfelek saját maguk végzik az ablakok rajzolását egy külön bufferben, amelyen keresztül a kompozit szerverhez továbbítják a frissítések információit, amely összekombinálja a különböző alkalmazások bufferének tartalmát a végső megjelenítés érdekében, figyelembe véve a lehetséges részleteket, mint például az ablakok átfedése és átlátszósága. Más szóval, a kompozit szerver nem biztosít API-t külön elemek rajzolásához, csak már elkészült ablakokkal dolgozik, ami lehetővé teszi a dupla bufferelés eltávolítását olyan magas szintű könyvtárak használatakor, mint a GTK és a Qt, amelyek magukra vállalják az ablakok tartalmának összerendezését.
A Wayland számos biztonsági problémát old meg az X11-hez képest, mivel elkülöníti az egyes ablakok bemeneti és kimeneti forrásait, megakadályozza, hogy az ügyfél hozzáférjen más ügyfelek ablakainak tartalmához, és megakadályozza a kapcsolódó események elfogását. Jelenleg a GTK, Qt, SDL (2.0.2-től kezdődően), Clutter és EFL (Enlightenment Foundation Library) könyvtárak közvetlen Wayland támogatása már megvalósult. A Qt 5.4-től kezdődően a QtWayland modul is bekerült, amely lehetővé teszi a Qt alkalmazások működését a Weston kompozíciós szerver környezetében, amelyet a Wayland projekt fejleszt.
A Wayland/Weston硬件互動,例如初始化、切換視頻模式(drm modesetting)和管理內存(i915 的 GEM 和 radeon 及 nouveau 的 TTM)的圖形卡,可以直接通過在內核級別運行的模組進行,這使得無需超級用戶特權。 Weston 合成服務器不僅可以使用 Linux 核心的 DRM 模組來運行,還可以在 X11、另一個 Wayland 合成服務器、幀緩衝器和 RDP 上運行。此外,還有針對在 Android 平台的圖形堆棧上運行的項目。
A Weston keretein belül egy kompozit szerver megvalósítása zajlik. Kompozit szerverként bármely más termék is működhet, amely támogatja a Wayland protokollt. Például jelenleg folyik a KWin Wayland támogatásának biztosítása. A jelenlegi formájában a Weston már túllépett a Wayland protokoll tesztelésére szolgáló példák sorozatán, és funkciói szőhetők be pluginek és kiegészítők révén. A felhasználói környezetek és a kiterjesztett ablakkezelési funkciók külső backendek formájában kerülnek megvalósításra a Westonhoz. Az X11-alkalmazások Wayland-alapú környezetben való futtatásához az XWayland (Device-Dependent X) DDX összetevőt használják, amely működési szervezésében hasonlít a Win32 és macOS platformok Xwin és Xquartz megoldásaira.


Forrás: opennet.ru
