Một trong những điều hấp dẫn về Linux là khả năng nhìn thấy các thành phần hệ thống khác nhau. Một trong những thành phần quan trọng nhất của hệ thống Linux là môi trường desktop. Nó cho phép bạn khai thác tối đa máy tính của mình, bằng cách cung cấp một số chức năng như đăng nhập, khởi chạy ứng dụng, hiển thị các widget như bảng điều khiển, v.v… Do đó, nó là một phần mềm phức tạp.
Bài viết hôm nay sẽ giải thích 3 thành phần quan trọng nhất của môi trường desktop: Display Server, Window Manager (trình quản lý cửa sổ) và Login Manager (trình quản lý đăng nhập).
1. Display Server
Display Server là cơ sở của môi trường desktop. Công việc chính của Display Server là xử lý các chức năng vẽ cấp thấp, nghĩa là nó vẽ trực tiếp lên màn hình. Các chương trình đồ họa khác không trực tiếp vẽ trên màn hình; thay vào đó, chúng gửi các yêu cầu vẽ đến Display Server, máy chủ này sẽ vẽ trên màn hình cho chúng.
Nói một cách đơn giản, Display Server cung cấp cho ứng dụng quyền truy cập pixel. Vì vậy, tất cả các ứng dụng cần quyền truy cập pixel sẽ giao tiếp với Display Server. Ví dụ, nếu một ứng dụng muốn tạo một cửa sổ, chúng sẽ yêu cầu Display Server tạo cửa sổ đó. Một ví dụ khác về các ứng dụng yêu cầu quyền truy cập pixel là trình ghi màn hình, chúng lấy dữ liệu màn hình bởi một API do Display Server cung cấp.
Bất kỳ ứng dụng nào phụ thuộc vào Display Server đều được gọi là client. Display Server chịu trách nhiệm quản lý giao tiếp giữa các client và thiết bị phần cứng của nó. Nó gửi tín hiệu về các sự kiện bàn phím và chuột cho client của mình.
Display Server cũng chịu trách nhiệm vẽ đường đi của con trỏ chuột và kiểm soát vị trí của nó.
X11 và Wayland là hai tùy chọn chính của Display Server. X11 cũ hơn nhiều so với Wayland. Trên thực tế, Wayland được phát triển để trở thành tùy chọn kế nhiệm của X11. Tuy nhiên, X11 vẫn được sử dụng rộng rãi trong số các bản phân phối Linux.
Các khái niệm được đề cập ở trên áp dụng cho cả X11 và Wayland. Tuy nhiên, có sự khác biệt lớn trong cách giao tiếp với client giữa chúng. Client của Wayland bị cô lập hơn so với client X11. Do đó, Wayland được coi là an toàn hơn X11.
Có những khác biệt khác mà bạn có thể cân nhắc nếu định chuyển sang Wayland, nhưng trong hầu hết các trường hợp, bạn không cần phải quan tâm đến những khác biệt này. Đó là bởi vì các nhà phát triển ứng dụng sử dụng những bộ công cụ cấp cao (như Gtk+ và Qt) hỗ trợ cả X11 và Wayland. Ngoài ra GNOME và KDE hoạt động với cả X11 và Wayland.
Sau khi hiểu Display Server là gì và nó thực hiện nhiệm vụ gì, hãy chuyển sang thành phần tiếp theo.
2. Window Manager (Trình quản lý cửa sổ)
Chức năng của trình quản lý cửa sổ (đúng như tên gọi của nó) là quản lý các cửa sổ đang mở. Quản lý cửa sổ liên quan đến việc kiểm soát kích thước của các cửa sổ và vị trí của chúng (theo yêu cầu của bạn hoặc các ứng dụng). Vì vậy, bất cứ khi nào bạn bắt đầu kéo một cửa sổ xung quanh hoặc thay đổi kích thước của nó, trình quản lý cửa sổ sẽ chịu trách nhiệm xử lý yêu cầu của bạn.
Hãy nhớ rằng để kéo một cửa sổ, bạn chỉ cần nhấp vào thanh tiêu đề của nó, trong khi để thay đổi kích thước, bạn nhấp và kéo trên các đường viền của cửa sổ đó. Điều đó đưa chúng ta đến chức năng tiếp theo của trình quản lý cửa sổ, đó là vẽ trang trí xung quanh cửa sổ (thanh tiêu đề và đường viền được gọi là trang trí cửa sổ).
Bạn có thể hỏi, tại sao Display Server không xử lý việc quản lý cửa sổ? Vâng, nó có thực hiện việc này. Trong thực tế, trình quản lý cửa sổ làm nhiệm vụ bằng cách giao tiếp với Display Server. Vì việc kiểm soát các cửa sổ và trang trí chúng yêu cầu quyền truy cập pixel, chúng yêu cầu giao tiếp với Display Server. Vì vậy, trình quản lý cửa sổ chỉ hướng dẫn Display Server và Display Server thực hiện các hoạt động thực tế.
Một tính năng quan trọng khác mà trình quản lý cửa sổ có thể có là tính năng tổng hợp cửa sổ. Nếu có tính năng này, thì nó được gọi là trình tổng hợp cửa sổ. Điều đó cho phép các ứng dụng thực hiện một số công việc thú vị, như cho phép làm trong suốt, làm mờ, vẽ bóng cửa sổ, tạo hoạt ảnh cho cửa sổ khi chúng được di chuyển/thu nhỏ/phóng to và áp dụng các hiệu ứng hình ảnh khác.
Ví dụ về trình quản lý cửa sổ
Có rất nhiều tùy chọn có sẵn (không giống như Display Server, chỉ có hai tùy chọn). Những thứ phổ biến nhất là:
- Kwin (đi kèm với KDE).
- Mutter (đi kèm với GNOME).
- Xfwm (trình quản lý cửa sổ của Xfce).
- Muffin (một nhánh của mutter dành cho desktop Cinnamon).
Có nhiều tùy chọn khác có sẵn, một số có sẵn như một phần của môi trường desktop, những tùy chọn khác được phát triển dưới dạng các gói đơn lẻ. Bạn thậm chí có thể sử dụng trình quản lý cửa sổ một mình thay vì một môi trường desktop đầy đủ.
Một số môi trường desktop sẽ cho phép bạn sử dụng trình quản lý cửa sổ của bên thứ ba. Ví dụ, bạn có thể chọn sử dụng Xfce với kwin. Mặc dù GNOME & Cinnamon không hỗ trợ trình quản lý cửa sổ của bên thứ ba (ví dụ, nếu bạn cố gắng thay thế muffin trong phiên Cinnamon bằng trình quản lý cửa sổ khác, bảng điều khiển sẽ biến mất).
Bây giờ bạn đã hiểu về trình quản lý cửa sổ, hãy chuyển sang thành phần tiếp theo.
3. Trình quản lý đăng nhập (hay Display Manager)
Trình quản lý đăng nhập là chương trình đồ họa đầu tiên cung cấp cho bạn danh sách user để bạn chọn một người dùng và đăng nhập. Nó cũng cung cấp cho bạn tùy chọn để chọn môi trường desktop mà bạn muốn. Điều này cho phép bạn chuyển đổi giữa các môi trường desktop đơn giản bằng cách đăng xuất, chọn một môi trường desktop khác và đăng nhập lại. Đó là lý do tại sao trình quản lý đăng nhập được gọi là Display Manager (đừng nhầm với Display Server).
Trình quản lý đăng nhập xác định môi trường desktop hiện được cài đặt bằng cách xem xét thư mục /usr/share/xsessions. Thư mục này chứa một số file .desktop. Mỗi file tương ứng với một trong các môi trường desktop hiện được cài đặt.
Hiện cũng có nhiều trình quản lý đăng nhập. Phổ biến nhất là:
- Gdm (GNOME display manager)
- Kdm (Kde display manager)
- lightdm (Nhiều môi trường desktop và các bản phân phối Linux đi kèm với lightdm vì nó rất dễ tùy chỉnh và linh hoạt).
Ba thành phần nói trên là những thành phần thiết yếu nhất của bất kỳ môi trường desktop nào. Điều đó có nghĩa là để có một môi trường đồ họa giàu chức năng, ít nhất bạn nên cài đặt 3 gói đó. Tuy nhiên, môi trường desktop hoàn chỉnh đi kèm với nhiều gói khác thực hiện nhiều công việc cụ thể hơn.
Các thành phần phổ biến khác của môi trường desktop
Ngoài các thành phần trên, môi trường desktop bạn đang sử dụng có thể chứa các gói sau:
- Trình quản lý hình nền: Chịu trách nhiệm thiết lập hình nền trên desktop.
- Phiên bản trình quản lý file cho desktop: Chịu trách nhiệm hiển thị các biểu tượng trên màn hình, đây là một phần của trình quản lý file được cài đặt trên hệ thống của bạn. Ví dụ, trình quản lý tệp nautilus có "nautilus_desktop" và nemo có "nemo_desktop".
- Khóa màn hình: Nó khóa máy tính của bạn sau một thời gian không sử dụng.
- Trình quản lý mạng: Trình quản lý mạng là thứ quản lý các kết nối Internet và tự động chuyển đổi giữa kết nối WiFi và kết nối có dây. Bản thân chương trình không thêm bất kỳ yếu tố hình ảnh nào vào desktop của bạn, nhưng môi trường desktop phải triển khai GUI cho nó, có thể truy cập từ bảng điều khiển hoặc nơi khác.
- Daemon Notification: Khi một ứng dụng muốn hiển thị một thông báo, nó sẽ gửi thông báo đến daemon Notification để hiển thị nó.
- Tác nhân xác thực Policy Kit: Đây giống như GUI cho sudo. Ứng dụng này xuất hiện khi bạn thực hiện các hành động yêu cầu quyền root như cài đặt phần mềm hoặc áp dụng những bản cập nhật.
- V.v….
Lưu ý rằng việc thiết lập hình nền và hiển thị các biểu tượng trên màn hình được xử lý bởi hai ứng dụng riêng biệt. Ngoài ra, môi trường desktop hoàn chỉnh đi kèm với nhiều gói khác nằm ngoài phạm vi của bài viết này.
Đối với người dùng Linux, biết các thành phần của môi trường desktop là điều cần thiết để khắc phục sự cố. Kiến thức này cũng bắt buộc phải có nếu bạn quyết định xây dựng môi trường desktop của riêng mình.