Những điều cần biết khi sử dụng Linux với Wayland

Các khía cạnh của desktop Linux luôn thay đổi, nhưng một số thành phần đã tồn tại trong nhiều thập kỷ. Chẳng hạn như hệ thống X Window (hay thường được gọi là X). Một sự thay thế nhanh và bảo mật hơn đang được tạo ra. Sự thay thế đó là Wayland.

Wayland đã xuất hiện từ lâu và một số hệ điều hành dựa trên Linux đã chấp nhận nó như giao thức máy chủ hiển thị mặc định. Sau đây là ý nghĩa của việc sử dụng Linux với Wayland.

Wayland là gì?

Wayland là gì?

Wayland là một giao thức cho các chương trình biết chúng sẽ xuất hiện như thế nào trên màn hình, dựa trên hành động (chẳng hạn như di chuyển cửa sổ xung quanh hoặc nhấp vào nút). Về mặt kỹ thuật, Wayland không phải là sự thay thế cho server X. Wayland chỉ xác định cách thức trong đó display server (máy chủ hiển thị - chương trình có nhiệm vụ chính là điều phối đầu vào và đầu ra của các máy khách đến và từ phần còn lại của hệ điều hành hay phần cứng) sẽ giao tiếp với các ứng dụng.

Wayland dựa vào một bên thứ ba, được gọi là Wayland compositor, đóng vai trò như một display server. Một số ví dụ bao gồm Mutter và KWin (của desktop GNOME và KDE Plasma tương ứng). Wayland cố gắng đơn giản hóa thông tin liên lạc của display server, giúp việc phát triển trong tương lai dễ dàng và nhanh chóng hơn.

Giống như nhiều công nghệ trong tương lai, Wayland vẫn còn trong giai đoạn sơ khai. X đã có từ lâu và được phát triển đều đặn. Điều đó có nghĩa là Wayland có rất nhiều việc phải làm (cùng với các display server). Bây giờ, có một vài điều cần biết để làm cho việc thử nghiệm Wayland mượt mà hơn nhiều.

Wayland hoạt động như thế nào?

Display server cung cấp thông tin cho kernel và phần cứng đồ họa để chúng có thể nhanh chóng chuyển mọi thứ lên màn hình. Chúng nhận được thông tin này thông qua các ứng dụng giao tiếp với chúng bằng những giao thức tương ứng. Ví dụ, một ứng dụng được thiết kế để hoạt động với X không thể giao tiếp với Wayland server.

Display server Wayland
Display server Wayland

Wayland giải quyết vấn đề này thông qua một thứ gọi là XWayland, hoạt động như một lớp tương thích cho phép tương tác X client-server được chuyển thành thứ gì đó mà Wayland có thể “hiểu được”.

Ở Wayland, server và compositor là một và giống nhau. Mọi môi trường desktop sử dụng Wayland đều thực hiện lệnh gọi đến thư viện triển khai giao thức Wayland để vẽ các hiệu ứng, chẳng hạn như độ trong suốt, làm mờ cửa sổ, hoạt ảnh chuyển tiếp và đổ bóng, mang lại cảm giác về kích thước cho cửa sổ.

Wayland đưa tất cả các chức năng này đến gần kernel hơn, và bạn sẽ thường cảm nhận được điều đó qua “độ mượt mà” mà bạn trải nghiệm trong môi trường đồ họa.

Thay vì vẽ thông qua việc sử dụng phần mềm của bên thứ ba, Wayland gọi cái được gọi là Direct Rendering Manager (DRM) buffer trong kernel để vẽ mọi thứ.

Bạn có thể nhận thấy rằng ở Wayland, các bước đơn giản hơn nhiều và quy trình diễn ra dễ dàng. Điều này dẫn đến hiệu suất cao hơn trong các tình huống cần cường độ cao về đồ họa và giúp các nhà phát triển tạo những ứng dụng chạy theo giao thức này dễ dàng hơn.

Tránh các ứng dụng GTK+ 2 hoặc Qt 4 trên Wayland

Hầu hết các ứng dụng Linux mà bạn tương tác hàng ngày được viết bằng 1 trong 2 bộ công cụ đồ họa: GTK+ và Qt. Các framework này hoạt động như những client đối với display server, yêu cầu mọi thứ được kéo lên trên màn hình. Tuy nhiên, những yêu cầu này cần được tìm hiểu trước tiên và đó là điều mà bộ công cụ thực hiện.

Kết quả là, chỉ một số loại chương trình thực sự có thể chạy trên desktop Wayland. Ví dụ, các chương trình GTK+ 3 hay những phần mềm được viết bằng Qt 5 (bộ công cụ mà desktop Plasma dựa trên) có thể chạy đúng cách.

Giả sử, nếu bạn cố gắng mở, một ứng dụng Qt 4, nó vẫn sẽ chạy. Wayland thực hiện điều này bằng cách chạy server X, để lắng nghe các ứng dụng mà nó không thể hiểu được. Tuy nhiên, điều này có thể dẫn đến việc sử dụng bộ nhớ cao hơn và tốc độ thấp hơn một chút. Thêm vào đó, có một số điều mà cách tiếp cận này không thể thực hiện được vào thời điểm hiện tại.

Một số ứng dụng không tương thích với Wayland

Một số ứng dụng không tương thích với Wayland

Wayland và X được thiết kế theo những cách khác nhau, vì vậy một số ứng dụng hoạt động với X không thể chạy trên Wayland.

Hãy xem xét các ứng dụng chuyển màu màn hình như Redshift và f.lux. Các ứng dụng này lọc ánh sáng xanh từ màn hình dựa trên thời gian trong ngày. Chúng hoạt động bằng cách sử dụng các tiện ích mở rộng X, chẳng hạn như RandR, cung cấp cho những chương trình một cách dễ dàng để yêu cầu X thay đổi màn hình hiển thị.

Mặc dù Wayland cũng cung cấp các phương tiện để tái tạo phần nào khả năng này, nhưng nó lại phụ thuộc vào từng Wayland compositor khi thực hiện điều đó. Điều này có nghĩa là trong khi môi trường desktop có thể hỗ trợ một thứ gì đó như Redshift (chẳng hạn như tính năng GNOME Night Light ở trên), thì chức năng đó không nhất thiết sẽ có ở nơi khác.

Bạn có thể gặp phải các vấn đề tương tự với phần mềm ghi màn hình. Là một tính năng bảo mật, display server của Wayland chặn các ứng dụng ghi màn hình. Nghĩa là việc ghi lại màn hình về cơ bản là không thể trên Wayland. Các nhà phát triển đang làm việc để thực hiện tính năng này theo một cách khác.

Compositing là điều bắt buộc

Compositing là một kỹ thuật giúp ngăn ngừa hiện tượng méo và rách hình. Điều này được thực hiện bằng cách giữ các bản sao màn hình trong bộ nhớ, thường là với sự trợ giúp của card đồ họa. Bằng cách này, ngay cả khi các ứng dụng ngừng đáp ứng, display server vẫn sẽ có một cái gì đó để làm việc cùng.

Wayland được thiết kế để làm cho quá trình này hiệu quả hơn nhiều so với X bằng cách biến compositing trở thành điều kiện bắt buộc. X coi compositing là một tính năng tùy chọn, thông qua một tiện ích mở rộng được gọi là Xcomposite. Nhưng do cách thực hiện, nên nó mất nhiều thời gian hơn một chút so với Wayland.

Nhưng compositing có thể dẫn đến một số vấn đề. Compositing dẫn đến hiệu suất thấp hơn một chút đối với các chương trình như game. Trong X, hầu hết các desktop vô hiệu hóa compositing khi ứng dụng ở chế độ toàn màn hình. Nhưng nhiều Wayland compositor vẫn cần phải thực hiện điều này. Nếu bạn quan tâm đến việc sử dụng các chương trình chuyên sâu về đồ họa trên desktop Wayland, thì điều này khá quan trọng và cần ghi nhớ.

Card đồ họa Nvidia có thể không hoạt động với Wayland

Cụ thể hơn, nếu bạn sử dụng driver đồ họa độc quyền của Nvidia, Wayland có thể sẽ không hoạt động. Điều này có liên quan đến vấn đề compositing ở trên. Để làm cho quá trình này hoạt động, driver đồ họa phải giao tiếp với các Wayland compositor theo một cách nhất định.

Các card đồ họa của Intel và AMD không có vấn đề gì, vì chúng sử dụng tiêu chuẩn, được gọi là GBM (Generic Buffer Management). Nvidia tin rằng cách giao tiếp của hãng này với Wayland, được gọi là EGL, sẽ tốt hơn và gắn bó với nó.

Vấn đề này có thể được giải quyết theo hai cách: Driver Nvidia triển khai GBM hoặc Wayland compositor triển khai EGLStreams. Hiện tại, Nvidia dường như không quan tâm đến việc theo đuổi giải pháp cũ.

Cách sử dụng Wayland

Tại thời điểm này, hầu hết các bản phân phối Linux đều cung cấp cho bạn tùy chọn cài đặt Wayland, nhưng hầu hết vẫn chạy X theo mặc định. Bạn có thể tìm kiếm Wayland trong kho lưu trữ của distro, đăng xuất khỏi desktop và chọn Wayland khi đăng nhập lại.

Fedora là một trong những bản phát hành sớm nhất để nắm bắt xu hướng này và đã chạy Wayland theo mặc định trong một vài năm nay. Fedora được biết đến với việc sử dụng các công nghệ mới nhất mà desktop Linux cung cấp, đồng thời cũng khá hữu dụng. Nhưng Fedora không đơn độc.

Một số distro cung cấp Wayland theo mặc định

  • Fedora
  • Debian
  • openSUSE Tumbleweed
  • PureOS
  • Red Hat Enterprise Linux
  • SUSE Enterprise Linux

Tại sao không có nhiều bản phân phối thực hiện việc chuyển đổi nhỉ? Nhiều người đang chờ đợi một vài vấn đề nữa được làm sáng tỏ. Rất nhiều người mong đợi sử dụng driver đồ họa độc quyền của Nvidia, để có được trải nghiệm chơi game tối ưu nhất. Một số người muốn ghi lại màn hình của họ để tạo podcast hoặc truyền phát video trực tuyến.

Display server không phải là thứ mà hầu hết người dùng chú ý, nên các distro không muốn giới thiệu những vấn đề như vậy để đổi lấy lợi ích, trong khi thực tế, chúng vẫn âm thầm tồn tại ở phía sau. Và nếu bạn cố gắng sửa chữa mọi thứ bằng remote desktop, thì việc này cũng chưa chắc sẽ hoạt động trong Wayland.

Thứ Ba, 31/12/2019 08:06
54 👨 4.593
0 Bình luận
Sắp xếp theo
    ❖ Linux