Установить подсистему 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 и т. Д.).



Первый шаг включает уровень трансляции системных вызовов, а второй шаг включает легкий стек программного обеспечения, который дает вам полную ОС Linux для работы поверх функции WSL. Сделать наоборот, то есть запустить приложения Windows в Linux намного сложнее, потому что Windows - это гораздо больше, чем просто ядро ​​NT.



По этой причине для реализации WSL не задействована никакая виртуальная машина, что делает его привлекательным вариантом. У вас не будет потерь в производительности, потому что не задействованы виртуальные машины, а только встроенный облегченный уровень трансляции системных вызовов.





Установка и настройка

На своем ПК с Windows 10 выполните поиск по запросу «Включение или отключение компонентов Windows», нажав клавишу Windows и введя ее в меню «Пуск». Как только откроется меню Windows Features, прокрутите вниз, где вы найдете функцию Windows Subsystem for Linux. Установите этот флажок и нажмите ОК.



С этого момента Windows позаботится о настройке, и как только все будет сделано, вам потребуется перезагрузить систему, чтобы завершить изменения. После перезагрузки вы можете перейти в Microsoft Store и найти там свой любимый дистрибутив.

Вы можете найти в магазине свою любимую раздачу. Ниже приведен снимок экрана с некоторыми из наиболее часто используемых дистрибутивов. Вы можете увидеть два варианта OpenSUSE, приложение Debian и Kali Linux.

Конечно, самым популярным дистрибутивом по-прежнему остается Ubuntu с доступными в магазине версиями 16.04 и 18.04 LTS.

Установить подсистему Windows для Linux

Теперь вам просто нужно выбрать нужный дистрибутив и установить соответствующее приложение. Мы будем устанавливать Ubuntu 18.04 LTS для нашей среды WSL. Его размер составляет около 215 МБ, что намного меньше, чем вся установка Ubuntu.

После того, как приложение установлено, вы можете запустить его прямо из приложения Microsoft Store или выполнив поиск в меню «Пуск». После первого запуска потребуется некоторое время, чтобы настроить все за вас.

Это может занять до 5 минут, но как только это будет сделано, вам будет предложено ввести новое имя пользователя и пароль UNIX, и все готово!

Запущенный терминал предложит вам почти все функции системы Ubuntu, кроме графического интерфейса. Поскольку большинство возможностей UNIX / Linux основаны на мощности терминала, это может помочь вам далеко.

Например, мы можем начать использовать эту среду, обновив все установленные в ней пакеты.

$судоподходящее обновление&& судоподходящее обновление-а также

Что можно и нельзя делать в среде 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 Ubuntu не будет жаловаться, однако служба Docker не запускается, так как это зависит от Systemd, которого нет в этой подсистеме.

Однако вы можете запустить множество сервисов и утилит bash, чтобы облегчить себе жизнь. Если вы зарабатываете на жизнь управлением Linux-серверами, вам не обязательно иметь Linux на вашем рабочем столе. Вы можете запускать SSH-клиенты, Docker-клиент, bash, такие утилиты, как grep и awk, а также ваш любимый язык программирования от Python до Rust в этой среде, не загрязняя вашу систему Windows.

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

Заключение

У вас есть собственные мысли или опыт работы с подсистемой Windows в Linux? Или, может быть, у вас все еще есть вопросы, на которые вам нужны ответы. Свяжитесь с нами с вашими вопросами, и мы рассмотрим эту тему для вас.