Penguin in the window: về tiềm năng và triển vọng của WSL2

Này Habr!

Trong khi chúng ta vẫn còn đang sôi nổi giảm giá mùa hè, chúng tôi muốn mời bạn thảo luận về một trong những chủ đề lớn nhất mà chúng tôi đang thực hiện gần đây - sự tương tác giữa Windows và Linux, đặc biệt là liên quan đến sự phát triển của hệ thống WSL. WSL 2 đang được phát triển và đây là tổng quan nhanh về những gì sẽ có trong hệ thống con này cũng như dự báo về sự tích hợp trong tương lai giữa Windows và Linux.

Penguin in the window: về tiềm năng và triển vọng của WSL2

Vào tháng 2 năm nay, Microsoft đã thông báo rằng WSLXNUMX, phiên bản mới nhất của hệ thống con Windows trên Linux, sẽ chạy trên nhân Linux đầy đủ được xây dựng nội bộ.
Điều này đánh dấu lần đầu tiên Microsoft đưa nhân Linux vào làm một thành phần trong Windows. Microsoft cũng đang giới thiệu một dòng lệnh cho Windows nhằm mở rộng khả năng của PowerShell và WSL.

Cả nhân Linux cho WSL2 do Microsoft tạo ra và dòng lệnh Windows mới đều được các nhà phát triển quan tâm chủ yếu.

Joshua Schwartz, giám đốc chương trình số hóa tại công ty tư vấn AT Kearney cho biết: “Đây là động thái mạnh mẽ nhất trong cuộc chơi chống lại AWS”.

Tương lai của Microsoft không gắn liền với thị trường PC dù hãng sẽ tiếp tục giữ vững vị thế ở phân khúc này. Điều quan trọng hơn nhiều là có được chỗ đứng trên thị trường đám mây, một trong những thành phần của thị trường này trong tương lai có thể là máy tính để bàn.

WSL2 làm gì?

WSL2 là khung Hệ thống con Windows mới nhất dành cho Linux. Nó cho phép bạn cải thiện triệt để hiệu suất hệ thống tệp và cung cấp khả năng tương thích hoàn toàn với các lệnh gọi hệ thống.

Một trong những yêu cầu chính từ cộng đồng WSL có liên quan đến việc cải thiện chức năng. WSL2 chạy nhiều công cụ Linux hơn WSL, đặc biệt là Docker và FUSE.
WSL2 xử lý các hoạt động sử dụng nhiều tệp, đặc biệt là git clone, cài đặt npm, cập nhật apt và nâng cấp apt. Việc tăng tốc độ thực tế phụ thuộc vào ứng dụng cụ thể và cách nó tương tác với hệ thống tệp.

Các thử nghiệm đầu tiên cho thấy WSL2 nhanh hơn khoảng 20 lần so với WSL1 trong việc giải nén tar từ zip. Khi sử dụng git clone, npm install và cmake trong nhiều dự án khác nhau, hệ thống cho thấy hiệu suất tăng gấp hai đến năm lần.

Liệu điều này có giúp đạt được sự tin tưởng của các nhà phát triển?

Về bản chất, Microsoft đang tìm cách giành được sự công nhận và tin tưởng trong cộng đồng nhà phát triển bằng cách phát triển phiên bản nhân Linux của riêng mình để hỗ trợ các quy trình WSL2, Cody Swann, Giám đốc điều hành của Gunner Technology cho biết.

“Ngoài việc phát triển hoàn toàn cho Windows, việc tạo tất cả các ứng dụng khác - đám mây, di động, ứng dụng web - trên PC là điều vô cùng bất tiện, đó là lý do tại sao nhà phát triển bằng cách nào đó phải khởi động bản phân phối Linux song song với hệ điều hành Windows. Microsoft đã nhận ra điều này và đã đưa ra giải pháp,” ông kết luận.

Không chắc rằng việc giới thiệu nhân Linux tùy chỉnh sẽ có tác động nghiêm trọng đến hệ thống theo quan điểm của người dùng bình thường. Tuy nhiên, điều này mở ra cơ hội tương tác chặt chẽ hơn giữa các dịch vụ của Microsoft và hệ điều hành Linux.
Swann cho biết, động thái này của Microsoft thực sự rất thông minh, vì nó giúp thâm nhập sâu hơn vào cộng đồng nhà phát triển, cũng như tích cực sử dụng các sản phẩm mà người khác đang phát triển - tức là kết nối với nguồn mở.

Chào mừng đến với Microsoft mới

Xu hướng tạo và duy trì nhân Linux “dành riêng cho Windows” phản ánh định hướng mạnh mẽ về nguồn mở do CEO Satya Nadella thúc đẩy. Microsoft không còn giống như thời Gates và Ballmer, khi mọi thứ đều được giữ đằng sau hàng rào độc quyền và không ai nghĩ đến khả năng tương tác.

“Satya đã biến đổi hoàn toàn Microsoft thành một nền tảng hiện đại hơn nhiều và chiến lược đó đã được đền đáp xứng đáng. Xin chào, vốn hóa nghìn tỷ đô la,” Schwartz nói.

Theo Charles King, nhà phân tích chính tại Pund-IT, hai điểm mạnh chính của Microsoft là hiệu quả và bảo mật.

Ông cho biết thêm: “Bằng cách tích cực sử dụng các phát triển - tài nguyên và công cụ quan trọng của riêng mình - công ty có thể đảm bảo với khách hàng rằng nhân sẽ được cập nhật hoàn toàn và được trang bị các bản vá cũng như bản sửa lỗi mới nhất để đảm bảo an ninh hoàn toàn”.

Các nhà phát triển cũng được hưởng lợi

Các tệp nhị phân Linux thực hiện nhiều chức năng bằng cách sử dụng lệnh gọi hệ thống, chẳng hạn như truy cập tệp, yêu cầu bộ nhớ và tạo quy trình. WSL1 dựa vào lớp dịch để diễn giải nhiều lệnh gọi hệ thống này và cho phép chúng tương tác với nhân Windows NT.

Điều khó khăn nhất là thực hiện tất cả các lệnh gọi hệ thống. Vì điều này không được thực hiện trong WSL1 nên một số ứng dụng không thể hoạt động ở đó. WSL2 giới thiệu nhiều ứng dụng mới hoạt động tốt trong môi trường này.

Kiến trúc mới cho phép Microsoft mang đến những tối ưu hóa mới nhất cho nhân Linux nhanh hơn nhiều so với WSL1. Microsoft có thể cập nhật lõi WSL2 thay vì triển khai lại tất cả các hạn chế.

Công cụ nguồn mở hoàn toàn

Jack Hammons, giám đốc chương trình tại Linux Systems Group, Microsoft cho biết, việc Microsoft phát triển nhân Linux của riêng mình là đỉnh cao sau nhiều năm làm việc của Nhóm Hệ thống Linux, cũng như nhiều nhóm khác trên toàn Microsoft.

Hạt nhân được cung cấp cho WSL2 sẽ là nguồn mở hoàn toàn và Microsoft sẽ đăng hướng dẫn về cách xây dựng hạt nhân như vậy trên GitHub. Công ty sẽ thu hút các nhà phát triển sẵn sàng hỗ trợ dự án và thúc đẩy sự thay đổi từ dưới lên.

Các nhà phát triển của Microsoft đã tạo WSL2 bằng cách sử dụng hệ thống phân phối liên tục và tích hợp liên tục của công ty. Phần mềm này sẽ được cung cấp thông qua hệ thống cập nhật Windows và sẽ hoàn toàn minh bạch đối với người dùng. Hạt nhân sẽ luôn được cập nhật và bao gồm tất cả các tính năng của nhánh Linux ổn định mới nhất.

Để đảm bảo tính sẵn có của nguồn, công ty phản ánh các kho lưu trữ cục bộ, liên tục giám sát nội dung của danh sách gửi thư bảo mật Linux và làm việc với một số công ty hỗ trợ cơ sở dữ liệu trong môi trường ảo doanh nghiệp (CVE). Điều này đảm bảo rằng nhân Linux của Microsoft được cập nhật với các bản cập nhật mới nhất và loại bỏ mọi mối đe dọa mới nổi.

Những thay đổi từ dưới lên trở thành bắt buộc

Microsoft đảm bảo rằng tất cả các thay đổi về nhân đều được phổ biến ngược dòng, một khía cạnh quan trọng của triết lý Linux. Việc hỗ trợ các bản vá hạ nguồn đi kèm với độ phức tạp cao hơn; Hơn nữa, cách làm này không phổ biến trong cộng đồng nguồn mở.

Mục tiêu của Microsoft với tư cách là một người dùng Linux tích cực là trở thành một thành viên có kỷ luật trong cộng đồng và đóng góp những thay đổi cho cộng đồng. Để đảm bảo tính ổn định của các nhánh liên quan đến hỗ trợ lâu dài, một số bản vá - ví dụ như những bản vá có tính năng mới - chỉ có thể được đưa vào các phiên bản mới của kernel và không được chuyển sang phiên bản LTS hiện tại ở chế độ tương thích ngược.

Khi có sẵn nguồn nhân WSL, chúng sẽ bao gồm các liên kết đến một tập hợp các bản vá và một phần nguồn ổn định lâu dài. Microsoft hy vọng danh sách này sẽ giảm dần theo thời gian vì các bản vá được phân phối ngược dòng và các bản vá cục bộ mới được thêm vào để hỗ trợ các tính năng WSL mới.

Thiết kế cửa sổ dễ chịu hơn

Microsoft cũng đã công bố phiên bản mùa đông sắp tới của Windows Terminal, một ứng dụng mới dành cho người dùng làm việc với các công cụ dòng lệnh và shell, chẳng hạn như Command Prompt, PowerShell và WSL.

Penguin in the window: về tiềm năng và triển vọng của WSL2

Thiết bị đầu cuối Windows

Windows Terminal 1.0 cung cấp nhiều cài đặt và tùy chọn cấu hình giúp bạn kiểm soát nhiều hơn giao diện của cửa sổ terminal cũng như các shell/profile sẽ mở dưới dạng tab mới.

Các cài đặt sẽ được lưu trong một tệp văn bản có cấu trúc, giúp chúng dễ dàng định cấu hình và thiết kế cửa sổ đầu cuối theo sở thích của bạn.

Microsoft không còn tinh chỉnh bảng điều khiển Windows hiện có nữa và đang tạo một bảng điều khiển mới từ đầu, quyết định thực hiện một cách tiếp cận mới. Windows Terminal cài đặt và chạy song song với ứng dụng Windows Console hiện có.

Làm thế nào nó hoạt động

Khi người dùng Windows 10 trực tiếp khởi chạy Cmd/PowerShell/etc, một quy trình gắn với phiên bản Console thông thường sẽ được kích hoạt. Công cụ cấu hình của thiết bị đầu cuối mới cho phép người dùng Windows tạo nhiều cấu hình cho tất cả các shell/ứng dụng/công cụ mong muốn của họ, cho dù trong PowerShell, Command Nhắc, Ubuntu hay thậm chí là kết nối SSH với các thiết bị Azure hoặc IoT.

Các cấu hình này có thể cung cấp các kết hợp riêng về thiết kế và kích thước phông chữ, chủ đề màu sắc, mức độ mờ nền hoặc độ trong suốt. Ngoài ra, người dùng sẽ có thể chọn phông chữ đơn cách mới để làm cho cửa sổ terminal trông hiện đại và ngầu hơn. Phông chữ này có chứa các chữ ghép của lập trình viên; nó sẽ được cung cấp công khai và được lưu trữ trong kho lưu trữ riêng của nó.

Ưu điểm chính của giao diện lệnh Windows mới là nhiều tab và văn bản đẹp. Hỗ trợ nhiều tab được coi là yêu cầu được yêu cầu nhiều nhất để phát triển thiết bị đầu cuối. Văn bản đẹp có được nhờ công cụ kết xuất dựa trên DirectWrite/DirectX, được trang bị khả năng tăng tốc GPU.

Công cụ này hiển thị các biểu tượng văn bản, glyph và các ký tự đặc biệt được tìm thấy trong phông chữ, bao gồm chữ tượng hình tiếng Trung, tiếng Nhật và tiếng Hàn (CJK), biểu tượng cảm xúc, biểu tượng đường dây điện, biểu tượng và chữ ghép lập trình. Ngoài ra, công cụ này hiển thị văn bản nhanh hơn nhiều so với GDI được sử dụng trước đây trong bảng điều khiển.

Khả năng tương thích ngược vẫn ở mức đầy đủ, mặc dù bạn có thể dùng thử Windows Terminal nếu muốn.

Niên đại: nó sẽ xảy ra như thế nào

Microsoft sẽ cung cấp Windows Terminal thông qua Microsoft Store trong Windows 10 và cập nhật nó thường xuyên. Bằng cách này, người dùng sẽ luôn được cập nhật các phiên bản mới nhất và những cải tiến mới nhất – hầu như không cần nỗ lực thêm.

Microsoft có kế hoạch ra mắt thiết bị đầu cuối mới vào mùa đông tới. Sau khi Microsoft tung ra Windows Terminal 1.0, các nhà phát triển sẽ tiếp tục làm việc trên nhiều tính năng đã tồn đọng.

Mã nguồn Windows Terminal và Windows Console đã đăng rồi trên GitHub.

Điều gì có thể chờ đợi chúng ta trong tương lai?

Khả năng Microsoft sẽ sử dụng nhân Linux của riêng mình cho các mục đích khác, chẳng hạn như để phát triển bản phân phối Linux của riêng mình, ngày nay dường như hơi mang tính giả thuyết.

Charles King cho biết, kết quả có thể phụ thuộc vào việc Microsoft có tìm được nhu cầu đáng kể cho một sản phẩm như vậy hay không và những cơ hội thương mại nào mà sự phát triển như vậy có thể mở ra.

Ông cho rằng trọng tâm của công ty trong tương lai gần sẽ là làm cho Windows và Linux ngày càng tương thích và bổ sung cho nhau.

Joshua Schwartz tin rằng trong trường hợp này, cần phải cân nhắc xem khoản đầu tư vào công việc này sẽ là bao nhiêu và lợi tức thu được từ nó sẽ là bao nhiêu. Nếu ngày nay Microsoft là một công ty còn rất trẻ, có lẽ họ sẽ làm mọi thứ dựa trên Linux. Tuy nhiên, việc chuyển tất cả các phát triển đã có sẵn từ Microsoft sang kiến ​​trúc Linux gốc ngày nay dường như là một dự án tốn kém và phức tạp và khó có thể mang lại kết quả tốt. Những người yêu thích Linux sẽ có Linux của riêng họ và kiến ​​trúc cốt lõi sẽ vẫn được giữ nguyên.

Khi Apple phát minh lại Mac OS vào năm 2000, hệ điều hành này dựa trên BSD Unix, giống với Linux hơn là DOS. Ngày nay, một phiên bản mới của Microsoft Windows dựa trên Linux đang được tạo ra.

Có lẽ một cánh cửa mới đang mở ra cho chúng ta?

Nhân Linux của Microsoft có thể mở đường cho khả năng tương tác cao hơn giữa các dịch vụ Windows và hệ điều hành Linux. Về bản chất, những bước phát triển này của Microsoft cho thấy bản thân Microsoft đã hiểu: ngày nay hầu như không còn khách hàng nào thích tồn tại trong một thế giới mà mọi thứ đều là Windows.

Sẽ hợp lý hơn nhiều khi sử dụng các công nghệ và hệ thống không đồng nhất đáp ứng tốt nhất các yêu cầu kinh doanh và các tình huống thực tế cụ thể.

Câu hỏi chiến lược lớn hơn là, động thái này sẽ mở ra những cơ hội chiến lược mới nào cho chính nền tảng Microsoft?

Azure, hệ sinh thái đám mây của Microsoft, đã cung cấp sự hỗ trợ to lớn cho Linux. Trước đây Windows hỗ trợ tốt Linux sử dụng máy ảo.

Những thay đổi cơ bản diễn ra ngày nay là do giờ đây các quy trình Linux sẽ chạy nguyên bản trên nhân Windows, điều đó có nghĩa là làm việc với Linux từ Windows sẽ nhanh hơn nhiều so với trên máy ảo. Kết quả là có khả năng Azure sẽ làm giàu cho chính mình với cả một lớp kỹ sư sử dụng Linux ở quy mô công nghiệp.

Nguồn: www.habr.com

Thêm một lời nhận xét