Cài đặt hệ thống con của Windows cho Linux

Install Windows Subsystem



Windows Subsystem cho Linux là một tiện ích được phát triển bởi Microsoft để cho phép các nhà phát triển và những người đam mê Linux chạy môi trường Linux yêu thích của họ nguyên bản trên Windows 10 mà không cần chạy máy ảo. Cách thức hoạt động cũng tương tự như cách RƯỢU hoạt động trên Linux. WSL cho phép các tệp nhị phân Linux chạy trên Windows bằng cách sử dụng lớp tương thích để chuyển các lệnh gọi hệ thống Linux thành các lệnh gọi hệ thống Windows.

Ngành kiến ​​trúc

Có thể cho rằng, WSL hoạt động tốt hơn trên Windows, hơn WINE hoạt động trên Linux và lý do đằng sau nó là vì Linux đặc biệt về kiến ​​trúc của nó. Trong khi hầu hết các Hệ điều hành bao gồm một Kernel và toàn bộ các thư viện và tính năng được xây dựng xung quanh Kernel đó, thì Linux chỉ là một Kernel. Hầu hết các bản phân phối GNU / Linux đều lấy Kernel này và xây dựng một hệ điều hành chồng lên trên nó. Tùy thuộc vào cách bạn chọn để xây dựng ngăn xếp này, bạn sẽ nhận được các bản phân phối khác nhau như Debian, RedHat, v.v.







Để chạy môi trường Linux trên Windows, bạn cần bật tính năng WSL (chúng tôi sẽ trình bày ngay về vấn đề này) và sau đó truy cập cửa hàng Microsoft để lấy bản sao của bản phân phối yêu thích của bạn (Ubuntu, Debian, OpenSUSE, v.v.).



Bước đầu tiên kích hoạt lớp dịch syscall và bước thứ hai mang lại một đống phần mềm nhẹ để cung cấp cho bạn một hệ điều hành Linux hoàn chỉnh để chạy trên đỉnh tính năng WSL. Làm điều ngược lại, nghĩa là chạy các ứng dụng Windows trên Linux khó hơn nhiều vì Windows không chỉ là hạt nhân NT.



Vì lý do này, không có máy ảo nào tham gia vào việc triển khai WSL, làm cho nó trở thành một lựa chọn hấp dẫn. Bạn sẽ không bị giảm hiệu suất vì không có máy ảo nào tham gia, chỉ là lớp dịch syscall nguyên bản có dung lượng nhẹ.





Cài đặt và thiết lập

Trên PC chạy Windows 10 của bạn, tìm kiếm Bật hoặc tắt các tính năng của Windows bằng cách nhấp vào phím Windows và nhập phím tương tự vào Menu Bắt đầu. Khi menu Tính năng của Windows được mở, hãy cuộn xuống dưới cùng nơi bạn sẽ tìm thấy tính năng Hệ thống con của Windows dành cho Linux. Đánh dấu vào ô đó và bấm OK.



Windows sẽ chăm sóc thiết lập kể từ đây và khi mọi thứ đã hoàn tất, nó sẽ yêu cầu bạn khởi động lại hệ thống của mình để hoàn thiện các thay đổi. Sau khi khởi động lại, bạn có thể vào Microsoft Store và tìm bản phân phối yêu thích của mình trong đó.

Bạn có thể tìm kiếm trong cửa hàng để phân phối yêu thích của bạn. Dưới đây là ảnh chụp màn hình của một số bản phân phối được sử dụng nhiều nhất. Bạn có thể thấy hai biến thể của OpenSUSE, một ứng dụng Debian và Kali Linux.

Tất nhiên, bản phân phối phổ biến nhất vẫn là Ubuntu với cả 16.04 và 18.04 LTS có sẵn trong cửa hàng.

Cài đặt hệ thống con của Windows cho Linux

Bây giờ bạn chỉ cần chọn bản phân phối mà bạn muốn và cài đặt ứng dụng tương ứng. Chúng tôi sẽ cài đặt Ubuntu 18.04 LTS cho môi trường WSL của chúng tôi. Nó có kích thước khoảng 215 MB, nhỏ hơn nhiều so với toàn bộ cài đặt Ubuntu.

Sau khi ứng dụng được cài đặt, bạn có thể khởi chạy ứng dụng trực tiếp từ ứng dụng Microsoft Store hoặc bằng cách tìm kiếm ứng dụng đó trong Menu Bắt đầu của bạn. Khi được khởi chạy lần đầu tiên, sẽ mất một chút thời gian để thiết lập mọi thứ cho bạn.

Có thể mất đến 5 phút, nhưng sau khi hoàn tất, bạn sẽ được nhắc nhập tên người dùng và mật khẩu UNIX mới của mình và bạn đã sẵn sàng!

Thiết bị đầu cuối được khởi chạy sẽ cung cấp cho bạn hầu như tất cả các chức năng của hệ thống Ubuntu, ngoại trừ GUI. Vì hầu hết các khả năng của UNIX / Linux đều nhờ vào sức mạnh của thiết bị đầu cuối nên điều này có thể giúp bạn đi một chặng đường dài.

Ví dụ: chúng ta có thể bắt đầu sử dụng môi trường này bằng cách cập nhật tất cả các gói được cài đặt trong đó.

$sudocập nhật apt&& sudonâng cấp apt-và

Những điều bạn có thể và không thể làm trong môi trường WSL

Bây giờ, câu hỏi nảy sinh trong đầu mọi người là - Lợi ích của nó là gì?

Hãy xem xét trường hợp ngược lại. Với những công nghệ như WINE, chúng tôi biết rằng không phải mọi thứ có thể làm được trong Windows đều có thể thực hiện được trên Linux. Các thư viện hệ thống cấp thấp như DirectX sẽ không khả dụng trên Linux và rất nhiều ứng dụng trên Windows dựa vào các thư viện như vậy.

Các hệ điều hành như Windows 10, FreeBSD hay Illumos là những hệ điều hành chính thức, không chỉ là hạt nhân. Với Windows vì hầu hết các thư viện là độc quyền và điều đó làm cho vấn đề trở nên khó khăn hơn. Điều này làm cho công việc của một dự án như WINE, khó hơn nhiều.

Với việc cố gắng mô phỏng Linux trên Windows, điều ngược lại là đúng. Tập hợp chặt chẽ các lệnh gọi ABI (hoặc cuộc gọi tổng hợp) của Linux là tất cả những gì bạn cần dịch sang Windows để chạy mọi thứ trên đó. Nếu chúng ta cố gắng hỏi Ubuntu trên WSL xem nó đang chạy Kernel nào, nó sẽ cung cấp cho bạn số phiên bản nhân Linux, với Microsoft được đề cập cùng với số phiên bản để chỉ ra rằng đây không phải là nhánh chính của dự án nhân Linux.

$uname -đến

Nếu tìm hiểu sâu hơn, chúng ta sẽ thấy rằng mặc dù các chức năng cấp cao như bố cục hệ thống tệp và cấu hình mạng được hiển thị, nhưng các hoạt động cấp thấp hơn như bố cục lưu trữ khối sẽ không hoạt động.

Ví dụ: các lệnh sau sẽ hoạt động như mong đợi:

$df -NS

$ifconfig

Cả hai lệnh đều cho bạn biết thông tin về hệ thống gốc của bạn đang thực sự chạy Windows. Nó không giống như chạy một máy ảo nơi hoàn toàn có các giao diện mạng khác nhau và các hệ thống tệp khác nhau.

Tuy nhiên, các lệnh như lsblk sẽ không hoạt động, bởi vì bộ nhớ khối cấp thấp hơn không phải là những gì Linux mong đợi. Tương tự, cài đặt OpenZFS là vô ích vì OpenZFS cài đặt một số mô-đun nhân có thể tải được và chúng tôi không có nhân Linux chỉ là ảo tưởng về nó.

Điều này cũng đúng nếu bạn đang cố gắng chạy docker. Khi cài đặt Docker, Ubuntu sẽ không phàn nàn, tuy nhiên, dịch vụ Docker sẽ không khởi động, vì nó phụ thuộc vào Systemd không có trong hệ thống con này.

Tuy nhiên, bạn có thể chạy rất nhiều dịch vụ và tiện ích để làm cho cuộc sống của bạn dễ dàng hơn. Nếu bạn quản lý máy chủ Linux để kiếm sống, bạn cũng không cần phải có Linux trên máy tính để bàn của mình. Bạn có thể chạy các ứng dụng khách SSH, ứng dụng khách Docker, bash, các tiện ích như grep và awk, cũng như ngôn ngữ lập trình yêu thích của bạn từ Python đến Rust trong môi trường này mà không làm ô nhiễm hệ thống Windows của bạn.

Bạn cũng có thể chạy tự động hóa CD / CI của mình bằng Ansible, Puppet hoặc bất kỳ công nghệ nào khác mà bạn thích. Có nghĩa là, bất cứ điều gì mà DevOp, nhà phát triển web hoặc ứng dụng hoặc người kiểm tra yêu cầu từ hệ thống Linux đều có thể đạt được với WSL ngoại trừ những người làm việc với phần mềm hệ thống và / hoặc phát triển hạt nhân.

Phần kết luận

Bạn có suy nghĩ hoặc trải nghiệm của riêng mình với Hệ thống con Windows trên Linux? Hoặc có thể bạn vẫn còn thắc mắc cần giải đáp. Liên hệ với chúng tôi với các thắc mắc của bạn và chúng tôi sẽ đề cập đến chủ đề đó cho bạn.