Windows 10 có thể chạy các chương trình Linux. Dưới đây là những điều bạn cần biết để tận dụng tối đa Windows Subsystem cho Linux.
Năm ngoái, Microsoft đã thêm một tính năng mới lạ cho Windows đó là hỗ trợ Linux. Quản lý chương trình Rich Turner trao đổi với CIO.com: Tính năng Windows Subsystem for Linux (WSL) - hay còn được gọi là Bash trên hệ điều hành Windows - là việc Microsoft tạo ra một cơ sở hạ tầng tương thích với Linux chạy trên và trong nhân hệ thống (kernel) Windows. Nghĩa là chạy chương trình Linux mà không cần thoát Windows.
Ông Turner giải thích: "Bash trên Windows cung cấp bộ công cụ cho các nhà phát triển, các quản trị viên CNTT và các chuyên gia công nghệ khác muốn hoặc cần chạy các công cụ dòng lệnh Linux cùng với các công cụ và ứng dụng của Windows". Bash phát triển dưới sự hỗ trợ của Canonical (và một số lượng lớn người dùng trong cộng đồng Linux). Bash không sinh ra để biến Linux thành Windows hay Windows thành Linux. Nó chỉ là một số công cụ Linux phổ biến để phát triển và có thể sử dụng mà không cần chạy qua máy ảo (virtual machine). Đây là một trong những lí do Mac phổ biến với các nhà phát triển: MacOS dựa trên BSD - một hệ điều hành dẫn xuất từ UNIX, do đó nó có thể chạy các công cụ Linux như Bash. Và bây giờ bạn cũng có thể làm như thế trên Windows 10.
Ông Turner cũng giải thích rằng: "Khi sử dụng Bash trên Windows, các nhà phát triển có thể chạy các công cụ dòng lệnh Linux nguyên bản, chính hãng trong môi trường Linux tương thích cao cùng với các công cụ Windows yêu thích của họ".
Ông Turner cho hay: WSL đang phát triển nhanh chóng và với Creators Update, nó rất hữu ích để sử dụng hàng ngày. Tuy nhiên, khi bạn hiểu thêm về cách Windows 10 và Linux tương tác với nhau thì sử dụng WSL sẽ trở nên dễ dàng hơn.
1. WSL dành cho các nhà phát triển
WSL ra đời để giúp Windows hoạt động tốt hơn cho các nhà phát triển, những người cần liên kết với Linux backend một cách dễ dàng, hoặc sử dụng các công cụ thường có sẵn trên Linux mà không có trên Windows, hay trường hợp các công cụ đó đã được biên dịch thành các file nhị phân khi bạn sử dụng Linux với hệ thống file Linux. Turner gọi nó là bộ công cụ tuyệt vời cho bất kì nhà phát triển nào làm việc trên các giải pháp đa nền tảng, đặc biệt là những người làm việc về xây dựng các trang web, dịch vụ hệ thống hoặc dịch vụ lưu trữ.
2. WSL là một Linux distro chứ không phải nhân hệ thống Linux
WSL cài đặt Linux distro trên máy tính người dùng (hiện tại, Ubuntu 16.04 là loại distro người dùng được cài và hỗ trợ tự động), mặc dù sẽ có nhiều tùy chọn hơn trong tương lai. Chương trình Linux thực hiện các cuộc gọi hệ thống như thường lệ, nhưng theo Turner, các cuộc gọi hệ thống đó sẽ đi tới Windows thay vì Linux. Ông cho hay: Các cuộc gọi từ công cụ dòng lệnh người dùng tương tác với nhân hệ thống OS. Nghĩa là bạn chỉ cần cài đặt và sử dụng chương trình Linux mà không cần thay đổi gì cả vì bạn đang sử dụng Windows.
3. WSL không phải là máy ảo
Khi bạn chạy Linux trên Windows trong một máy ảo, bạn sẽ có một hệ điều hành riêng biệt bỏ qua rất nhiều Windows. WSL sử dụng CPU và bộ nhớ ít hơn nhiều máy ảo. Bởi vì bạn vẫn còn trong Windows nên bạn có thể sử dụng các công cụ Windows và Linux cùng nhau trên cùng một dãy các tập tin. Điều này nghĩa là WSL sẽ hoạt động trong hệ Windows ảo mà không cần lo lắng về việc ảo hóa lồng nhau.
4. WSL không phải là Cygwin (môi trường nix trong Windows)
Cygwin là một thư viện cung cấp cho người dùng một môi trường đồ họa UNIX-like bên trong Windows, bao gồm giao diện dòng lệnh, và bạn cần biên dịch phần mềm một cách đặc biệt cho nó. Với WSL, chương trình Linux mở bên trong môi trường Windows chuẩn, nên bạn không cần thay đổi chúng để chạy trên Windows.
5. Hướng dẫn cài đặt và khởi động WSL
Bạn cần có phiên bản Windows 10 Creators Update 64 bit (bản 1703 hoặc mới hơn). Trước hết, mở Settings > Update & security > For developers và bật Developermode, sau đó chọn hộp được đánh dấu là Windows Subsystem for Linux (Beta) trong phần Turn Windows features on or off của Control Panel (bạn cũng có thể gõ từ khóa này vào cửa sổ PowerShell nâng cao): Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux). Khởi động máy tính, mở cửa sổ lệnh và gõ bash để tải hình ảnh Ubuntu. Việc này cũng tạo thêm shortcut trong thanh Start menu để khởi chạy bash. Nếu là lần đầu tiên sử dụng, bạn sẽ được khuyến khích tạo tên người dùng và mật khẩu UNIX (đây là một tài khoản khác tài khoản trong Windows).
6. Bạn không cần tài khoản Admin để sử dụng WSL
Bạn cần các thông tin quản trị để bật WSL nhưng điều này dễ dàng thực hiện với DISM hoặc các công cụ quản lý khác, nên các nhà phát triển không cần tài khoản admin trên máy tính mà vẫn có thể sử dụng WSL khi đã được kích hoạt.
7. Liên kết tượng trưng cũng không cần quyền quản trị
Windows hỗ trợ các liên kết tượng trưng từ phiên bản Vista, nhưng vì lí do bảo mật, bạn phải sử dụng dấu lệnh nâng cao để tạo và sửa đổi chúng. Điều này gây ra nhiều vấn đề cho các công cụ như Git và npm, sử dụng liên kết tượng trưng khi tạo và khôi phục các repos và package. Như phiên bản Creators Update, khi bạn kích hoạt Developer mode, bạn không cần nâng cao hình thức quản trị để làm việc với các liên kết tượng trưng.
8. WSL không chỉ đơn giản chỉ là bash
Bash là cách vào WSL. Nó luôn là tiến trình WSL chạy đầu tiên, nếu bạn đóng bash, tất cả các tiến trình Linux khác mà bạn đang chạy cũng sẽ đóng lại. Tuy nhiên, bạn có thể sử dụng apt trong bash để cài đặt chương trình Linux. Bạn có thể sử dụng công cụ Linux phổ biến như apt, sed, grep, awk, top, tmux và ssh hoặc chạy các công cụ nhà phát triển như Vim, Emacs, git và the GNU Debugger (GDB). Bạn cũng có thể chạy các dịch vụ như sshd, Apache, nginx, MySQL và PostgreSQL hay các công cụ ngôn ngữ như npm cho Node.js, gems cho Ruby, Apache Maven cho Java, Pip cho Python hay bất cứ công cụ gì mà bạn thường sử dụng trên Ubuntu.
9. WSL là các công cụ dòng lệnh
WSL được thiết kế để chạy các công cụ dòng lệnh, đó là lí do nó bắt đầu với bash shell. Nhưng điều đó không có nghĩa là các công cụ đồ hoạ Linux sẽ không hoạt động. Thực tế, rất nhiều công cụ hoạt động nhưng đó là tác dụng phụ của công việc mà Microsoft đang làm để hỗ trợ các công cụ dòng lệnh, chứ không phải do sự có mặt của WSL. Microsoft không làm gì đặc biệt để hỗ trợ chạy các công cụ đồ họa Linux, nhưng hãng này cũng không làm bất cứ điều gì để chặn người dùng chạy công cụ đồ họa Linux trên WSL.
10. Việc bổ tính năng hỗ trợ Linux đã cải thiện giao diện điều khiển cho người dùng.
Để giúp giao diện điều khiển Windows xử lý định dạng văn bản tốt cho các công cụ dòng lệnh như Vim, Emacs và tmux, Creators Update đã hỗ trợ cho các code ANSI và VT Sequences mà các công cụ UNIX và Linux sử dụng trong giao diện của chúng. Nó cũng có màu 24-bit thay vì màu 16 bit cũ và hỗ trợ chuột tốt hơn (cần thiết cho các công cụ như Midnight Commander và Htop). Những công cụ này xuất hiện trong tất cả các giao diện dòng lệnh của Windows, bao gồm CMD và PowerShell.
11. WSL không nằm trêm Windows Server
WSL chỉ có trong máy khách Windows 10, chứ không chạy trong Windows Server. Vì vậy, nếu bạn đang sử dụng cơ sở hạ tầng máy tính ảo hoặc các cách chạy trên Windows khác thì bạn cần chạy máy khách Windows để sử dụng WSL.
12. Bash không thay thế PowerShell
Một lý do mà WSL không có trong Windows Server là bởi nó không được thiết kế để quản lý khối lượng công việc như Windows Server, Active Directory, IIS, Exchange, SharePoint, System Center, SQL Server, Hyper-V và Azure theo cách mà PowerShell hoạt động. PowerShell là một framework tự động hóa nhiệm vụ và cấu hình. WSL không thay đổi điều đó.
13. Bạn cần quản lý cập nhật
WSL được cập nhật thường xuyên qua Windows Update và các bản cập nhật hai lần mỗi năm của Windows. Nhưng điều đó không cập nhật Linux distro của bạn (theo phản hồi từ phần lớn người dùng). Để sở hữu các bản cập nhật cho Ubuntu và những chương trình Linux khác, bạn phải tự chạyapt-get update (Microsoft cũng đang có ý định bổ sung tính năng tự động cập nhật trong thời gian tới).
14. Bạn có thể quản lý WSL với các công cụ Windows thông thường
Một lợi thế lớn của WSL là bạn có thể sử dụng các công cụ quản lý và giám sát mạng tương tự mà bạn đã dùng trong hệ thống Windows, điều mà các máy ảo thường bỏ qua. Turner giải thích: "Khi WSL sử dụng bộ nhớ, tiến trình, mạng, bộ lưu trữ và các ngăn sắp xếp IO hiện có của Windows,các khoản đầu tư mà công ty đã thực hiện trong việc bảo vệ, quản lý và giám sát OS được bảo toàn và mở rộng để giúp bảo vệ, giám sát các tiến trình Linux". Ông cho biết: "Mặc dù nhiều nhà cung cấp các phần mềm diệt virus khác cũng đã hợp tác với Microsoft để hỗ trợ cho WSL nhưng cho đến nay, Windows Defender là loại chống virus duy nhất hoạt động với WSL và quản lý tiến trình Linux".
15. WSL vượt qua kết nối với tiến trình Windows
Các tiến trình Linux mà bạn chạy với WSL được xử lý giống như những quá trình khác trong Windows, nên chúng hiển thị trong Task Manager, giúp bạn dễ dàng hủy bỏ bất cứ tiến trình nào đã treo. Điều này có nghĩa là bạn có thể gọi các tệp thực thi của Windows bên trong bash bằng cách gõ tệp tin đầy đủ của chương trình (nhớ tệp .EXE, nhưng bạn không cần xác minh nơi tệp tồn tại nếu tệp đó nằm trong đường dẫn của Windows), hoặc gọi chương trình Linux và nhận kết quả từ ứng dụng của Windows. Nghĩa là bạn cần bắt đầu các tập tin batch từ bash bằng cách gọi CMD.EXE, đưa một lệnh trong bash vào PowerShell để xử lý hoặc khởi chạy Visual Studio hay gọi MSBuild để hoàn thiện đoạn code vừa được chỉnh sửa trên bash. Cài đặt trình hỗ trợ dòng lệnh RunInBash để chạy lệnh Linux từ PowerShell hoặc CMD bằng cách gõ $ ở phía trước.
16. WSL vượt qua kết nối với Windows filesystem
Với WSL bạn sẽ có được Linux DrvFs filesystem, những ổ đĩa gắn vĩnh viễn từ hệ thống tập tin Windows sẽ được tự động gắn vào nó để bạn có thể truy cập tập tin trên hệ thống Windows từ các công cụ Linux mà bạn chạy.Thậm chí WSL còn hỗ trợ dịch vụ Linux inotify cho phép các ứng dụng đăng kí các thông báo thay đổi filesystem, bao gồm các tệp trong Windows filesystem và các thông báo này có thể kích hoạt các lệnh như khởi động lại máy chủ hoặc dựng code. Nghĩa là bạn có thể giữ code đó ở nơi có thể chỉnh sửa bằng Visual Studio, sử dụng code tương tự với công cụ Linux và xem mọi thứ tự động xảy ra khi thay đổi code.
17. Bạn không thể mở các tập tin Linux trong các ứng dụng của Windows
Các công cụ Linux đang chạy với WSL có thể mở các file Windows nhưng đừng cố gắng mở các file từ hệ thống tệp Linux trong các ứng dụng Windows. Nó sẽ không hoạt động và có thể làm hỏng các tập tin.
18. Bạn sẽ muốn truy cập vào Windows Insider
WSL vẫn đang phát triển và tiếp tục có nhiều tính năng mới như kết nối với các cổng nối tiếp Windows từ các tiến trình Linux hoặc có thể gắn ổ đĩa rời và chia sẻ mạng. Những tính năng này không có trong Creators Update, nhưng bạn có thể tải chúng bằng cách chạy Windows Insider builds mà không cần chờ tới sáu tháng cho bản cập tiếp theo.
Bài viết "18 điều cần biết về việc sử dụng công cụ Linux trong Windows 10" được xuất bản lần đầu bởi CIO.
Bạn thấy bài viết trên có hữu ích không? Nếu có chia sẻ gì, mời bạn comment phía dưới nhé!