Dört aylık geliştirme sürecinin ardından, Wayland 1.26 protokolünün, süreçler arası iletişim mekanizmasının ve kütüphanelerinin kararlı sürümü yayınlandı. 1.26 dalı, API ve ABI seviyesinde 1.x sürümleriyle geriye dönük uyumludur ve ağırlıklı olarak hata düzeltmeleri ve küçük protokol güncellemeleri içerir. Projenin çalışmaları MIT lisansı altında dağıtılmaktadır. Referans bileşeni sunucu Wayland'ı masaüstü ve gömülü ortamlarda kullanmak için kod ve çalışan örnekler sağlayan Weston, ayrı bir geliştirme döngüsünde geliştirilmektedir.
Protokoldeki ana değişiklikler:
- Kullanıcı etkinliği tarafından oluşturulan wl_pointer.motion olayını işlemeye gerek kalmadan işaretçinin yeni konumu hakkında bildirim almanızı sağlayan wl_pointer.warp olayı eklendi.
- Küresel olayları kaldırırken yarış koşullarını önlemek için, istemcinin olayı işlemeyi durdurduğunu bileşik yöneticiye onaylamak üzere tasarlanmış olan wl_fixes.ack_global_remove isteği eklendi. Tüm istemcilerden onay aldıktan sonra, bileşik yönetici kendi tarafında olayla ilişkili işleyiciyi kaldırabilir.
- wl_display_add_socket_fd() çağrısı ile önceden eklenen soketleri kaldırmak için wl_display_remove_socket_fd() fonksiyonu eklendi.
- WAYLAND_DEBUG hata ayıklama modunda, zaman "HH:MM:ss.xxxxxx" biçiminde kaydedilir; bu da günlüklerin ayrıştırılmasını ve karşılaştırılmasını kolaylaştırır.
Önceki Wayland sürümünden bu yana eklenen ve temel Wayland protokolünü tamamlayan protokol uzantıları, ayrı bir Wayland-Protocols setinde sunulmaktadır:
- xx-kesirli-ölçek — değerlerin tamsayı olarak belirtildiği mantıksal koordinat sistemini ölçeklendirmek, konumlandırma doğruluğunu artırmak ve mantıksal koordinatların çözünürlüğünü tek tek piksellere kadar yükseltmek içindir. Bu özellik, kesirli ölçeklendirmenin tam olarak uygulanması için gerekli olan, tek tek piksel düzeyinde konumlandırma için yetersiz olan mantıksal koordinat sisteminin sınırlı çözünürlüğü sorununu çözer.
- xx-cutouts — ekrandaki kesikler hakkında bilgi almak için (örneğin, akıllı telefon ekranındaki ön kameranın altındaki alan).
- xx-zones — kendi koordinat alanına sahip ortamlar olan "bölgelere" üst düzey pencereler oluşturmak ve eklemek için kullanılır. Protokol, her pencerenin diğer her pencereye göre konumlandırıldığı mantıksal bir pencere düzenlemesine olanak tanır.
- xx-keyboard-filter — istemcinin seçili klavye olaylarını yakalaması, giriş olaylarını değiştirmesi veya belirli olayların odaklanılan Wayland yüzeyine iletilmesini engellemesi için kullanılır.
- xdg-session-management protokolü, hazırlık aşaması kategorisine eklendi ve bu sayede Wayland protokolüne dayalı ortamlarda, örneğin bir sistem çökmesi sonrasında, kesintiye uğramış bir oturumdaki pencerelerin durumunu ve konumunu geri yükleme olanağı sağlandı. sunucu или приложения.
- "Linux-dmabuf" protokolü, çoklu GPU sistemlerini destekleyecek şekilde güncellendi. Bu tür sistemlerde, istemci bileşik GPU'yu müzakere edebilir. sunucu Hangi GPU kullanılmalı?
- Renk yönetimi-v1 protokolü, kompozit görüntülemede kullanılmak üzere BT.2100 görüntü meta verilerini destekleyecek şekilde güncellenmiştir. sunucu HDR içeriklerin doğru şekilde görüntülenmesini sağlayan özel işleyiciler. Windows.
Son sayının yayınlanmasından bu yana Wayland ile ilgili önemli olaylar:
- Cinnamon, Wayland'i tam olarak desteklemektedir.
- Chrome'da kullanılan ANGLE kütüphanesinde ve AndroidWayland desteği eklendi.
- KDE, Wayland kullanırken, oturum geri yükleme desteğini ve kesirli ölçeklendirme için xx-fractional-scale-v2 Wayland protokolünü uygular.
- Synaptics X.Org sürücüsünün Wayland tabanlı ortamlar için bir sürümü oluşturuldu.
- X11'in Wayland ile değiştirilmesi için VFX ve animasyon platformlarının hazırlık durumu kontrolü başlatıldı.
- Xfce projesine ait Xfwl4 kompozit sunucusunun test çalışmaları başladı.
- Unity'nin kullanıcı arayüzü Wayfire ve Libadwaita kullanılarak yeniden oluşturuldu.
- Güncellenmiş kompozit sunucular ve masaüstü ortamları: COSMIC 1.3.0, Weston 16, Phosh 0.56, Nourish 1.0.0, miracle-wm 0.10, KDE Plasma 6.7, labwc 0.20, Sway 1.2, Wayland Maker 0.8, Hyprland 0.55, Niri 26.04, LXQt 2.4.0, Cage 0.3.
Wayland'ın, bir birleştirme sunucusu ile üzerinde çalışan uygulamalar arasındaki etkileşim için kullanılan bir protokol olduğunu hatırlayalım. İstemciler pencerelerini ayrı bir arabellekte bağımsız olarak oluşturur ve güncelleme bilgilerini birleştirme sunucusuna iletir. sunucuBu, pencere çakışması ve şeffaflık gibi olası nüansları hesaba katarak, bireysel uygulama arabelleklerinin içeriklerini birleştirerek nihai çıktıyı oluşturur. Başka bir deyişle, kompozit sunucu, bireysel öğeleri işlemek için bir API sağlamaz, yalnızca önceden işlenmiş pencereler üzerinde çalışır ve pencere içeriklerinin birleştirilmesi işini üstlenen GTK ve Qt gibi üst düzey kütüphaneler kullanılırken çift arabellekleme sorununu ortadan kaldırır.
Wayland, X.Org Server'daki birçok X11 güvenlik sorununu çözmektedir; çünkü ikincisinin aksine, her pencere için giriş ve çıkışı izole eder, bir istemcinin diğer istemcilerin pencerelerinin içeriğine erişmesine izin vermez ve diğer pencerelerle ilgili giriş olaylarının ele geçirilmesine izin vermez (XLibre XServer, istemci izolasyonunu ad alanı düzeyinde ayırma yoluyla sağlayan X11 uzantısı Xnamespace'i uygular). Wayland ile doğrudan çalışma desteği, kullanılan platformların çoğunda uygulanmıştır. Linux GTK, Qt, SDL, FLTK, wxWidgets, Clutter ve EFL (Enlightenment Foundation Library) dahil olmak üzere grafik kütüphaneleri.
Wayland/Weston'da donanımla etkileşim, örneğin başlatma, video modu değiştirme (DRM mod ayarı) ve grafik kartları için bellek yönetimi (i915 için GEM ve Radeon ve Nouveau için TTM), süper kullanıcı ayrıcalıklarına gerek kalmadan doğrudan çekirdek düzeyinde bir modül aracılığıyla gerçekleştirilebilir. Wayland tabanlı bir ortamda standart X11 uygulamalarının yürütülmesini sağlamak için, Win32 için Xwin ve Xquartz'a benzer şekilde çalışan XWayland (Aygıta Bağımlı X) DDX bileşeni kullanılır. macOS.
Kaynak: opennet.ru
