Tại sao lại dùng WSL, Nó có lợi ích gì tới bát cơm của bạn . ...
Summary
Việc có thể tận dụng sức mạnh của Windows và Linux thật sự là tuyệt vời, ko gì bàn cãi về việc này cả. Như việc Microsoft hứa sẽ support mình sử dụng GPU trên WSL thật sự đối với với mình là một điều tuyệt vời vì nó cho phép mình chạy được Tensorflow với docker và windows luôn. Quá sướng!
Là một fullstack, bạn phải đảm bảo rằng mình được trang bị tận răng, đụng đâu chơi đó đều được. Hãy tưởng tượng bạn có một ngày buổi sáng thì code python, build docker ầm ầm, gặp task design thì mở photoshop lên quất, chiều chém gió khách hàng thì có Office, tối về đi code kiếm cơm hay cày game thì cũng chính là một con máy đó.
WSL rất nhanh và nhanh hơn máy ảo
VirtualBox
Máy ảo tạo ra một môi trường bên trong hệ thống của bạn hoạt động như một hệ thống ảo riêng biệt với tất cả các thành phần phần cứng như CPU, RAM, Bộ nhớ với sự trợ giúp của Hyper Visors. Tuy WSL2 ra đời để tối ưu GUI(Điểm khuyết thiếu của WSL1), nhưng vẫn không tốt bằng máy ảo. Vì khởi động như một hệ điều hành trong một hệ điều hành nên khởi động của VirtualBox chậm và hiệu suất không tốt. Đặc biệt, bộ nhớ của VirtualBox phải giống như 1 hệ điều hành thực thụ, có nghxia ra window 10 bạn 60GB mới chạy được thì VirtualBox cũng vậy.
Wsl
Máy ảo có thể chạy giao diện đồ họa đầy đủ vì bản thân môi trường là một không gian làm việc Linux chính thức. Máy ảo như một BOX cô lập. Bạn không truy cập được bộ nhớ ngoài máy ảo. Còn WSl2 ra đời để làm điều này. WSl mặc định chưa có GUI, ăn rất ít ram, thường là 200-300MB. WSl2 mình không rõ bộ nhớ được quản lý thế nào, nhưng hình như nó dãn nở được và có thể thao tác từ window vào được 😎
VS code hỗ trợ WSL tận răng và sự ra đời của WSL2
Điều đó nghĩa là gì?. Điều đó có nghĩa là Microsoft thực sự để tầm tới tầm quan trọng cho linux. Hiểu nỗi khổ khi lập trình viên phải dualboot window và linux. Khi bạn muốn chạy backend nhanh mượt mà lại phải cùng lúc design thiết kế trên các ứng dụng của adobe.
WSL 2 là một phiên bản mới của kiến trúc trong WSL thay đổi cách các bản phân phối Linux tương tác với Windows. WSL 2 có các mục tiêu chính là tăng hiệu suất hệ thống tệp và bổ sung khả năng tương thích kết nối toàn hệ thống. Mỗi bản phân phối Linux có thể chạy dưới dạng WSL 1 hoặc WSL 2 và có thể được chuyển đổi giữa các phiên bản bất kỳ lúc nào. WSL 2 là một cuộc đại tu lớn của kiến trúc cơ bản và sử dụng công nghệ ảo hóa và nhân Linux để kích hoạt các tính năng mới của nó.
WSL 2 chỉ có trên các bản Windows 10, Version 2004, Build 19041 trở đi. Việc triển khai WSL2 loại bỏ được bất kỳ nhược điểm nào mà WSL1 mắc phải khi mới ra mắt.
WSL2 thực sự là một máy ảo nhẹ dựa trên dịch vụ ảo hóa phần cứng Hyper-V của Microsoft. WSL2 tốt hơn WSL1 như thế nào:
- Một nhân Linux thực tế
- Khả năng cuộc gọi toàn hệ thống
- Hiệu suất Socket/Mạng
- Hiệu suất hệ thống tệp
Ví dụ, sự sẵn có của một Linux Kernal cho phép người dùng thực thi các tác vụ với khả năng tương thích cuộc gọi toàn hệ thống. Vì vậy, nền tảng này trở nên mạnh mẽ hơn nhiều để xử lý các ứng dụng dựa trên Linux. Ngoài ra, các dịch vụ như Docker và fuse sẽ tương thích.
Hiệu suất tệp I/O được cải thiện nhiều. Do đó, các thao tác như apt-installs, npm installs sẽ nhanh hơn. Hơn nữa, đây là trường hợp cho tất cả các dịch vụ đọc và ghi.
(Ghi chú: Microsoft đã đề cập đến tốc độ tệp chéo hệ điều hành chậm hơn trong các bản dựng ban đầu. Đơn giản là WSL2 ngầu hơn, tốt hơn và hỗ trợ dài lâu hơn WSL1)
WSL khiến docker chạy nhanh hơn
WSL 2 thì nó chạy linux kernel thật trên HyperV luôn chứ k phải giả lập lại kernel. Docker có phiên bản phát triển riêng cho WSL 2 nên yên tâm, giờ là bản preview có thể chưa ngon nhưng có bọn nó maintain thì sau này k vấn đề gì.
Khi chạy linux container với docker, Windows phải làm một số thứ để giả lập môi trường linux. Điều này khiến việc start một container hoặc khởi động docker cũng rất ì ạch.
Nhưng khi đã có WSL thì mọi chuyện trở nên dễ dàng hơn. Docker sử dụng WSL để chạy phần engine và UI thì vẫn chạy trên windows. Điều này khiến cho Docker trên windows nhanh hơn rất rất nhiều và tốn ít ram hơn. 😉
Dành cho ai chưa biết WSL là gì
Vì sao mình lại để phần này ở cuối cùng. VÌ lên search mạng bạn sẽ thấy rất nhiều bài viết về cách cài đặt WSl. Nhiều bạn như mình trái ngành sang thậm chí còn chưa dùng ubuntu bao giờ. Sao biết khi nhét một con thú hoang vào một con thú hoang vào thì sẽ có chuyện gì xảy ra 😉
Thông thường, để sử dụng các lệnh trong Linux, có thể chúng ta sẽ phải cài đặt Linux song song Windows hoặc sử dụng máy ảo như VirtualBox hoặc VMware Workstation. Kể từ bản Windows 10 1607 ( build 16215) trở đi, chúng ta đã có thể chạy Linux trên Windows 10 trực tiếp mà không cần cài đặt song song hoặc phải sử dụng máy ảo. Windows Subsystem For
Linux (WSL) là một công cụ của Microsoft để chạy Linux nguyên bản trên Windows. Nó được thiết kế để trở thành một trải nghiệm liền mạch, về cơ bản cung cấp một trình bao Linux đầy đủ có thể giao tiếp với hệ thống tệp Windows của bạn.
Terminal của các bản Ubuntu này cung cấp đầy đủ các tập lệnh để chúng ta quản lý tập tin, quản lý source code, compile source code, … và rất rất nhiều công việc khác. Chúng ta có thể sử dụng ssh, git, apt và dpkg và rất nhiều tools khác như chạy trên một máy Ubuntu server thực sự.Một số lưu ý mà Microsoft liệt kê có thể làm với WSL:
- Chọn sử dụng distro Linux từ Microsoft Store: Hiện giờ đang có Ubuntu, Debian, OpenSuSe hay thậm chí là Kali …chúng đều là các Distro Linux rất gọn nhẹ.
- Chạy được từ dòng lệnh các lệnh linux như ls, grep, sed … hoặc bất kỳ chương trình nhị phân 64 bit (ELF-64) nào của Linux
- Chạy được các công cụ như: vim, emacs …; các ngôn ngữ lập trình như NodeJS, JavaScript, C/C++, C# …, các dịch vụ như MySQL, Apache, lighthttpd …
- Có thể thực hiện cài đặt các gói từ trình quản lý gói của Distro đó (như lệnh apt trên Ubuntu)
- Từ Windows có thể chạy các ứng dụng Linux (dòng lệnh)
- Từ Linux có thể gọi ứng dụng của Windows
Vì đã có rất nhiều bài viết về cách cài đặt WSl rồi nên mình sẽ chỉ lưu ý một vài điểm nhỏ sau:
- Hyper-V feature is required . Mà cái feature này lại không có trên Windows 10 Home.
- Sử dụng SDD,CPU I5 và ram trên 16gb nhé, 8gb cần ống thở đấy 🤣
- Có thể giới hạn số RAM, CPU với WSL
Config file .wslconfig:
[wsl2]
memory=6GB
swap=2GB
localhostForwarding=true
Không nên chọn WSL/WSL2 khi nào?
- Bạn yêu cầu tất cả sức mạnh và tính năng của Linux.
- Đối với Quy mô lớn hơn, về mặt này, máy chủ linux đáng tin cậy hơn
- GUI (Giao diện người dùng đồ họa)
- Khối lượng công việc chuyên sâu về đồ họa hoặc mạng.
- Không hỗ trợ lưu dữ liệu máy ảo trên ổ đĩa khác ổ C. Điều này có nghĩa nếu máy bạn lỗi, cần cài lại win thì bạn liệu mà dùng đĩa cứu hộ vào ổ C mà copy file máy ảo ra trước.
- Không nên copy file qua lại giữa WSL và windows, tại định dạng file khác nhau, copy file text qua lại bọn nó không hiểu. Nhưng copy các file định dạng khác như pdf, png, jpg các thứ thì thoải mái.
Khi nào thì chọn WSL/WSL2?
- Thích sử dụng các lệnh Linux cơ bản.
- Phần cứng hạn chế
- Bạn cần bộ nhớ/hiệu quả lưu trữ.
- Không muốn đối phó với những rắc rối của cài đặt/quản lý/chi phí của một máy ảo.
- Sức mạnh 2 hệ OS cùng lúc. Theo mình, đây là cái mang lại nhiều value các bạn tự trải nghiệm đi hen. Sướng thì phải tự tận hưởng thôi. :))
- Chạy được docker, mount volume nhanh như trên Ubuntu.
- Rẻ thay vì bạn phải mua Macbook nếu office và terminal là thứ ko thể thay thế.
Bài viết liên quan
Đặt câu hỏi đúng thời 4 chấm 0. Gemini, chat gpt,... !! [Phần 2] Thấu hiểu "Prompt" - Chìa khóa mở ra sức mạnh AI!
34 minutes to read
34 minutes to read
Thay vì hỏi “Hãy kể cho tôi nghe về Paris,” bạn có thể hỏi “Mô tả phong cách kiến trúc của tháp Eiffel.” - prompt của bạn càng chính xác...
Giao tiếp thông minh với AI: Bí quyết đặt câu hỏi hiệu quả cho ChatGPT & Gemini [Phần 1.1]
6 minutes to read
6 minutes to read
Nghệ thuật đặt câu hỏi, Bí quyết khai thác tối đa ChatGPT & Gemini
Đặt câu hỏi đúng thời 4 chấm 0. Gemini, chat gpt,... !! [Phần 4] Thấu hiểu "Prompt" - Chìa khóa mở ra sức mạnh AI!
33 minutes to read
33 minutes to read
Hãy tưởng tượng ChatGPT như một "đầu bếp AI" siêu đẳng, có thể giúp bạn hiện thực hóa mọi ý tưởng ẩm thực, dù là phức tạp nhất!
"Một người đàn ông không dành thời gian cho gia đình, không bao giờ có thể trở thành đàn ông thực sự."
Bạn có thể vào đây để xem "kẻ dại khờ" chia sẻ cảm nhận về những cuốn sách mà kẻ đó cho là hay!
Chúc một buổi sáng vui vẻ!!👨🚀
Anh hàng xóm
'Anh hàng xóm' là blog phi lợi nhuận, miễn phí - Sự ủng hộ của bạn luôn là điều quan trọng giúp blog tồn tại cùng với đó là phát triển mạnh mẽ hơn nữa. Bạn có thể ủng hộ cho blogヾ (⌐ ■ _ ■) ノ ♪