Azure Linux Desktop: Bản mashup thú vị từ WSLc, WinUI Reactor và Azure Linux 4.0
Một dự án thử nghiệm thú vị đã biến Azure Linux 4.0 thành một môi trường desktop chạy ngay trong cửa sổ Windows, tận dụng các công nghệ mới nhất từ Microsoft Build 2026 như WSLc và WinUI Reactor.

Một nhà phát triển đã tạo ra một ứng dụng Windows nhỏ gọn nhưng đầy ấn tượng có tên gọi Azure Linux "Desktop". Đây thực chất là một bản "mashup" (kết hợp) các công nghệ mới nổi từ Microsoft Build 2026, cho phép khởi chạy một môi trường desktop Linux hoàn chỉnh ngay trong một cửa sổ trên Windows.
Azure Linux Desktop
Ứng dụng này hoạt động đơn giản: bạn chỉ cần mở nó, một container Linux được nhúng sẽ khởi động và chỉ vài giây sau, bạn sẽ thấy giao diện desktop XFCE được tùy chỉnh dựa trên Azure Linux 4.0. Mọi thứ từ âm thanh, tăng tốc GPU, sao chép và dán văn bản cho đến việc thay đổi kích thước cửa sổ đều hoạt động mượt mà. Không có nút bấm phức tạp, không có trình hướng dẫn cài đặt, cũng không cần sử dụng terminal.
Bốn thành phần cốt lõi từ Build 2026
Dự án này là sự kết hợp của bốn công nghệ chính mà Microsoft đã giới thiệu hoặc phát triển:
1. wslc container API
wslc là runtime container Linux mới dành cho Windows. Nó cho phép chạy các container OCI trực tiếp trên Windows thông qua CLI và API. Ứng dụng này sử dụng API để tạo phiên, tải hình ảnh, tạo container với ánh xạ cổng và khởi động nó. Hiện tại, wslc chưa có mặt chính thức trong WSL ổn định, nhưng mã nguồn đã có sẵn để biên dịch từ nhánh chính.
2. WinUI Reactor (không XAML)
Ứng dụng được xây dựng dưới dạng Microsoft UI Reactor. Đây là cách tiếp cận "code-first" để xây dựng giao diện WinUI 3: bạn viết UI dưới dạng các hàm có thể kết hợp và state hooks trong C#, tương tự như React, thay vì viết các tệp XAML. Toàn bộ giao diện từ thanh tiêu đề, màn hình khởi động đến bề mặt desktop đều được xây dựng trong App.cs mà không cần một tệp .xaml nào.
3. Azure Linux 4.0
Azure Linux 4.0 là hình ảnh cơ sở (base image). Đây là bản phân phối Linux của Microsoft, với phiên bản 4.0 được xây dựng từ snapshot của Fedora Linux 43. Vì Azure Linux vốn là bản phân phối dành cho máy chủ và container nên không có gói desktop hay GUI. Tuy nhiên, nhờ vào nguồn gốc Fedora 43, tác giả đã có thể trỏ đến các kho lưu trữ của Fedora 43 và cài đặt XFCE vào đó.
4. .NET 10
Ứng dụng nhắm đến .NET 10 và WinUI 3, được đóng gói thông qua Windows App SDK. Lệnh dotnet run khởi chạy ứng dụng với định danh gói, ReadyToRun biên dịch trước để khởi động nhanh hơn, và một lệnh publish duy nhất tạo ra bản build x64 hoặc ARM64.
Cơ chế hoạt động
Quy trình hoạt động của ứng dụng diễn ra cực kỳ nhanh gọn:
- Ứng dụng mở ra màn hình khởi động với logo Azure Linux và vòng xoay tải.
- Ngay sau lớp giao diện đó, ứng dụng đảm bảo hình ảnh desktop tồn tại (xây dựng nó nếu là lần chạy đầu tiên).
- Nó yêu cầu
wslckhởi động container. - Container chạy XFCE phía sau một máy chủ XRDP.
- Ứng dụng kết nối đến máy chủ đó qua loopback, đặt client RDP của Windows lên trên cửa sổ.
- Khi phiên làm việc hiển thị trên màn hình, nó gỡ bỏ trang khởi động. Lúc này, cửa sổ ứng dụng trở thành desktop Linux.
Các kỹ thuật "hack" thú vị
Để ghép nối các thành phần này với nhau, tác giả đã sử dụng một số kỹ thuật kỹ thuật khá độc đáo:
- Vòng xoay khởi động (Boot spinner): Không phải là ảnh GIF. Nó được xây dựng từ các hình ảnh composition thô, với mỗi chấm là một sprite có độ trễ thời gian riêng để tạo hiệu ứng quỹ đạo giống hệt vòng xoay khi khởi động Windows thật.
- Host RDP control dưới WinUI: Bề mặt desktop thực chất là điều khiển ActiveX
mstscax.dll(client RDP của Windows). Việc khiến nó vẽ bên trong cửa sổ WinUI rất khó khăn. Giải pháp là đặt nó trong một cửa sổ WinForms không viền, thuộc sở hữu của cửa sổ chính, và "dán" nó lên một hình chữ nhật giữ chỗ bằng một bộ hẹn giờ theo dõi vị trí cửa sổ. - Đồng bộ hóa thời gian: Ứng dụng chuyển đổi ID múi giờ của Windows sang tên IANA và trỏ lại
/etc/localtimekhi khởi động container để đồng hồ desktop khớp với máy chủ.
Một số lưu ý khi xây dựng
Dự án này mang tính chất thử nghiệm (toy) và đòi hỏi một số bước tùy chỉnh phức tạp:
- Biểu tượng SVG: Fedora 43 đã loại bỏ bộ tải gdk-pixbuf librsvg. Giải pháp là raster hóa mọi biểu tượng SVG thành PNG trong quá trình xây dựng hình ảnh.
- Âm thanh qua RDP: Cần biên dịch module
pipewire-module-xrdpđể âm thanh hoạt động trong phiên container ảo. - Chủ đề hoài niệm: Desktop XFCE sử dụng bản tái tạo của chủ đề Bluecurve, giao diện mà Red Hat từng tung ra vào năm 2002.
Đây là một minh chứng ấn tượng cho thấy sức mạnh của mã nguồn mở và các công cụ phát triển mới của Microsoft, biến ý tưởng "Linux desktop trong một cửa sổ trên Windows" thành hiện thực mà không cần dùng đến XAML truyền thống.
Bài viết liên quan

Phần mềm
GitLab cắt giảm 14% nhân sự để tái cấu trúc hạ tầng phục vụ AI
03 tháng 6, 2026

Công nghệ
CEO Palantir: 10% thế giới "ghét chúng tôi một cách chuyên nghiệp"
05 tháng 5, 2026

Công nghệ
Nintendo bất ngờ công bố Star Fox mới cho Switch 2: Bản làm lại hiện đại của huyền thoại không gian
06 tháng 5, 2026
