Съвместимост с Windows

Linux ядро ​​в Windows 10

Linux ядро ​​в Windows 10
Как работи новата подсистема на Windows за Linux (v2)?

Microsoft наскоро обяви, че скоро ще достави Linux ядро, което е интегрирано директно в Windows 10. Това ще позволи на разработчиците да използват платформата Windows 10, когато разработват приложения за Linux. Всъщност това е следващата стъпка в еволюцията на подсистемата на Windows за Linux (WSL). Нека да прегледаме WSL версия 1, преди да влезем в грубостта на ядрото на Linux и какво означава това.

Ако искате да започнете с WSL (v1), ето ръководство за това.

1.  WSL версия 1

Подсистемата Windows за Linux наистина трябва да се нарича Linux подсистема за Windows. Той предлага драйвер (подсистема) за операционната система Windows, който превежда системните повиквания на Linux в собствени системни повиквания на Windows 10, които ядрото на NT разбира.

Това създава донякъде правдоподобна илюзия за двоичните файлове на Linux, че те всъщност се изпълняват върху ядрото на Linux! Това работи достатъчно добре, че не само можете да стартирате прости 64-битови двоични файлове, съставени за Linux, но можете да стартирате цяла Userland (a.к.дистрибуция на Linux като Debian или Ubuntu) върху WSL v1. Така че, когато инсталирате Ubuntu от магазина на Microsoft, той просто извлича двоичните файлове на потребителската страна на Ubuntu, които Canonical доставя за околната среда на WSL v1 на Microsoft.

WSL v1 обаче все още е далеч от съвършенството. Определени семантики, които да очаква Linux система, са напълно неприемливи за Windows. Например не можете да промените името на файла на отворен файл в Windows, но можете да го направите в Linux.

Други очевидни примери включват лошата производителност на файловата система на WSL v1 и неспособността му да стартира Docker.

2.  WSL v2 ядрото на Linux

Тази нова версия на WSL решава всички тези проблеми, като включва ядрото на Linux, работещо в хипервизора Hyper-V. По време на своите анонси и демонстрации Крейг Лоуен и неговият колега от Microsoft подчертаха, че с напредването си Microsoft ще инвестира огромно в технологиите за виртуализация.

Използването на ядро ​​на Linux решава всички семантични проблеми, които не могат да бъдат решени само с помощта на слой за превод на системно повикване. Това ядро ​​на Linux ще бъде много леко и ще бъде поддържано от Microsoft с всички промени в ядрото на Linux, направени с отворен код. В тяхната демонстрация те показаха как можете просто да мигрирате съществуващите WSL v1 приложения, за да стартирате немодифицирани в WSL v2 среда. Производителността на файловата система се е подобрила с 3-4 пъти и цялата система се чувства много по-отзивчива.

3.  Как работи?

Така че основно имаме Linux VM с много приложения на потребителските страни, напр.g, OpenSUSE или Debian или Ubuntu потребителска земя. Получавате повече от едно дистрибуция на вашата машина с Windows, с една Linux VM, така че това е добре. Но това също така означава, че всеки път, когато отворите вашия терминал WSL Ubuntu, стартирате пълна VM! Това ще отнеме известно време, нали?

Всъщност не. Ядрото на Linux всъщност е достатъчно малко и достатъчно леко, за да може Microsoft да получи безумно време за зареждане с него (~ 1секунда). Те постигнаха това, като премахнаха целия код на буутлоудъра и тъй като това е виртуална машина, те директно зареждат ядрото на Linux в неговото адресно пространство в паметта и настройват няколко състояния на виртуалната машина, които ядрото очаква. Това е същият механизъм, който задвижва друга нова функция на Windows 10, която е Windows Sandbox.

Той има много малък отпечатък на паметта, зарежда се за секунда и родният формат на файловата система ext4 му позволява да осигури много гладко потребителско изживяване. Виртуалната машина работи само когато имате нужда от нея.

Освен това той не е напълно изолиран като традиционната виртуална машина. Можете много лесно да взаимодействате с останалата част от системата на Windows, включително файлове във вашите Windows устройства, използвайки WSL v2. Това не е изолирана виртуална машина, а интегрирана част от Windows 10. Как постига това?

4.  Да живее План 9

С WSL v1 достъпът до файлове и директории на вашите гости на Windows беше тривиален. Потребителската ви страна на Linux е само приложение за Windows, така че може да чете и записва файлове, първоначално принадлежащи на родната ОС, доста лесно.

С WSL v2 имате VM, работеща с нейния виртуален твърд диск (форматиран с ext4, разбира се) и ако искаме подобно изживяване като това на WSL v1, имаме нужда от допълнителни механизми. Въведете план 9.

План 9, също написан като, 9P е операционна система, първоначално разработена в Bell Labs. Макар че е малко вероятно някога да го намерите да работи в производство, той все още живее, тъй като различни други операционни системи възприемат интересни идеи, които се инкубират в него, включително протокола 9P за файлов сървър.

5.  Файлови системи

WSL v2 ще има 9P сървър за протоколи, работещ на вашия хост с Windows 10, и 9P клиент, работещ във вашите WSL приложения. Това ви позволява достъп до файлове с Windows 10 вътрешно във вашата WSL среда. Устройството C: ще бъде монтирано на / mnt / c, точно както WSL v1, и всеки файл в хоста на Windows 10 може да бъде достигнат от WSL средата.

Обратното също ще бъде вярно. Ще има сървър за протоколи 9P, работещ във вашата Linux среда със съответния клиент на Windows 10 хост. Това ще позволи на потребителите да имат достъп до тяхната файлова система Linux (ext4) от Windows 10 среда. Позволява ви да редактирате изходния си код или конфигурационни файлове, като използвате любимата си IDE, инсталирана на Windows, изброявайки всички директории, използващи Windows 10 File Explorer, и много повече. По същество ще използвате любимите си дистрибуции на Linux с потребителския интерфейс на Windows 10.

6.  Докер

В съобщението си Microsoft също намекна, че тази нова среда също ще бъде използвана от Docker за изпращане на бъдещите им приложения Docker за Windows. Тъй като има ядро ​​на Linux, стартирането на Docker върху него ще бъде доста лесно. В демонстрацията те пуснаха Docker отгоре на Ubuntu, работещ с WSL v2, и той работи, сякаш работи на родна инсталация на Ubuntu.

За да дадете много повърхностен пример, ако сте работили с Dockerfiles в система с Windows, трябва да сте забелязали проблемите със сигурността, които са причинени поради липсата на разрешения за Unix като файлове. Това вече няма да е проблем. Docker в Windows вече използва персонализирана виртуална машина за предоставяне на Linux контейнери, вероятно ще използва WSL v2, за да използва ядрото на Linux, което Microsoft доставя.

Заключение

Като цяло съм много впечатлен от това, което Microsoft прави, за да осигури убежище за разработчиците на Linux, които също искат да използват Windows. Надяваме се, че в дългосрочен план това ще насърчи много кръстосано опрашване между двете различни екосистеми.

Ако използвате Windows 10 Home, Pro или Enterprise Edition, можете да опитате WSL v2, като се включите в компилациите за предварителен преглед на Windows 10. Ето ръководство за това как да направите това.

Как да заснемете и поточно предадете игралната си сесия на Linux
В миналото играта на игри се смяташе само за хоби, но с течение на времето игралната индустрия отбеляза огромен ръст по отношение на технологиите и бр...
Най-добрите игри за игра с ръчно проследяване
Oculus Quest наскоро представи страхотната идея за ръчно проследяване без контролери. С непрекъснато нарастващия брой игри и дейности, които изпълнява...
Как да покажете OSD наслагване в приложения на цял екран за Linux и игри
Играта на цял екран или използване на приложения в режим на цял екран без разсейване може да ви откъсне от съответната системна информация, видима в п...