H2H2WSL là gì (siêu ngắn gọn)
Windows Subsystem for Linux giúp chạy Linux ngay trong Windows mà không cần máy ảo nặng nề. Có 2 thế hệ:
WSL1: Lớp dịch syscall Linux sang Windows. Không VM.
WSL2: Kernel Linux thật trong VM Hyper-V tối ưu.
H2H2Khác biệt cốt lõi
H3H31) Kiến trúc
WSL1: Translation layer. Tích hợp chặt với NTFS, khởi động rất nhanh, tài nguyên thấp.
WSL2: Lightweight VM + kernel Linux thật. Tương thích như Linux “xịn”.
H3H32) Tương thích hệ thống
WSL1: Có giới hạn với một số syscalls, tool nâng cao.
WSL2: Gần như đầy đủ Linux, chạy Docker, systemd, nhiều công cụ kernel-level.
H3H33) Hiệu năng
I/O trong hệ thống file Linux: WSL2 nhanh hơn nhiều lần với các tác vụ Git clone, npm install, build C/C++…
Truy cập file trên Windows (NTFS) từ Linux: WSL1 lại nhỉnh hơn vì không qua VM.
H3H34) Tính năng
GUI app Linux: WSL2 hỗ trợ (W11), tích hợp tốt với Start, taskbar.
Docker: WSL2 chạy “chuẩn chỉnh”. WSL1 hạn chế.
Kernel update: WSL2 cập nhật qua Windows Update.
H3H35) Tài nguyên
WSL1: Nhẹ, ít RAM, gần như “không cảm thấy”.
WSL2: Dùng RAM theo nhu cầu, có cache. Giải phóng khi shutdown instance.
H2H2Bảng so sánh nhanh
Tiêu chí | WSL1 | WSL2 |
---|---|---|
Kiến trúc | Lớp dịch syscall | VM nhẹ + kernel Linux thật |
Tương thích | Hạn chế | Gần như đầy đủ |
I/O trong Linux | Thấp hơn | Cao hơn rõ rệt |
Truy cập file Windows từ Linux | Nhanh hơn | Chậm hơn |
Hỗ trợ GUI app | Không | Có |
Docker/Container | Hạn chế | Đầy đủ |
Tài nguyên | Rất nhẹ | Cao hơn do VM |
Cập nhật kernel | Không | Qua Windows Update |
H2H2Nên chọn cái nào?
Chọn WSL2 nếu bạn:
Dùng Docker, Kubernetes, dev backend hiện đại, data science, AI, build tool nặng.
Muốn gần Linux thật nhất, cần systemd hoặc tool phụ thuộc kernel.
Ưu tiên tốc độ I/O trong Linux (đặt project trong /home).
Chọn WSL1 nếu bạn:
Máy yếu, RAM ít, muốn cực nhẹ.
Làm việc chủ yếu với file nằm trên Windows và cần tốc độ khi truy cập từ Linux.
Có yêu cầu tình huống đặc thù về network hoặc thiết bị serial nhất định.
Tip: Bạn có thể cài cả hai, mỗi distro chọn WSL version khác nhau, linh hoạt theo dự án.
H2H2Thiết lập nhanh (Windows 10/11)
Bật WSL và cài distro:
wsl --install
Chọn WSL2 làm mặc định:
wsl --set-default-version 2
Liệt kê distro và chuyển một distro sang WSL2:
wsl -l -v
wsl --set-version <DistroName> 2
Cập nhật kernel WSL2 khi cần: mở Microsoft Store “WSL” hoặc dùng Windows Update.
Docker Desktop: Bật “Use the WSL 2 based engine” để chạy container mượt mà.
H2H2Mẹo hiệu năng và thực hành tốt
Đặt project ở Linux khi dùng WSL2: ví dụ
/home/username/projects
. Tránh làm việc nặng ở đường dẫn\\\\wsl$
hoặc/mnt/c
.Dùng Node, Python, Ruby, PHP… bản cài trong Linux distro. Hạn chế cross-filesystem.
Tắt bớt service không dùng khi mở systemd để tiết kiệm tài nguyên.
Dọn cache WSL2:
wsl --shutdown
để giải phóng RAM khi cần.VS Code: Dùng “Remote - WSL” để mở folder Linux trực tiếp, giảm overhead.
H2H2Tình huống sử dụng mẫu
Web backend + Docker: WSL2.
Data engineering, ML, compile C/C++: WSL2.
Chỉnh sửa nhiều file trên ổ Windows, script nhẹ: WSL1.
Thiết bị serial chuyên dụng, yêu cầu NTFS-native: Ưu tiên WSL1 hoặc test kỹ trên WSL2.
H2H2FAQ
H3H3WSL2 có nặng máy không?
Bình thường thì không. RAM tăng theo nhu cầu và giải phóng khi wsl --shutdown
. Nếu máy rất ít RAM, cân nhắc WSL1.
H3H3Dùng chung WSL1 và WSL2 được không?
Được. Bạn cài nhiều distro và gán version riêng cho từng distro.
H3H3Vì sao Docker yêu cầu WSL2?
Vì WSL2 có kernel Linux thật, hỗ trợ đầy đủ tính năng container mà Docker cần.
H3H3Truy cập file Windows từ WSL2 chậm, xử lý sao?
Đặt project trong Linux. Chỉ truy cập file Windows khi thực sự cần.
H3H3WSL2 có hỗ trợ systemd không?
Có. Windows 11 đã hỗ trợ systemd trong WSL2. Bật trong file cấu hình wsl nếu cần.
H2H2Kết luận
Nếu bạn là dev hiện đại, muốn môi trường gần Linux thật, chạy Docker/GUI, build nhanh: chọn WSL2.
Nếu bạn ưu tiên siêu nhẹ, thao tác nhiều trên NTFS từ Linux: WSL1 vẫn là lựa chọn gọn gàng.
Bạn có thể bắt đầu với WSL2 làm mặc định. Khi gặp case đặc thù, thêm một distro dùng WSL1 để tối ưu theo dự án.