Підсистема Windows для Linux (WSL) – підсистема ОС Windows 10, що дозволяє розробникам, тестувальникам запускати нативні додатки Linux, писати скрипти, виконувати команди безпосередньо з Windows. В оновленій Windows 10 (2004) з’явилася 2а версія WSL, в якій використовується повноцінне ядро Linux з можливістю запуску додатків і контейнерів Docker, реалізована висока швидкість завантаження, невеликий обсяг споживаних ресурсів, управління у фоновому режимі, оновлення ядра. Таким чином ви зможете запускати ELF64 програми, які можуть отримувати доступ до файлової системи Windows без використання сторонніх порто (таких як Cygwin).
Образ ядра Linux (версія ядра 4.19) в Windows 10 являє собою легку віртуальну машину, для запуску якої не потрібно ставити повноцінну роль Hyper-V. Системні виклики Linux транслюються на льоту в виклики Windows без використання емулятора (на відміну від WSL1).
Спочатку компонент WSL відключений. Щоб його включити, вам необхідно зайти в Пуск -> Панель управління -> Програми та засоби -> Включення і відключення компонентів Windows (Control Panel All Control Panel Items Programs and Features Turn Windows features on or off), активувати галочку Подсистема Windows для Linux (Підсистема Windows для Linux), натиснути кнопку ОК, і перезавантажити комп’ютер.
Ви можете включити компоненти WSL в Windows 10 за допомогою dism:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
або PowerShell
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
Install-WindowsFeature -Name Microsoft-Windows-Subsystem-Linux
Після цього також необхідно перезавантажити комп’ютер.
У настройка BIOS / UEFI комп’ютера повинна бути включена підтримка апаратної віртуалізації: Intel VT (Віртуалізація Intel Технологія) або AMD-V.
Тепер вам потрібно виконати оновлення WSL до версії 2. Для цього потрібно зайти на сайт https://docs.microsoft.com/ru-ru/windows/wsl/wsl2-kernel, Завантажити файл wsl_update_x64.msi, Встановити його. По завершенні побачите картинку
Щоб зробити WSL2 архітектурою за замовчуванням для нових дистрибутивів, в PowerShell виконайте команду:
wsl --set-default-version 2
Далі вам необхідно відкрити Магазин Microsoft, В пошуку ввести слово “Linux”. У списку виберіть потрібний дистрибутив. Доступні Ubuntu, Debian, Kali Linux, Linux Cheatsheet, SUSE Linux Enterprise Server15, openSUSE Leap 15-1, Pengwin Enterprise, Fedora Remix for WSL або інші. У нашому прикладі ми будемо використовувати Ubuntu 20.04 LTS, натисніть кнопку Отримати.
Invoke-WebRequest https://aka.ms/wslubuntu2004 -OutFile ubuntu-2004.zip –UseBasicParsing
Розпакуйте архів:
Expand-Archive -Path .ubuntu-2004.zip
Запустіть установку способу Linux за допомогою файлу Ubuntu.exe.
Також ви можете скачати образ у вигляді appx файлу і встановити його за допомогою командлета Add-AppxPackage.
Після установки можна перевірити використовувану версію WSL за допомогою команди
wsl --list –-verbose
Якщо у вашої середовища Linux вказана версія 1, потрібно змінити її на WSL2 командою:
wsl --set-version Ubuntu-20.04 2
Файл жорсткого диска з образом віртуальної машини ОС Linux Ubuntu 20.04 буде розташовуватися в профілі користувача: C: Users 234 AppData Local Packages CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc LocalState.
Після установки дистрибутива в стартовому меню з’являється ярлик на нього. Для запуску Ubuntu зайдіть в меню Пуск, натисніть на відповідному ярлику і отримаєте в окремому вікні повноцінну командну оболонку Bash. Запускати WSL можна і за допомогою команди wsl. При першому запуску образу в командному рядку Bash вам буде запропоновано створити користувача і пароль (які не повинні збігатися з обліковим записом Windows). Щоб виконувати команди з правами root, необхідно використовувати додатковий ключ (префікс) sudo. У WSL є загальні команди для Bash і CMD, і тут потрібно не забувати, що система Linux чутлива до регістру.
Ви можете виконати Linux-команди з CMD. Для цього необхідно спочатку вказати “WSL”. Наприклад, щоб переглянути список файлів і папок в каталозі Windows, виконайте:
wsl
ls /mnt
ls/mnt/c
dir | wsl grep Sa
wsl ls ‑la > 123.txt
wsl ls ‑la /proc/cpuinfo
wsl ls ‑la “/mnt/c/Program Files”
Також ви можете відкрити провідник командою explorer.exe, калькулятор – calc.exe, блокнот – notepad.exe, paint – mspaint.exe, календар – cal, погоду – curl wttr.in
Ще один приклад взаємозв’язку 2х систем – ви можете відкрити в Windows файл з WSL-дистрибутива з мережевого шляху. Для цього в CMD наберіть шлях до файлу:
notepad \wsl$Ubuntu-20.04home1122.txt
З вікна консолі ви можете оновити список пакетів в Ubuntu за допомогою команд:
sudo apt-get update
sudo apt-get upgrade
Після поновлення Ubuntu папка … / LocalState буде займати 1.5 Гб.
З командного рядка Linux можна не тільки переглянути Windows-файли і каталоги, а й отримати до них доступ. Щоб зручніше копіювати файли, переглядати директорії і їх вміст, встановіть файловий менеджер Midnight Commander за допомогою команди
sudo apt-get install mc
Ви можете запустити Midnight Commander як в командній оболонці Bash, так і всередині CMD. На скріншоті нижче показано, що в двох панелях MC показується список файлів з обох ОС.
Можна отобрахіть мережеві настройки (IP адреса) IP-адреса Linux-системи:
ip addr | grep eth0
У WSL не передбачена робота додатків з графічним інтерфейсом. Проте ви можете спробувати їх встановити і використовувати. Щоб запускати графічні додатки в Linux, потрібно завантажити і встановити в Windows програму VcXsrv Windows X Server (https://sourceforge.net/projects/vcxsrv/).
За допомогою пакетного менеджера apt-get встановимо кілька графічних програм: наприклад, браузер, текстовий редактор або щось ще:
sudo apt-get install gedit
sudo apt-get install firefox
sudo apt-get install x11-app
Потім створіть файл в директорії корінь:
cd /~
vim .bash_login
впишіть рядок
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
збережіть запис
Esc -> :wr -> :q
Тепер можете запустити графічні програми Linux через WSL командами:
firefox
або
gedit
Ви можете встановити в Windows 10 декілька дистрибутивів Linux і запускати одночасно в різних вікнах WSL. Вивести весь перелік встановлених дистрибутивів можете за допомогою команди:
wsl --list –all
щоб завершити роботу всіх запущених дистрибутивів і ядра WSL 2, виконайте команду:
wsl --shutdown