Microsoft tiết lộ hệ thống con windows 10 linux của nó hoạt động như thế nào

Video: How to Install Linux Terminal on Windows 10 (2020) 2024

Video: How to Install Linux Terminal on Windows 10 (2020) 2024
Anonim

Bash trên Ubuntu trên Windows cho phép các nhị phân ELF64 của Linux chạy trên Windows thông qua Hệ thống con Windows cho Linux (WSL). Mặc dù nhiều người đã bị sốc bởi thông báo của Bash trên Ubuntu, nhưng điều đáng nói là nó mở ra những cánh cửa mới cho khả năng tương thích giữa các hệ điều hành khác nhau. Microsoft tiến thêm một bước nữa và tiết lộ cách thức hoạt động của WSL để chúng ta có thể hiểu rõ hơn về cách hai hệ thống giao tiếp với nhau.

WSL được tạo bởi nhóm Microsoft Windows Kernel và chứa cả các thành phần chế độ người dùng và chế độ kernel. Cụ thể hơn, hệ thống này bao gồm:

  • một dịch vụ quản lý phiên chế độ người dùng xử lý vòng đời phiên bản Linux
  • Trình điều khiển nhà cung cấp Pico (lxss.sys, lxcore.sys) có vai trò mô phỏng nhân Linux bằng cách dịch các tòa nhà của Linux
  • Các quy trình Pico lưu trữ chế độ người dùng chưa sửa đổi Linux (ví dụ / bin / bash).

Kết nối giữa ba thành phần được mô tả như sau:

Đó là khoảng trống giữa các nhị phân Linux chế độ người dùng và các thành phần hạt nhân Windows nơi phép màu xảy ra. Bằng cách đặt các nhị phân Linux chưa sửa đổi trong các quy trình Pico, chúng tôi cho phép các lệnh gọi hệ thống Linux được chuyển hướng vào nhân Windows. Các trình điều khiển lxss.sys và lxcore.sys dịch các lệnh gọi hệ thống Linux thành các API NT và mô phỏng nhân Linux.

Thách thức chính trong quy trình là làm cho hai hệ thống hoạt động cùng nhau:

WSL thực thi các nhị phân Linux ELF64 chưa sửa đổi bằng cách ảo hóa giao diện nhân Linux trên đầu nhân Windows NT. Một trong những giao diện kernel mà nó trưng ra là các cuộc gọi hệ thống (tòa nhà chọc trời). Tòa nhà chọc trời là một dịch vụ được cung cấp bởi kernel có thể được gọi từ chế độ người dùng. Cả nhân Linux và nhân Windows NT đều phơi bày hàng trăm tòa nhà cho chế độ người dùng, nhưng chúng có ngữ nghĩa khác nhau và thường không tương thích trực tiếp. Ví dụ, nhân Linux bao gồm những thứ như fork, open và kill trong khi kernel Windows NT có NtCreateProcess, NtOpenFile và NtTerminateProcess tương đương.

Hệ thống con Windows cho Linux bao gồm các trình điều khiển chế độ nhân (lxss.sys và lxcore.sys) chịu trách nhiệm xử lý các yêu cầu cuộc gọi hệ thống Linux phối hợp với nhân Windows NT. Các trình điều khiển không chứa mã từ nhân Linux mà thay vào đó là một triển khai phòng sạch các giao diện nhân tương thích với Linux. Trên Linux nguyên gốc, khi một tòa nhà chọc trời được tạo từ chế độ người dùng có thể thực thi được, nó được xử lý bởi nhân Linux. Trên WSL, khi một tòa nhà chọc trời được tạo từ cùng một hạt nhân Windows NT có thể thực hiện được yêu cầu tới lxcore.sys. Khi có thể, lxcore.sys chuyển dịch tòa nhà Linux sang lệnh gọi Windows NT tương đương, lần lượt thực hiện công việc nặng nhọc.

Nhận được sự quan tâm của Microsoft đối với các nền tảng nguồn mở, nhiều người tự hỏi liệu gã khổng lồ công nghệ có nên mua các công ty lớn tập trung vào Linux như Canonical, công ty đứng sau hệ điều hành Ubuntu hay không. Mặc dù Microsoft và Canonical hợp tác trên phần mềm nguồn mở, nhưng không đưa ra bất kỳ bình luận nào về khả năng này.

Nếu bạn thấy thú vị về cách tương tác giữa Linux - Windows, hãy truy cập Blog của Microsoft. Nhóm đã hứa rằng sẽ có nhiều bài viết trên blog về chủ đề này.

Microsoft tiết lộ hệ thống con windows 10 linux của nó hoạt động như thế nào