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

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

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

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

Подсистемата на Windows за Linux е помощна програма, разработена от Microsoft, за да позволи на разработчиците и ентусиастите на Linux да стартират любимата си Linux среда в Windows 10 без да се налага да работят с виртуална машина. Начинът, по който работи, е подобен на начина, по който WINE работи на 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 на разположение в магазина.

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

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

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

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

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

$ sudo apt update && sudo apt upgrade -y

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

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

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

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

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

$ uname -a

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

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

$ df -h

$ ifconfig

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

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

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

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

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

Заключение

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

Топ 5 карти за залавяне на игри
Всички сме виждали и обичаме поточни игри в YouTube. PewDiePie, Jakesepticye и Markiplier са само някои от най-добрите геймъри, които са спечелили мил...
Как да разработите игра на Linux
Преди десетилетие не много потребители на Linux биха прогнозирали, че любимата им операционна система един ден ще бъде популярна игрална платформа за ...
Пристанища с отворен код на търговски игрални машини
Безплатни разширения на играта с отворен код и междуплатформени игри могат да се използват за възпроизвеждане на стари, както и някои от доста скорошн...