Використання WSL для неочевидних завдань

  • WSL дозволяє запускати Linux, інтегрований у Windows, поєднуючи інструменти обох систем, не вдаючись до важких віртуальних машин або подвійного завантаження.
  • WSL 2 використовує справжнє ядро ​​Linux поверх Hyper-V, покращуючи продуктивність та сумісність, і стаючи ідеальною основою для розробки Docker та backend.
  • Взаємодія файлів і команд між Windows і Linux дозволяє виконувати менш очевидні завдання, такі як доступ до ext4, відновлення даних або змішані робочі процеси адміністрування.
  • WSL чудово підходить для розробки та навчання, але для інтенсивних робочих навантажень або для використання повного потенціалу Linux все ж краще використовувати реальну машину або традиційну віртуальну машину.

Використання WSL для неочевидних завдань

Якщо ви вже деякий час розробляєте для Windows, ви, мабуть, чули про WSL, підсистема Windows для Linuxмайже як панацея. Багато хто продає її як остаточний спосіб перетворити Windows на «серйозне» середовище розробки, нарівні з Linux чи macOS. Інші ж ставляться до цієї технології з певною підозрою та вважають її стратегічним кроком Microsoft для збереження контролю над робочим столом.

Цікаво, що, окрім типової базової установки, є ще WSL використовується для менш очевидних завдань що може суттєво вплинути на ваше повсякденне життя: від налагодження служб Linux без виходу з Windows до використання для системного адміністрування, розробки Docker або навіть розширеного доступу до файлові системи ext4Давайте детальніше розглянемо, що саме таке WSL, як він розвивався, у яких випадках він справді сяє... і коли може бути краще встановити «справжній» Linux на фізичну машину чи на віртуальну.

Що таке WSL і чому воно викликало стільки галасу?

WSL розшифровується як Підсистема Windows для Linux, функція Windows 10 та 11, яка дозволяє запускати майже повне середовище GNU/Linux у Windows, без необхідності завантажувати традиційну віртуальну машину чи використовувати подвійне завантаження.

Ідея Microsoft полягала в тому, щоб запропонувати Переваги Linux безпосередньо на робочому столі WindowsДоступ до Bash, консольних інструментів, менеджерів пакетів, таких як apt або dpkg, компіляторів, серверів тощо. Все це в максимально інтегрованому інтерфейсі, з обміном файлами між Windows та Linux та можливістю запуску команд Linux з PowerShell або CMD.

Це зобов'язання було особливо актуальним, оскільки Linux домінує в серверах, суперкомп'ютерах та штучному інтелектіХоча Windows залишається беззаперечним королем робочого столу, WSL намагається подолати розрив між цими двома світами, щоб розробникам не довелося вибирати між одним робочим середовищем та іншим, а могли поєднувати обидва одночасно.

З моменту свого дебюту WSL викликав дуже різні думки: деякі користувачі Linux розглядають його як маневр «прийняти, розширити та знищити», тоді як багато розробників Windows вважають його важливий інструмент для сучасного розвиткуособливо з такими технологіями, як Docker, Node.js або бекенд-середовища, які краще працюють на Linux.

Еволюція WSL: від рівня сумісності до WSL 2

Перше покоління, WSL 1Він спирався на рівень трансляції між системними викликами Linux та ядром Windows. Це було щось на кшталт проміжного мосту, який дозволяв запускати бінарні файли Linux без повної віртуалізації операційної системи.

з WSL 2Microsoft змінила свій підхід, і тепер справжнє ядро ​​Linux працює всередині легка віртуальна машина на основі віртуалізації Hyper-VОфіційно Microsoft описує її як оптимізовану утиліту віртуалізації, яка не схожа на традиційну віртуальну машину: вона завантажується дуже швидко, споживає менше ресурсів і тісно інтегрована з Windows.

Перехід на WSL 2 приніс дуже помітні покращення в продуктивність та сумісність із програмним забезпеченням Linux: краща підтримка контейнерів, таких як Docker, можливість використовувати більше інструментів, що залежать від реального ядра, та загалом інтерфейс, ближчий до Linux, встановленого на фізичній машині.

Основна слабкість WSL 2 полягає в тому, продуктивність файлової системи Коли проекти зберігаються на стороні Windows (наприклад, у C:\Users…), Microsoft рекомендує зберігати код і дані у файловій системі Linux (зазвичай /home або шляхи в дистрибутиві), щоб уникнути вузьких місць і досягти прийнятної продуктивності.

З часом WSL 2 також включив офіційна підтримка графічних програм для Linux працює на Windows, що відкриває можливості використання рідних редакторів Linux, інструментів дизайну або утиліт графічного інтерфейсу з робочого столу Windows без звернення до сторонніх рішень, таких як зовнішні X-сервери або VNC.

Де WSL сяє порівняно з іншими рішеннями

Одна з найбільших переваг WSL полягає в тому, що вона дозволяє Використовуйте Linux, не виходячи з робочого середовища WindowsНемає потреби розбивати диск на розділи, налаштовувати менеджер завантаження або постійно перезавантажувати комп'ютер для зміни операційної системи.

Порівняно з класичною віртуальною машиною у VirtualBox або VMware, WSL пропонує... набагато природніша інтеграція з WindowsВи можете отримати доступ до файлів C: з Linux (через /mnt/c), використовувати облікові дані Git, що зберігаються в диспетчері облікових даних Windows, запускати процеси з одного боку на інший та багато іншого. Крім того, дистрибутив завантажується за лічені секунди та споживає ресурси лише тоді, коли ви його фактично використовуєте.

Ця філософія робить WSL ідеальним для користувачі, які хочуть скористатися перевагами консольних інструментів Linux (git, ssh, компілятори, менеджери пакетів) без відмови від типових програм Windows, таких як Office, специфічних графічних інструментів або відеоігор.

Це також дуже практично для профілів, які є роблять перші кроки в LinuxВони можуть вивчати команди, Створення Bash-скриптів у Windows за допомогою WSLВи можете зламати дистрибутив, перевстановити його… і все це, не торкаючись основної системи Windows і не ризикуючи зробити комп’ютер непридатним для використання. Якщо щось піде не так, ви просто видаляєте дистрибутив WSL і починаєте все спочатку.

Ще однією важливою силою є апаратна підтримкаБагато ноутбуків та настільних комп'ютерів мають дещо непослідовну підтримку робочих столів Linux (драйвери Wi-Fi, режим сну, гібридна графіка тощо). У WSL апаратне забезпечення все ще керується Windows, тому середовище Linux опосередковано успадковує цю сумісність без будь-яких серйозних проблем.

WSL проти віртуальних машин, подвійного завантаження та Docker

Легко подумати, що WSL та віртуальна машина — це одне й те саме, але на практиці є важливі відмінності. У класичній віртуальній машині гостьова система Linux… повністю ізольований З точки зору хоста: він має власний віртуальний диск, імітацію обладнання та процес завантаження. WSL 2 справді пропонує віртуалізацію, але мета полягає в тому, щоб користувач відчував себе частиною самої Windows.

Що стосується споживання ресурсів, WSL 2, як правило, є легший за повноцінну віртуальну машинуВіртуальна машина (ВМ) повинна виділити фіксований обсяг оперативної пам'яті та підтримувати повноцінне середовище робочого столу Linux, якщо використовується графічний інтерфейс. WSL запускає лише необхідні служби та може завантажитися трохи більше ніж за секунду, що робить його дуже зручним для коротких робочих сеансів.

Якщо вам потрібно отримати максимальну віддачу від Linux Для інтенсивних робочих навантажень, масштабування сервісів, тестування складних мережевих конфігурацій або використання повністю настроюваного середовища робочого столу традиційна віртуальна машина залишається більш гнучкою. Але для завдань розробки, сценаріїв, термінальних інструментів або легких серверів WSL часто є достатнім і зручнішим.

Порівняно з системою в подвійне завантаженняПеревагою WSL є те, що для перемикання між Windows та Linux не потрібне перезавантаження, а також що він дозволяє досить простий обмін файлами між ними. Однак, якщо ви хочете повною мірою скористатися продуктивністю Linux (наприклад, для ігор на базі Windows, ресурсомістких обчислень або роботи виключно в цьому середовищі), встановлення дистрибутива на фізичне обладнання залишається найкращим варіантом.

Проти DockerПорівняння відрізняється: Docker не прагне запропонувати повноцінну систему Linux, а радше легкі контейнери для конкретних сервісів. WSL 2, фактично, є підтримкою, яка робить Docker набагато плавнішим у Windows, оскільки вона забезпечує необхідне ядро ​​Linux. Для ізоляції виробничих сервісів Docker залишається більш придатним; для розробки та управління за допомогою стандартних системних інструментів WSL є ідеальною основою, на яку спирається Docker.

WSL для розробників: реальні робочі процеси

Використання WSL для неочевидних завдань

Велика перевага WSL полягає в тому, що він спрощує розробники працюють у середовищі, подібному до продакшенуякий майже завжди є Linux, не відмовляючись від Windows як основної системи. Це зменшує несподіванки на кшталт «це працює на моїй машині, але не на сервері» шляхом узгодження версій бібліотек, менеджерів пакетів і служб, а також спрощує Налаштування потоку CI/CD за допомогою дій GitHub коли потрібна безперервна інтеграція.

Для веб-розробки з Node.js або TypeScriptНаприклад, WSL дозволяє встановлювати Node та такі інструменти, як NVM, на Linux, навіть якщо певні утиліти офіційно не підтримуються у Windows або працюють менш ефективно. Ви запускаєте сервер Node в WSL, отримуєте до нього доступ з браузера Windows та редагуєте код за допомогою VS Code, інтегруючи термінал дистрибутива Linux.

з Docker Цей стрибок ще більш вражаючий: раніше Docker на Windows був громіздким, обмеженим і спричиняв значні проблеми з продуктивністю. Завдяки можливості використовувати Docker на WSL 2, контейнери Linux працюють набагато точніше, як на реальному сервері, з покращеною продуктивністю вводу/виводу та меншою кількістю проміжних рівнів.

Те саме стосується й інших екосистем розробки, які завжди мали деякі недоліки у Windows: Ruby, "серйозний" серверний Python, локальні інструменти неперервної інтеграції, сервери баз даних як-от PostgreSQL чи Redis… Все це відчувається набагато природніше у WSL, ніж у рідних портах Windows.

Крім того, WSL бездоганно інтегрується з Термінал WindowsЦя програма дозволяє відкривати кілька вкладок і профілів — PowerShell, CMD та різні дистрибутиви Linux — все в одному вікні. Це дозволяє перемикатися між оболонками одним клацанням миші, налаштовувати кольори та шрифти, а також спрощувати щоденний робочий процес за допомогою одного потужного терміналу.

Встановлення та керування WSL (включаючи ключові деталі)

В останніх версіях Windows 10 та Windows 11 базова інсталяція WSL була значно спрощена. Просто відкрийте PowerShell з правами адміністратора і запустіть:

wsl --install

Ця команда відповідає за встановлення компонента WSL та завантаження дистрибутива Linux за замовчуванням, зазвичай UbuntuЗрештою, під час першого відкриття цього дистрибутива вам буде запропоновано створити ім'я користувача та пароль, специфічні для Linux, які будуть окремими від вашого облікового запису Windows.

Якщо ви хочете побачити, які інші дистрибутиви доступні, ви можете перерахувати їх за допомогою:

wsl --list --online

Список включатиме такі дистрибутиви, як Debian, Kali Linux, openSUSE та інші. Щоб встановити певний, використовуйте:

wsl --install -d <nombre_distribucion>

Ви також можете керувати версією WSL, яка використовується. Щоб перевірити, яка версія пов’язана з кожним встановленим дистрибутивом:

wsl -l -v

Якщо ви хочете, щоб WSL 2 була версією за замовчуванням під час встановлення нових дистрибутивів, використовуйте:

wsl --set-default-version 2

А якщо у вас вже є дистрибутив у WSL 1 і ви хочете оновити його до WSL 2, команда така:

wsl --set-version <nombre_distribucion> 2

У деяких старіших інсталяціях може з’явитися повідомлення про те, що WSL 2 потребує оновлення ядраУ такому випадку вам потрібно завантажити офіційний інсталятор ядра Linux для WSL з URL-адреси, зазначеної в самому повідомленні, запустити його, перезапустити та повторити команду перетворення WSL 2.

Доступ до файлів, сумісність та менш очевидні завдання

Одна з найпотужніших можливостей WSL – це сумісність між файловими системамиЗ Linux ви можете легко отримати доступ до дисків Windows за такими шляхами, як /mnt/c, /mnt/dтощо, що дозволяє редагувати файли інструментами з обох сторін зі значною свободою.

Ще цікавіше те, що WSL це дозволяє Windows отримує доступ до файлових систем ext4 використовується Linux. Якщо до вашого комп'ютера підключено диск або розділ ext4, WSL може вам допомогти. обробка атрибутів файлів у Linux Тепер ви можете монтувати та переглядати цей контент без необхідності встановлювати сторонні інструменти у Windows. Однак все це робиться з командного рядка Linux, без вбудованого графічного інтерфейсу в браузері.

Ця можливість робить WSL дуже корисним інструментом для Відновлення даних з дисків LinuxРобота з розширеними конфігураціями сервера або переміщення проектів між фізичним та віртуальним середовищами – це функція, яка часто залишається непоміченою, але вона може заощадити вам багато годин під час роботи з розділами Linux із системи Windows.

Іншим, менш очевидним використанням є можливість Запуск програм Windows з Linux і навпакиЗ PowerShell ви можете запускати команди Linux, додаючи префікс wsl (наприклад, wsl ls), а з консолі WSL можна запускати виконувані файли Windows, вказавши відповідний шлях і розширення .exe, що відкриває цікаві змішані робочі процеси.

Для вашого першого знайомства з оболонкою Linux у WSL бажано ознайомитися з основними командами: ls, cd, пароль, а також з керуванням пакетами (sudo apt update && sudo apt upgrade), щоб система була оновлена ​​та готова до встановлення інструментів розробки.

WSL 2: поширені запитання, мережі, графічні процесори та продакшн

WSL 2 доступний на обох Вікна 10 Головна (починаючи з певних збірок), як-от у Windows 11 Home та Pro, за умови, що на апаратному забезпеченні та в BIOS увімкнено віртуалізацію. Внутрішньо він використовує технологію Hyper-VОднак Microsoft працювала над тим, щоб зробити його сумісним з іншими інструментами віртуалізації, такими як VirtualBox або VMware, особливо в їхніх найновіших версіях.

Одним із важливих досягнень стало Доступ до графічного процесора з WSL 2 (Дізнайтеся, як встановити CUDA на WindowsЦе дозволяє пришвидшити обчислювальні завдання, роботу зі штучним інтелектом або графіку в певних сценаріях. Ця функціональність продовжує розвиватися та вимагає сумісних драйверів та обладнання, але відкриває можливості для використання, які раніше були доступні лише з системою Linux, встановленою на фізичній машині.

На мережевому рівні WSL 2 працює з віртуалізованим інтерфейсом, який вводить деякі додаткові рівні комунікаціїБільшість мережевих застосунків працюють безперебійно, але деяке зниження продуктивності може бути помітним у завданнях дуже низького рівня або в певних тестах продуктивності. Однак для звичайної розробки з веб-серверами, базами даних або API він зазвичай цілком придатний для використання.

Щодо його використання в виробничих середовищMicrosoft наполягає на тому, що WSL в першу чергу призначений для розробки та тестування. Він чудово підходить для реплікації серверних середовищ, але для критичних робочих навантажень та серйозного масштабування, як і раніше, рекомендується розгортання на рідному Linux, традиційних віртуальних машинах або контейнерах на спеціалізованих платформах.

WSL також дозволяє виконувати резервні копії та міграції дистрибутивів Ви можете використовувати команди експорту та імпорту, а також переміщувати файли на диск, відмінний від C:, якщо вам потрібно звільнити місце або реорганізувати сховище. Ці опції підвищують вашу гнучкість без втрати інтеграції з Windows.

WSL, Linux на реальній машині та майбутнє робочого столу

Все вищесказане не змінює того факту, що для багатьох користувачів найкращим варіантом залишається використання Linux безпосередньо на фізичній машині та перенесення Windows на віртуальну машину за потреби. Серед найчастіше згадуваних причин – підвищені вимоги Windows до обладнання (особливо у Windows 11 з TPM, підтримуваними процесорами тощо), що виключає багато цілком придатних для використання комп’ютерів.

З встановленим на головному диску хорошим дистрибутивом Linux ви можете скористатися перевагами старого обладнання які Windows 11 більше офіційно не підтримує, і водночас запускати Windows 10/11 у віртуальній машині для тих програм, які цього потребують, минаючи такі вимоги, як TPM або певні перевірки процесора.

Популяризація таких пристроїв, як Steam Deck та SteamOS Це також вказує на майбутнє, де Linux набирає обертів на робочих столах, особливо в іграх. Збільшення кількості користувачів Linux спонукає виробників обладнання пропонувати кращу офіційну підтримку (драйвери, програмне забезпечення для налаштування, розширені функції), що приносить користь усій екосистемі.

У цьому контексті використання WSL має цікавий наслідок: хоча це значно спрощує життя розробникам Windows, Це не збільшує частку ринку Linux як настільної системиОскільки «справжньою» операційною системою, яка керує машиною, все ще є Windows, це може затримати інтерес деяких виробників до значних інвестицій у Linux.

Чим більше користувачів почнуть використовувати Linux на фізичних машинах, тим більший тиск буде на виробників щодо покращення драйверів, сумісності з Wi-Fi, звукових карт, RGB-пристроїв та ігрових контролерів. WSL дуже корисний для продуктивності, але він не замінює впливу користувача, який завантажує дистрибутив Linux безпосередньо на свій основний комп'ютер.

Обмеження, поширені проблеми та напрямок розвитку WSL

WSL, особливо у своїй першій версії, мав чіткі обмеження доступу до ядра та сумісностіІнструменти, що спиралися на низькорівневі функції, працювали неправильно (наприклад, Docker у WSL 1). Багато з цих недоліків було вирішено у WSL 2, але деякі проблеми залишаються.

La підключення до мережі Він проходить через кілька рівнів, що в дуже специфічних ситуаціях може впливати на продуктивність служб, що працюють на дуже низькому рівні. Деякі периферійні пристрої також не інтегруються ідеально через те, як Hyper-V керує віртуалізованим обладнанням.

Також існують проблеми зі сприйняттям: маючи можливість використовувати повноцінні середовища Linux з Windows, деякі користувачі можуть зробити висновок, що Більше не варто встановлювати рідний робочий стіл LinuxЦе зменшує вплив реальних переваг вільної та повністю незалежної системи.

У серверній сфері, хоча WSL можна використовувати в Windows ServerБагато дистрибутивів, доступних у Microsoft Store, не призначені для роботи як повноцінні серверні системи (наприклад, вони не використовують systemd за замовчуванням), що ускладнює управління службами та демонами традиційним способом.

Крім того, WSL не вільний від помилки встановлення та налаштуванняТакі коди помилок, як 0x80070003, 0x80370102 або 0x8007019e, зазвичай вказують на проблеми з місцем встановлення, неактивованим компонентом WSL або вимкненням віртуалізації в BIOS. Оновлення Windows, увімкнення правильних додаткових функцій та забезпечення ввімкнення Hyper-V та апаратної віртуалізації зазвичай вирішує більшість цих проблем.

Також існує цікава паралель з Підсистема Windows для Android Ця функція, представлена ​​у Windows 11, дозволяє програмам Android безперебійно працювати, використовуючи аналогічну технологію. Це демонструє, що Microsoft бачить великий потенціал у цій гібридній моделі запуску інших систем у Windows без звернення до традиційних віртуальних машин, і дає зрозуміти, що WSL продовжуватиме отримувати увагу та вдосконалення у середньостроковій перспективі.

Загалом, WSL став дуже потужним інструментом для узгодження світу Windows з екосистемою Linux, і хоча він все ще страждає від технічних та стратегічних обмежень, він пропонує сьогодні... дуже привабливий баланс між зручністю, інтеграцією та доступом до професійних інструментів який, за умови правильного використання, може повністю змінити спосіб розробки та управління системами з вашого ПК.

створювати гібридні робочі процеси Windows–Linux
Пов'язана стаття:
Як створювати гібридні робочі процеси Windows–Linux у сучасних середовищах