Bỏ qua đến nội dung chính
Về trang chủ
Tech tools-cli 6 phút đọc

yserver: Máy Chủ X11 Hiện Đại Viết Lại Từ Đầu Bằng Rust – Tương Lai Mới Cho Linux? 🚀🦀

yserver là một máy chủ X11 hiện đại, được phát triển lại hoàn toàn bằng Rust từ đầu, tập trung vào việc loại bỏ các "di sản" cũ để mang lại trải nghiệm desktop mượt mà, nhẹ nhàng và an toàn hơn trên các hệ điều hành Linux và BSD.

Tier 1 · nguồn 99% độ tin cậy Auto-priority
Nguồn gốc github.com

Bạn đã bao giờ nghĩ đến việc xây dựng lại một thành phần cốt lõi của hệ thống hiển thị Linux như X11 từ đầu chưa? Joske và đội ngũ của mình đã làm điều đó với yserver! 🤯 Đây là một máy chủ X11 được viết lại hoàn toàn bằng ngôn ngữ Rust, mang đến một cách tiếp cận hiện đại để chạy các môi trường desktop, trình quản lý cửa sổ và ứng dụng X11 truyền thống trên Linux và BSD ngày nay, đồng thời loại bỏ những gánh nặng lịch sử không cần thiết. Một dự án đầy tham vọng và đáng chú ý! ✨

Triết Lý Thiết Kế

Triết lý thiết kế của yserver rất rõ ràng và mạnh mẽ: KHÔNG nhằm mục đích sao chép hoàn toàn Xorg. Thay vào đó, nó hướng tới việc cung cấp một máy chủ X11 thực tế, nhẹ nhàng, có khả năng vận hành các môi trường desktop, trình quản lý cửa sổ và ứng dụng đồ họa trên các hệ điều hành Linux và BSD hiện đại. Để đạt được điều này, yserver đã "mạnh dạn" loại bỏ hàng loạt các "hành lý" lỗi thời từ quá khứ, bao gồm:

* Các hình ảnh không phải TrueColor (Non-TrueColor visuals). * Indirect GLX (OpenGL Extension cho X Window System) – vốn thường không được dùng hoặc gây chậm trễ. * ABI (Application Binary Interface) trình điều khiển DDX (Device-Dependent X) cũ. * Các client có thứ tự byte đảo ngược (Endian-swapped clients).

Các Tính Năng Chính & Tình Trạng Hiện Tại

Dù còn mới mẻ, yserver đã thể hiện nhiều tính năng vượt trội:

* DRM/KMS Độc Lập: Có khả năng chạy độc lập với Direct Rendering Manager/Kernel ModeSetting, cho phép hoạt động mượt mà các desktop môi trường như MATE, XFCE và Cinnamon ngay lập tức. 🖥️ * Quản Lý Ghế Ngồi (Seat Management): Tích hợp với libseat khi có sẵn để quản lý các phiên người dùng, hoặc điều khiển trực tiếp Atomic KMS (yêu cầu quyền truy cập vào /dev/dri//dev/input/). * Hỗ Trợ Nền Tảng Rộng: Tương thích hoàn toàn với Linux (bao gồm Alpine với musl libc) và FreeBSD. * Tính Năng Hiển Thị Nâng Cao: Hỗ trợ cắm nóng màn hình (display hotplugging), hiệu chỉnh gamma RANDR (ví dụ qua Redshift), và chuyển đổi VT ở chế độ trực tiếp. * Bảo Mật Tăng Cường: Hỗ trợ xauth cho các socket Unix và loại bỏ hỗ trợ ACL xhost cũ kỹ, giúp cải thiện đáng kể tư thế bảo mật. 🔒

Các Tiện Ích Mở Rộng X11 Được Hỗ Trợ

yserver cũng không ngừng mở rộng khả năng tương thích bằng cách hỗ trợ nhiều tiện ích mở rộng X11 quan trọng:

* BIG-REQUESTS * Composite, DAMAGE, DPMS, DRI3 * GLX * Generic Event Extension * MIT-SCREEN-SAVER, MIT-SHM * Present * RANDR, RENDER * SHAPE, SYNC * X-Resource, XFIXES, XINERAMA, XInputExtension * XC-MISC (với tính năng tái sử dụng XID) * XKEYBOARD (với khả năng thay đổi bố cục bàn phím và điều khiển trạng thái LED khi đang chạy)

Về GLX_EXT_texture_from_pixmap (TFP)

Đây là một điểm đáng chú ý:

* Được Hỗ Trợ & Thử Nghiệm: Hoạt động hoàn hảo trên các nền tảng AMD, Intel, Asahi và Qualcomm. Điều này cho phép các trình tổng hợp 3D nhẹ như Compiz hoạt động tốt. ✨ * Khả Năng Tương Thích NVIDIA: Sẽ KHÔNG BAO GIỜ hoạt động với trình điều khiển độc quyền của NVIDIA. Trình điều khiển mã nguồn mở nouveau hiện chưa được thử nghiệm nhưng có thể hoạt động trên các card đồ họa đời cũ hơn.

Môi Trường & Phần Cứng Đã Thử Nghiệm

Để đảm bảo sự ổn định, yserver đã được thử nghiệm rộng rãi trên nhiều môi trường và phần cứng khác nhau:

Trình Quản Lý Cửa Sổ & Môi Trường Desktop Đã Thử Nghiệm

* Cinnamon, MATE, XFCE * FVWM3, wmaker (Window Maker), openbox, awesome, icewm, blackbox, bspwm/sxhkd * picom, compiz * Enlightenment (e16 và e27)

Nền Tảng Phần Cứng Đã Thử Nghiệm

* AMD: Ryzen 9 6900HX (Rembrandt, RDNA2, RADV); i9 13900k + RX580 (Polaris/GCN4, RADV). * Intel: i5-7200U (Kaby Lake, ANV) iGPU. * NVIDIA: i5 6500 với GTX 1050 (trình điều khiển độc quyền - có hạn chế). * Snapdragon X1: X1E80100 (Adreno X1, Turnip). * Apple Silicon: M1 MacBook Air, M2 MacBook Pro chạy Asahi Linux (apple-drm KMS + asahi GPU, Mesa AGX-V). * Ảo Hóa: virtio-gpu trong virtme-ng (Venus passthrough). * FreeBSD: Đã xác minh hoạt động trên Intel i9 (GhostBSD).

Hướng Dẫn Sử Dụng, Phím Tắt & Cấu Hình LightDM

Sử dụng yserver khá đơn giản, và nó cung cấp các phím tắt tiện lợi cùng khả năng tích hợp với Display Manager như LightDM.

Chạy Trực Tiếp Từ TTY

Chuyển đến một TTY trống và chạy:

bash just startx

Lệnh này sẽ khởi động yserver và thực thi tệp ~/.xinitrc của bạn (hoặc mặc định là /etc/X11/xinit/xinitrc).

Các Phím Tắt Tiện Lợi Tích Hợp

* Ctrl-Alt-Backspace: Tắt máy chủ ngay lập tức và quay trở lại console. ⚡ * Ctrl-Alt-Enter: Lưu ảnh chụp màn hình/scanout của framebuffer vào thư mục làm việc hiện tại (CWD). 📸 * Ctrl-Alt-F12: Xuất tất cả các "drawable" đang hoạt động dưới dạng tệp PPM vào CWD để gỡ lỗi. 🐛

Chạy Với Trình Quản Lý Hiển Thị (LightDM)

Không giống như GDM hay SDDM, LightDM cho phép cấu hình lệnh máy chủ X tùy chỉnh:

1. Cài đặt tệp nhị phân vào /usr/local/bin/yserver:

bash just install

2. Tạo tệp cấu hình /etc/lightdm/lightdm.conf.d/99-yserver.conf:

ini [Seat:*] xserver-command = /usr/local/bin/yserver

3. Khởi động lại LightDM từ một TTY trống:

bash sudo systemctl restart lightdm

Tuân Thủ Giao Thức & Kiểm Thử

Để đảm bảo độ tin cậy và khả năng tương thích ứng dụng cao, yserver đo lường sự hoàn chỉnh của mình bằng cách sử dụng các bộ kiểm tra tiêu chuẩn ngành như X.Org X Test Suite (xts5)rendercheck. Điều này cho thấy cam kết của dự án đối với chất lượng và sự ổn định. ✅