
Lập trình viên thường không ưa thích PowerShell, và tôi cũng thế.
Lý do không phải vì PowerShell tồi, mà vì số lượng công cụ chạy trên PowerShell không nhiều. Điều này đặc biệt gây khó khăn trong việc phát triển phần mềm trong một nhóm sử dụng nhiều hệ điều hành như Linux/Mac/Windows.
Mới đây, Microsoft giới thiệu một tính năng mới có tên là Windows Subsystem for Linux (WSL).
Tính năng này cho phép bạn sử dụng đồng thời cả Windows và Linux.
Điều này mang ý nghĩa quan trọng đối với tôi (và tôi tin rằng cũng quan trọng với cộng đồng lập trình viên nói chung).
Tôi đã thử chuyển công việc sang dùng WSL từ 6 tháng trước và mọi người đều đặt câu hỏi:
Tại sao không dùng luôn Linux đi, cài thêm WSL làm gì cho máy nặng nề?
WSL có chậm không?
Trước hết, WSL không chỉ là một máy ảo, nó còn là một thế giới song song. Bạn đã bao giờ nghĩ về việc hệ điều hành Windows của bạn là một cánh cửa mở ra vô số tiềm năng chưa?Để thấu hiểu sâu hơn vấn đề, hãy nhớ rằng:'Công nghệ ảo hóa do CPU cung cấp, không chỉ là tính năng của hệ điều hành. Và đôi khi, chỉ có một phần mềm đặc biệt mới thấy rõ sức mạnh này'Ok, hãy cùng nhìn lại các loại máy ảo:Ngoài ra, vì chỉ có một phần mềm được sử dụng công nghệ ảo hóa trong một thời điểm, nên khi bật Hyper-V thì VM-Ware sẽ không hoạt động và ngược lại.
Đến đây, chắc chắn các bạn đã đoán được WSL là dạng máy ảo nào rồi đúng không?
WSL được xem như một máy ảo loại 1, hiệu suất của nó tương đương với việc chạy Windows trực tiếp trên Hyper-V.
Vậy hiệu suất so với việc chạy trên máy vật lý thì ra sao? Bật Hyper-V có làm máy chậm đi không?
Theo quan sát của tôi, không, tôi không thấy có bất kỳ sự khác biệt nào cả.
Nếu bạn không tin, bạn có thể xem kết quả benchmark tại đây:
WSL làm cho docker chạy nhanh hơn
Thực sự, khi chạy container linux với docker, Windows phải thực hiện một số thao tác để mô phỏng môi trường linux. Điều này dẫn đến việc khởi động một container hoặc khởi động docker trở nên chậm chạp.Tuy nhiên, khi sử dụng WSL, mọi thứ trở nên đơn giản hơn. Docker sử dụng WSL để thực hiện phần engine và UI, trong khi vẫn giữ nguyên chạy trên Windows. Điều này khiến cho Docker trên Windows hoạt động nhanh hơn rất nhiều và tiêu tốn ít RAM hơn. Thật tuyệt vời phải không nào!
WSL có sử dụng nhiều RAM không?
Câu trả lời ngắn gọn là không. WSL sử dụng rất ít RAM, chỉ khoảng hơn 200MB. Đừng để Task Manager làm bạn bối rối, số RAM mà Task Manager báo là RAM hệ thống cung cấp cho máy ảo WSL để tránh việc phải cấp phát lại nhiều lần. Số RAM thực tế mà máy ảo sử dụng có thể xem qua lệnh htop.Số lượng RAM này còn ít hơn cả số RAM mà bạn phải dành khi chạy Docker trực tiếp trên Windows, vì vậy có thể coi như không tốn kém gì cả.
Khởi động lại máy mà không cần khởi động lại
Có vẻ như là một ý tưởng kỳ lạ, nhưng thực ra lại rất tiện lợi.Khi bạn muốn khởi động lại môi trường làm việc, chỉ cần khởi động lại dịch vụ LxssManager, khoảng 30 giây là xong, không cần phải chờ đợi màn hình khởi động nữa.
Đôi khi bạn cảm thấy đã cài đặt quá nhiều phần mềm không cần thiết, muốn xóa sạch và cài đặt lại từ đầu, chỉ cần xóa dữ liệu của WSL, không ảnh hưởng đến dữ liệu trong Windows, nhanh chóng và tiện lợi.
VS code tích hợp tốt với WSL
Thật sự là tích hợp đến từng chi tiết, ai dùng VS Code thì thấy thỏa mãn lắm.Nhược điểm khi sử dụng WSL
- Không thể lưu dữ liệu máy ảo trên ổ đĩa khác ổ C. Điều này có nghĩa là nếu máy bạn gặp sự cố và cần cài lại Windows, bạn phải sử dụng đĩa cứu hộ để sao lưu dữ liệu máy ảo trước.
- Không nên sao chép dữ liệu giữa WSL và Windows, do định dạng file khác nhau. Tuy nhiên, việc sao chép các file như pdf, png, jpg và các định dạng khác thì không gặp vấn đề gì.
Kết luận
Trải nghiệm của tôi với WSL trên Windows thực sự tuyệt vời. Với WSL, chúng ta có được những điều tốt nhất từ cả Windows và Linux.Các bạn nên trải nghiệm dần dần và chuyển sang sử dụng WSL nếu có thể.
Từ bây giờ, không còn khái niệm làm phần mềm trên Windows nhàm chán nữa, nói như vậy cũng giống như nói làm phần mềm trên Linux nhàm chán cả. =))
Mọi người hãy chia sẻ trải nghiệm của mình ngay thôi nhé.