Инсталирайте подсистемата Windows за Linux

Install Windows Subsystem



Подсистемата Windows за Linux е помощна програма, разработена от Microsoft, за да даде възможност на разработчиците и ентусиастите на Linux да изпълняват любимата си Linux среда в Windows 10 без допълнителни разходи за стартиране на виртуална машина. Начинът на работа е подобен на начина ВИНО работи на Linux. WSL позволява на двоичните файлове на Linux да се изпълняват в Windows, използвайки слой за съвместимост, който превежда системните повиквания на Linux в системни повиквания на Windows.

Архитектура

Може да се каже, че WSL работи по -добре в Windows, отколкото WINE в Linux и причината за това е, че Linux е уникален по отношение на своята архитектура. Докато повечето операционни системи се състоят от ядро ​​и цял набор от библиотеки и функции, изградени около това ядро, Linux е просто ядро. Повечето GNU/Linux дистрибуции вземат това ядро ​​и изграждат стек от операционни системи върху него. В зависимост от това как сте избрали да изградите този стек, получавате различни дистрибуции като Debian, RedHat и т.н.







За да стартирате Linux среда в Windows, трябва да активирате функцията WSL (това ще разгледаме скоро) и след това да отидете в магазина на Microsoft, за да получите копие от любимата си дистрибуция (Ubuntu, Debian, OpenSUSE и т.н.).



Първата стъпка позволява слоя за превод на syscall, а втората стъпка включва лек стек от софтуер, който да ви даде пълна операционна система Linux, която да работи върху функцията WSL. Да се ​​направи обратното, т.е. да се работи с приложения на Windows в Linux е много по -трудно, защото Windows е много повече от ядрото на NT.



Поради тази причина няма виртуална машина, участваща в внедряването на WSL, което я прави привлекателна опция. Няма да имате загуба на производителност, тъй като не са включени виртуални машини, само естествен лек слой за превод на syscall.





Инсталиране и настройка

На вашия компютър с Windows 10 потърсете Включване или изключване на функциите на Windows, като щракнете върху клавиша Windows и въведете същото в менюто 'Старт'. След като се отвори менюто с функции на Windows, превъртете до дъното, където ще намерите функцията подсистема на Windows за Linux. Поставете отметка в това поле и щракнете върху OK.



Windows ще се погрижи за настройката от тук нататък и след като всичко е направено, ще се наложи да рестартирате системата си, за да финализирате промените. След рестартирането можете да отидете в Microsoft Store и да потърсите любимата си дистрибуция там.

Можете да търсите в магазина за любимата си дистрибуция. По -долу е екранна снимка на някои от най -използваните дистрибуции. Можете да видите два варианта на OpenSUSE, приложение на Debian и Kali Linux.

Разбира се, най -популярната дистрибуция все още е Ubuntu с 16.04 и 18.04 LTS, налични в магазина.

Инсталирайте подсистемата Windows за Linux

Сега просто трябва да изберете дистрибуцията, която искате, и да инсталирате съответното приложение. Ще инсталираме Ubuntu 18.04 LTS за нашата WSL среда. Размерът му е около 215 MB, много по -малък от цялата инсталация на Ubuntu.

След като приложението е инсталирано, можете да го стартирате директно от приложението Microsoft Store или като го потърсите в менюто 'Старт'. При стартирането за първи път ще отнеме известно време, за да настроите нещата за вас.

Може да отнеме до 5 минути, но след като това стане, ще бъдете подканени да въведете новото си потребителско име и парола за UNIX и сте готови!

Стартираният терминал ще ви предложи почти всички функционалности на система Ubuntu, с изключение на графичния интерфейс. Тъй като повечето от UNIX/Linux възможностите идват заради силата на терминала, това може да ви отведе далеч.

Например, можем да започнем да използваме тази среда, като актуализираме всички пакети, инсталирани в нея.

$sudoподходяща актуализация&& sudoподходящ ъпгрейд

Неща, които можете и не можете да правите в WSL среда

Сега въпросът, който възниква в съзнанието на всеки, е - Каква е уловката?

Нека разгледаме обратния случай. С технологии като WINE знаем, че не всичко, което може да се направи в Windows, не може да се направи в Linux. Системни библиотеки на ниско ниво като DirectX няма да бъдат налични в Linux и много приложения в Windows разчитат на такива библиотеки.

Операционни системи като Windows 10, FreeBSD или Illumos са пълноценни операционни системи, а не само ядрото. С Windows, тъй като повечето библиотеки са собственост и това прави въпроса по -труден. Това прави работата на проект като WINE много по -трудна.

С опитите за подражание на Linux в Windows е точно обратното. Плътният набор от ABI повиквания (или системни повиквания) на Linux е всичко, което трябва да преведете в Windows, за да стартирате всичко отгоре. Ако се опитаме да попитаме Ubuntu на WSL кое ядро ​​работи, това ще ви даде номер на версия на ядрото на Linux, като Microsoft споменава заедно с номера на версията, за да покаже, че това не е главният клон на проекта за ядрото на Linux.

$непознат -да се

Ако копаем по -дълбоко, ще открием, че докато се показват функционалности на високо ниво, като оформление на файловата система и мрежови конфигурации, дейностите на по -ниско ниво, като оформление на блок за съхранение, няма да работят.

Например следните команди ще работят според очакванията:

$df

$ifconfig

И двете команди ви казват информация за вашата родна система, която всъщност работи с Windows. Това не е нещо като стартиране на виртуална машина, където има различни мрежови интерфейси и различни файлови системи.

Команди като lsblk няма да работи, тъй като съхранението на блокове на по -ниско ниво не е това, което Linux очаква да бъде. По същия начин инсталирането на OpenZFS е безполезно, тъй като OpenZFS инсталира няколко зареждащи се модули на ядрото и нямаме ядро ​​на Linux само илюзия за това.

Същото важи и ако се опитвате да стартирате docker. Когато инсталирате Docker, Ubuntu няма да се оплаче, обаче услугата Docker няма да стартира, тъй като зависи от Systemd, който липсва в тази подсистема.

Можете обаче да стартирате множество услуги и помощни програми, за да улесните живота си. Ако управлявате сървърите на Linux за препитание, не е задължително да имате Linux на вашия работен плот. Можете да стартирате SSH клиенти, Docker клиент, bash, помощни програми като grep и awk, както и любимия си език за програмиране от Python до Rust в тази среда, без да замърсявате вашата Windows система.

Можете също да стартирате вашата CD/CI автоматизация, като използвате Ansible, Puppet или друга технология, която предпочитате. Тоест, всичко, което DevOp, разработчик или тестер на уеб или приложения би изисквал от Linux система, може да бъде постигнато с WSL, с изключение на хората, работещи със системния софтуер и/или разработката на ядрото.

Заключение

Имате ли собствени мисли или опит с подсистемата Windows на Linux? Или може би все още имате въпроси, на които имате нужда от отговори. Свържете се с нас с вашите запитвания и ние ще разгледаме тази тема за вас.