Efter mer Àn ett Är av utveckling har den stabila versionen av Wayland-protokollet, mekanismen för interprocesskommunikation och biblioteken Wayland 1.23 presenterats. Version 1.23 Àr bakÄtkompatibel pÄ API- och ABI-nivÄ med utgÄvorna 1.x och innehÄller huvudsakligen buggfixar och mindre protokolluppdateringar. Projektets arbete distribueras under MIT-licensen. Referenskompositservern Weston, som tillhandahÄller kod och arbets exempel för anvÀndning av Wayland i skrivbordsmiljöer och inbÀddade lösningar, utvecklas inom en separat utvecklingscykel.
Huvudsakliga förÀndringar i protokollet:
- I libwayland har ett API implementerats som gör det möjligt för klienten att ange den maximala storleken pÄ inre buffrar för anslutningar pÄ serversidan. Den grundlÀggande maximala buffertstorleken stÀlls in via grÀnssnittet wl_display, och det nya API:et gör det möjligt för klienterna att Àndra den i relation till varje klientanslutning. FrÄn ett praktiskt perspektiv gör denna förÀndring det möjligt att anvÀnda större buffrar i specifika Wayland-klienter, som Xwayland, som kÀnnetecknas av en högre intensitet av inmatningshÀndelser.
- För begÀrningar (request), hÀndelser (event) och upprÀkningar (enum) har möjligheten att anvÀnda XML-attributet "deprecated-since" lagts till för att markera förÄldrade element. I Waylands terminologi Àr begÀrningar meddelanden som skickas frÄn klienten till servern; hÀndelser Àr meddelanden som överförs frÄn servern till klienten; upprÀkningar Àr namnrelaterade uppsÀttningar av numeriska vÀrden som protokollet manipulerar.
- I verktyget wayland-scanner, avsett för att generera headerfiler och kod i C baserat pÄ XML-filer som beskriver protokollet, har en "enum-header"-lÀge lagts till, som omfattar att endast inkludera "upprÀkningar" i headerfilerna.
- I wayland-scanner har generation av verifieringsfunktioner (validator) för "upprÀkningar" pÄ serversidan sÀkerstÀllts.
- Möjligheten att tilldela namn till hÀndelseköer har lagts till för att förenkla felsökning.
- Nya funktioner wl_client_get_user_data() och wl_client_set_user_data() har lagts till, vilket förenklar kopplingen av godtyckliga data till klienten.
- BegÀran wl_shm.release har lagts till som gör det möjligt för klienten att informera servern om att anvÀndningen av det delade objektet har upphört, vilket möjliggör att servern frigör det relaterade minnet.
- Stöd för OpenBSD-plattformen har lagts till.
Relaterade Wayland-hÀndelser som intrÀffat sedan publiceringen av den senaste utgÄvan:
- XWayland 24.1.0 har slÀppts med stöd för Explicit Sync-teknik och förbÀttrat stöd för 2D-accelerationsarkitektur GLAMOR och EXA.
- Uppdatering av kompositservern labwc (Lab Wayland Compositor) med funktioner som liknar fönsterhanteraren Openbox.
- Projektet wprs utvecklar en sessionshanterare för Wayland, liknande verktyget screen, men för grafiska applikationer.
- Publicering av kompositservern Niri, som anvÀnder Wayland och erbjuder en metod för mosaikkomposition (tiling) med fönstergruppering i en oÀndligt rullande rad pÄ skÀrmen.
- Uppdatering av Wayland-Protocols uppsÀttning protokoll och tillÀgg: 1.34, 1.33, 1.32, 1.35.
- Utveckling av biblioteket SDL3, som anvÀnder Wayland som standard.
- Lansering av skrivbordsmiljön LXQt 2.0.0 med stöd för Wayland i filhanteraren PCManFM-Qt, aviseringar, skrivbord, programstartare (Runner), panel, utloggningsgrÀnssnitt, LXQt instÀllningsgrÀnssnitt och de flesta applikationer.
- Release av anvÀndarmiljön Sway 1.9, som anvÀnder Wayland.
- Ny kompositmanager miracle-wm, baserad pÄ Wayland och komponenter för att bygga kompositmanager Mir.
- Louvre - ett nytt bibliotek för utveckling av kompositörer servrar baserat pÄ Wayland.
- Arbete med implementeringen av Wayland-stöd i Xfce.
- Initialt stöd för Wayland i Budgie-skrivbordsmiljön.
- Initialt stöd för Wayland i Cinnamon-skrivbordsmiljön.
- NÀstan slutfört portering av MATE-skrivbordet för Wayland.
- Distributionen Lubuntu gÄr över till att anvÀnda Qt 6 och Wayland.
- I KDE 6 erbjuds som standard en session som anvÀnder Wayland-protokollet. Stöd för Wayland-tillÀgg för fÀrgstyrning har implementerats.
- I plattformen Electron har lÀget för fönsterdekorering för Wayland inkluderats.
- Uppdatering av kompositservern Wayfire, som anvÀnder Wayland och tillÄter skapande av anvÀndargrÀnssnitt med 3D-effekter i stil med 3D-pluginer till Compiz.
- Stöd för Wayland i IDE IntelliJ och OpenJDK.
- Stöd för Wayland i textredigeraren GNU Emacs.
- I GNOME, i en session baserad pÄ Wayland, har stöd för programvarukommutatorn KVM Input Leap implementerats, vilket gör att en tangentbord och mus kan anvÀndas för att styra flera datorer.
- Fedora-utgÄvan med KDE-skrivbordet har slutat stödja sessioner baserade pÄ X11-protokollet i grunddistributionen.
- FörbÀttrat stöd för Wayland-baserade miljöer i proprietÀra NVIDIA-drivrutiner.
- En drivrutin har implementerats som gör det möjligt att anvÀnda Wine i miljöer baserade pÄ Wayland-protokollet utan att anvÀnda XWayland och X11-komponenter.
- En version av kompositservern Weston 13.0 har slÀppts.
- För att testa KDE, GNOME, Enlightenment, Wayfire, Mir, Xfce och Sway ovanpÄ Wayland slÀpps en speciell Live-distribution av Rebecca Black Linux.
- I Linux-versionerna av Firefox Àr anvÀndning av kompositservern Wayland som standard aktiverad istÀllet för XWayland. Möjlighet har Àven skapats för att skapa versioner som endast stöder drift i Wayland.
Wayland Àr ett protokoll för interaktionen mellan kompositservern och de applikationer som arbetar med den. Kunderna renderar sjÀlva sina fönster i en separat buffert och skickar information om uppdateringar till kompositservern, som kombinerar innehÄllet i buffertarna frÄn de olika applikationerna för att skapa den slutliga utgÄngen med hÀnsyn till eventuella detaljer, sÄsom fönsteröverlagring och transparens. Med andra ord tillhandahÄller inte kompositservern ett API för att rendera enskilda element, utan arbetar endast med redan skapade fönster, vilket gör det möjligt att eliminera dubbel buffring vid anvÀndning av högre nivÄer av bibliotek som GTK och Qt, som tar hand om sammanstÀllningen av fönsterinnehÄllet.
Wayland löser mÄnga sÀkerhetsproblem med X11, eftersom den i motsats till den senare isolerar in- och utdata för varje fönster, hindrar klienter frÄn att fÄ tillgÄng till innehÄllet i andra klienters fönster och tillÄter inte att relaterade inmatningsevenemang fÄngas. För nÀrvarande har direkt stöd för arbete med Wayland redan implementerats för biblioteken GTK, Qt, SDL (frÄn version 2.0.2), Clutter och EFL (Enlightenment Foundation Library). FrÄn och med Qt 5.4 ingÄr modulen QtWayland som implementerar komponenter för att köra Qt-applikationer i miljön för kompositservern Weston, som utvecklas av Wayland-projektet.
Interaktion med hÄrdvaran i Wayland/Weston, som att initiera, vÀxla videolÀgen (drm modesetting) och hantera minne (GEM för i915 och TTM för radeon och nouveau) grafikkort, kan göras direkt genom en modul som fungerar pÄ kÀrnnivÄ, vilket möjliggör att undvika superanvÀndartillstÄnd. Kompositservern Weston kan fungera inte bara med Linux-kÀrnans DRM-modul utan ocksÄ ovanpÄ X11, en annan kompositserver för Wayland, framebuffer och RDP. Dessutom utvecklas projekt för att sÀkerstÀlla drift ovanpÄ grafikstacken i Android.
Inom projektet Weston utvecklas en av implementeringarna av kompositservern. Som kompositserver kan Àven andra produkter som stöder Wayland-protokollet anvÀndas. För nÀrvarande pÄgÄr arbete för att sÀkerstÀlla stöd för Wayland i KWin. I sin nuvarande form har Weston redan gÄtt bortom en uppsÀttning exempel för att testa Wayland-protokollet och kan utökas med funktionalitet genom plugins och tillÀgg. AnvÀndargrÀnssnitt och avancerade fönsterhanteringsfunktioner föreslÄs realiseras i form av externa backend till Weston. För att möjliggöra körning av vanliga X11-applikationer i en Wayland-baserad miljö anvÀnds DDX-komponenten XWayland (Device-Dependent X), som liknar Xwin och Xquartz för Win32 och macOS-plattformar.


KĂ€lla: opennet.ru
