Microsoft và Canonical đã hợp tác để bổ sung Systemd cho Windows Subsystem for Linux (WSL), cho phép cài đặt nhiều ứng dụng tương thích hơn. Vì WSL hiện đang sử dụng init làm trình quản lý dịch vụ và hệ thống, các ứng dụng Linux yêu cầu Systemd, chẳng hạn như Snap, microk8s (Kubernetes) và systemctl, không hoạt động chính xác.
Systemd là một ứng dụng phần mềm Linux đóng vai trò là trình quản lý hệ thống và dịch vụ để khởi tạo daemon/dịch vụ trong quá trình khởi động hệ điều hành. Systemd cũng hỗ trợ các công cụ cho phép quản trị viên Linux dễ dàng quản lý và kiểm soát các dịch vụ này sau khi chúng được khởi động.
Microsoft và Canonical đã hợp tác để bổ sung hỗ trợ Systemd cho Windows Subsystem for Linux, cho phép cài đặt nhiều ứng dụng tương thích hơn.
Systemd là một ứng dụng phần mềm Linux đóng vai trò là trình quản lý hệ thống và dịch vụ để khởi tạo daemon/dịch vụ trong quá trình khởi động hệ điều hành. Systemd cũng hỗ trợ các công cụ cho phép quản trị viên Linux dễ dàng quản lý và kiểm soát các dịch vụ này sau khi chúng được khởi động.
Vì Systemd chịu trách nhiệm khởi chạy tất cả các dịch vụ khác, nên nó chạy như quy trình đầu tiên (PID 1) được tạo ra bởi lõi Linux khi khởi động. Sau đó, tất cả các dịch vụ khởi động ban đầu khác sẽ được khởi động và quản lý bởi Systemd, như được hiển thị bởi cây quy trình bên dưới từ Ubuntu.
PSTree trong Ubuntu – Nguồn: BleepingComputer
Vì WSL hiện đang sử dụng init làm trình quản lý dịch vụ và hệ thống, các ứng dụng Linux yêu cầu Systemd, chẳng hạn như Snap, microk8s (Kubernetes) và systemctl, không hoạt động chính xác.
WSL chạy init với tư cách là trình quản lý dịch vụ và hệ thống – Nguồn: BleepingComputer
WSL hiện đã hỗ trợ Systemd
Hôm qua, Microsoft và Canonical đã thông báo rằng phiên bản xem trước mới nhất của Windows Subsystem for Linux trong các bản Windows 11 Insider hiện hỗ trợ Systemd, cho phép bạn cài đặt các ứng dụng yêu cầu trình quản lý dịch vụ.
“Việc hỗ trợ Systemd yêu cầu các thay đổi đối với kiến trúc WSL. Vì Systemd yêu cầu PID 1, quy trình khởi tạo WSL bắt đầu trong bản phân phối Linux trở thành quy trình con của Systemd,” Craig Loewen của Microsoft giải thích trong một thông báo mới .
“Bởi vì quy trình khởi tạo WSL chịu trách nhiệm cung cấp cơ sở hạ tầng để liên lạc giữa các thành phần Linux và Windows, nên việc thay đổi hệ thống phân cấp này yêu cầu xem xét lại một số giả định được thực hiện với quy trình khởi tạo WSL.”
Nếu đang chạy bản dựng Windows 11 Insider, bạn có thể nâng cấp lên bản xem trước WSL 0.67.6 trở lên bằng cách sử dụng lệnh wsl –update . Sau khi cập nhật xong, bạn có thể kiểm tra phiên bản đã cài đặt của mình bằng lệnh wsl –version, như hình bên dưới.
Nâng cấp WSL và kiểm tra phiên bản của nó – Nguồn: BleepingComputer
Bây giờ, bạn cần kích hoạt Systemd bằng cách khởi chạy bản phân phối WSL Linux và thêm các dòng sau vào /etc/wsl.conf:
[boot]
systemd=true
Vì thư mục /etc thuộc quyền sở hữu của root, bạn cần sử dụng sudo với trình chỉnh sửa bảng điều khiển yêu thích của mình để chỉnh sửa tệp. Ví dụ, sudo vi /etc/wsl.conf.
Cần lưu ý rằng quy trình này cần được thực hiện cho mỗi bản phân phối mà bạn muốn kích hoạt Systemd.
Bây giờ hãy đóng cửa sổ bản WSL của bạn và từ dòng lệnh Windows 11 (Command Prompt hoặc PowerShell), hãy tắt các bản phân phối WSL của bạn bằng lệnh wsl.exe –shutdown.
Khởi động lại bản phân phối Linux của bạn và bạn sẽ thấy rằng Systemd đang chạy dưới dạng PID 1, cho biết nó đang chạy dưới dạng trình quản lý hệ thống và dịch vụ cho WSL.
PSTree trong WSL hiển thị systemd đang chạy dưới dạng PID 1 – Nguồn: BleepingComputer
Để biết thêm thông tin về cách Systemd hoạt động trong WSL và cách nó sẽ cho phép bạn chạy nhiều ứng dụng hơn trong WSL, bạn có thể xem video này của Craig Loewen của Microsoft và Oliver Smith của Canonical.
Thông tin thêm:
Windows Subsystem for Linux cho phép các nhà phát triển chạy môi trường GNU/Linux — bao gồm hầu hết các công cụ, tiện ích và ứng dụng dòng lệnh — trực tiếp trên Windows mà không bận tâm về việc tạo, quản lý và cài đặt dualboot setup hoặc máy ảo truyền thống như trước đây.
Bạn có thể:
- Chọn các bản phân phối GNU/Linux yêu thích của bạn từ Microsoft Store.
- Chạy các công cụ dòng lệnh phổ biến như grep, sed, awkhoặc các nhị phân ELF-64 khác.
- Chạy các tập lệnh shell Bash và các ứng dụng dòng lệnh GNU/Linux bao gồm:
- Công cụ: vim, emacs, tmux
- Ngôn ngữ: NodeJS, Javascript, Python, Ruby, C/C++, C# & F#, Rust, Go, v.v.
- Dịch vụ: SSHD, MySQL , Apache, lighttpd, MongoDB, PostgreSQL.
- Cài đặt phần mềm bổ sung bằng trình quản lý gói phân phối GNU/Linux của riêng bạn.
- Gọi các ứng dụng Windows bằng shell dòng lệnh giống như Unix.
- Gọi các ứng dụng GNU/Linux trên Windows.
- Chạy các ứng dụng đồ họa GNU/Linux được tích hợp trực tiếp vào màn hình nền Windows của bạn
- Sử dụng khả năng tăng tốc GPU cho học máy, kịch bản khoa học dữ liệu, v.v.
(Theo Lawrence Abrams)