Μετά από τέσσερις μήνες ανάπτυξης, κυκλοφόρησε η σταθερή έκδοση του πρωτοκόλλου Wayland 1.26, του μηχανισμού επικοινωνίας μεταξύ διεργασιών και των βιβλιοθηκών. Ο κλάδος 1.26 είναι συμβατός με τις εκδόσεις 1.x σε επίπεδο API και ABI και περιέχει κυρίως διορθώσεις σφαλμάτων και μικρές ενημερώσεις πρωτοκόλλου. Το έργο διατίθεται με άδεια χρήσης MIT. Ο σύνθετος διακομιστής αναφοράς Weston, ο οποίος παρέχει κώδικα και παραδείγματα λειτουργίας για τη χρήση του Wayland σε περιβάλλοντα επιφάνειας εργασίας και ενσωματωμένες λύσεις, αναπτύσσεται σε ξεχωριστό κύκλο ανάπτυξης.
Οι κυριότερες αλλαγές στο πρωτόκολλο:
- Προστέθηκε το συμβάν wl_pointer.warp, το οποίο σας επιτρέπει να λαμβάνετε ειδοποιήσεις σχετικά με τη νέα θέση του δείκτη χωρίς να χειρίζεστε το συμβάν wl_pointer.motion που δημιουργείται από τη δραστηριότητα του χρήστη.
- Προστέθηκε το αίτημα wl_fixes.ack_global_remove, το οποίο έχει σχεδιαστεί για να στέλνει μια επιβεβαίωση στον διαχειριστή σύνθετων δεδομένων ότι ο υπολογιστής-πελάτης έχει σταματήσει την επεξεργασία του συμβάντος, για την αποτροπή συνθηκών ανταγωνισμού κατά την κατάργηση καθολικών συμβάντων. Αφού λάβει επιβεβαίωση από όλους τους υπολογιστές-πελάτες, ο διαχειριστής σύνθετων δεδομένων μπορεί να καταργήσει τον χειριστή που σχετίζεται με το συμβάν στην πλευρά του.
- Προστέθηκε η συνάρτηση wl_display_remove_socket_fd() για την αφαίρεση υποδοχών που είχαν προστεθεί προηγουμένως μέσω της κλήσης wl_display_add_socket_fd().
- Στη λειτουργία εντοπισμού σφαλμάτων WAYLAND_DEBUG, η ώρα καταγράφεται στη μορφή "ΩΩ:ΛΛ:ss.xxxxxx", απλοποιώντας την ανάλυση και τη σύγκριση των αρχείων καταγραφής.
Επεκτάσεις πρωτοκόλλου που προστέθηκαν από την προηγούμενη έκδοση του Wayland, οι οποίες συμπληρώνουν το βασικό πρωτόκολλο Wayland και παρέχονται σε ξεχωριστό σύνολο πρωτοκόλλων Wayland:
- xx-κλασματική-κλίμακα — για την κλιμάκωση ενός λογικού συστήματος συντεταγμένων, στο οποίο οι τιμές καθορίζονται ως ακέραιοι αριθμοί, για τη βελτίωση της ακρίβειας τοποθέτησης και την αύξηση της ανάλυσης των λογικών συντεταγμένων σε μεμονωμένα pixel. Αυτή η λειτουργία λύνει το πρόβλημα της περιορισμένης ανάλυσης του λογικού συστήματος συντεταγμένων, η οποία δεν επαρκεί για την τοποθέτηση σε επίπεδο μεμονωμένου pixel, η οποία είναι απαραίτητη για την πλήρη εφαρμογή της κλασματικής κλιμάκωσης.
- xx-κοψίματα — για να λάβετε πληροφορίες σχετικά με τα κομμένα κουμπιά στην οθόνη (για παράδειγμα, την περιοχή κάτω από την μπροστινή κάμερα στην οθόνη του smartphone).
- xx-zones — για τη δημιουργία και την προσθήκη παραθύρων ανώτατου επιπέδου σε "ζώνες" — περιβάλλοντα με τον δικό τους χώρο συντεταγμένων. Το πρωτόκολλο επιτρέπει μια λογική διάταξη παραθύρων, στην οποία κάθε παράθυρο τοποθετείται σε σχέση με κάθε άλλο παράθυρο.
- xx-keyboard-filter — για να αναχαιτίζει επιλεγμένα συμβάντα πληκτρολογίου, να τροποποιεί συμβάντα εισόδου ή να εμποδίζει ορισμένα συμβάντα να διαβιβάζονται στην εστιασμένη επιφάνεια Wayland.
- Το πρωτόκολλο xdg-session-management έχει προστεθεί στην κατηγορία staging, παρέχοντας τη δυνατότητα επαναφοράς της κατάστασης και της θέσης των παραθύρων από μια διακεκομμένη συνεδρία σε περιβάλλοντα που βασίζονται στο Wayland, για παράδειγμα μετά από διακοπή λειτουργίας ενός σύνθετου διακομιστή ή εφαρμογής.
- Το πρωτόκολλο "linux-dmabuf" έχει ενημερωθεί για να υποστηρίζει συστήματα με πολλαπλές GPU. Σε τέτοια συστήματα, ο πελάτης μπορεί να διαπραγματευτεί με τον σύνθετο διακομιστή ποια GPU θα χρησιμοποιήσει.
- Το πρωτόκολλο διαχείρισης χρωμάτων v1 έχει ενημερωθεί για να υποστηρίζει μεταδεδομένα εικόνας σε μορφή BT.2100 για τη χρήση συγκεκριμένων χειριστών στον σύνθετο διακομιστή, επιτρέποντας τη σωστή εμφάνιση περιεχομένου HDR που δημιουργήθηκε για Windows.
Αξιοσημείωτα γεγονότα που σχετίζονται με το Wayland από την κυκλοφορία του τελευταίου τεύχους:
- Η Cinnamon έχει πλήρη υποστήριξη για τον Wayland.
- Στη βιβλιοθήκη ANGLE που χρησιμοποιείται στο Chrome και Android, Προστέθηκε υποστήριξη για τον Wayland.
- Το KDE, όταν χρησιμοποιεί το Wayland, υλοποιεί υποστήριξη επαναφοράς περιόδου λειτουργίας και το πρωτόκολλο xx-fractional-scale-v2 Wayland για κλασματική κλιμάκωση.
- Έχει δημιουργηθεί μια μεταφορά του προγράμματος οδήγησης Synaptics X.Org για περιβάλλοντα που βασίζονται στο Wayland.
- Έχει ξεκινήσει ένας έλεγχος ετοιμότητας για πλατφόρμες οπτικών εφέ και κινουμένων σχεδίων για την αντικατάσταση του X11 με το Wayland.
- Οι δοκιμές του σύνθετου διακομιστή Xfwl4 από το έργο Xfce έχουν ξεκινήσει.
- Η διεπαφή χρήστη του Unity έχει αναδημιουργηθεί χρησιμοποιώντας Wayfire και Libadwaita.
- Ενημερωμένα σύνθετα περιβάλλοντα διακομιστών και επιτραπέζιων υπολογιστών: 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 είναι ένα πρωτόκολλο για την αλληλεπίδραση μεταξύ ενός σύνθετου διακομιστή και των εφαρμογών που λειτουργούν με αυτόν. Οι πελάτες αποδίδουν ανεξάρτητα τα παράθυρά τους σε ξεχωριστό buffer, μεταδίδοντας πληροφορίες σχετικά με τις ενημερώσεις στον σύνθετο διακομιστή, ο οποίος συνδυάζει τα περιεχόμενα των buffer μεμονωμένων εφαρμογών για να σχηματίσει την τελική έξοδο, λαμβάνοντας υπόψη πιθανές αποχρώσεις όπως η επικάλυψη παραθύρων και η διαφάνεια. Με άλλα λόγια, ο σύνθετος διακομιστής δεν παρέχει API για την απόδοση μεμονωμένων στοιχείων, αλλά λειτουργεί μόνο με ήδη σχηματισμένα παράθυρα, κάτι που σας επιτρέπει να απαλλαγείτε από το διπλό buffering όταν χρησιμοποιείτε βιβλιοθήκες υψηλού επιπέδου όπως το GTK και το Qt, τα οποία αναλαμβάνουν το έργο της σύνθεσης του περιεχομένου των παραθύρων.
Το Wayland επιλύει πολλά από τα προβλήματα ασφαλείας του X11 στον X.Org Server, καθώς, σε αντίθεση με τον τελευταίο, απομονώνει την είσοδο και την έξοδο για κάθε παράθυρο, δεν επιτρέπει σε έναν πελάτη να έχει πρόσβαση στο περιεχόμενο των παραθύρων άλλων πελατών και δεν επιτρέπει την υποκλοπή συμβάντων εισόδου που σχετίζονται με άλλα παράθυρα (το XLibre XServer υλοποιεί την επέκταση X11 Xnamespace, η οποία παρέχει απομόνωση πελάτη μέσω διαχωρισμού σε επίπεδο ονοματοθέτη). Υποστήριξη για άμεση εργασία με το Wayland υλοποιείται για τις περισσότερες πλατφόρμες που χρησιμοποιούνται στο Linux βιβλιοθήκες γραφικών όπως GTK, Qt, SDL, FLTK, wxWidgets, Clutter και EFL (Enlightenment Foundation Library).
Η αλληλεπίδραση με το υλικό στο Wayland/Weston, όπως η αρχικοποίηση, η εναλλαγή λειτουργίας βίντεο (ρύθμιση λειτουργίας DRM) και η διαχείριση μνήμης (GEM για i915 και TTM για Radeon και Nouveau) για κάρτες γραφικών, μπορεί να πραγματοποιηθεί απευθείας μέσω μιας μονάδας σε επίπεδο πυρήνα, εξαλείφοντας την ανάγκη για δικαιώματα υπερχρήστη. Για να διασφαλιστεί η εκτέλεση τυπικών εφαρμογών X11 σε περιβάλλον που βασίζεται στο Wayland, χρησιμοποιείται το στοιχείο XWayland (Device-Dependent X) DDX, το οποίο λειτουργεί παρόμοια με τα Xwin και Xquartz για Win32 και... macOS.
Πηγή: opennet.ru
