Почув я якось про "Windows з ядром linux". Новина вже і не нова, але коли в тебе в якості основної ОС linux вже більше 12 років, то новини в категорії "Microsoft Windows", чесно кажучи, відслідковуєш вже не так пильно.
Дана функція/додаток/платформа у Windows 10 називається Windows Subsystem on Linux (WSL). Наразі WSL версії 2 доступна в збірці для "інсайдерів" (користувачів, що приймають участь в тестуванні бета-версій ОС на ранніх етапах) у Win10 версії 20H1.
Про те, яка гарна ця версія Win10 можна почитати тут.
Порядок додавання нових "фішок" − знизу-вверх.
А може саме на цій сторінці і описано частину процесу трансформації ОС Windows 10 в загадкову ОС з тимчасовим ім'ям "LiteOS/Windows Lite", яка має "з'явитися" весною 2020-го? Хтозна!
А тепер серйозно! Що ж це таке "Windows з ядром linux"?
Тобто, це − точно не "Windows з ядром linux" як пишуть сайти новин. Насправді - це проект GNU (всі ті відомі лінуксоїдам програми) + ядро від Microsoft .
Хороша стаття є тут для розуміння відмінності в термінології (стаття англійською мовою).
Але все рівно хочу глянути як це виглядає, оцінити складність встановлення для звичайного користувача. Якщо цікаво - натискаємо Детальніше!
Встановлювати буду збірку Windows 10 20H1 Compact (19030.1).
"Compact" − це лише функція ОС Windows 10 для стискання бінарних файлів на системному диску. А дана збірка - лише можливість встановити Windows 10 із стисканням бінарних файлів для зменшення розміру файлів встановленої системи. Мене цікавить саме WSL, тому підійде і збірка, а не чистий образ.
Для цього необхідно запустити PowerShell із правами адміністратора та ввести команду
Детальніше на сайті Microsoft.
(Або ж можна просто увімкнути "галочку" у вікні "Компоненты Windows" :)).
2. Завантажую дистрибутив тут (Ubuntu 18.04)
3. У вікні PowerShell із правами адміністратора
3.1. Переходжу в каталог завантаженого файла cd c:\temp
3.2. Встановлюю "дистрибутив" Ubuntu
Команда PowerShell Add-AppxPackage .\app_name.appx
Після завершення встановлення в меню Пуск з'являється ярлик Ubuntu
Поки-що все легко для звичайного користувача.
4. Після запуску ярлика потрібно вказати ім'я користувача GNU/kWindows, придумати пароль, підтвердити пароль. Тут же написано, що запускати додатки ми можемо використовуючи команду-приставку sudo. Ну чим вам не "linux"?
Відразу скажу, що запуск команд від sudo в мене на запрацював. Скрипт не сприйняв пароль, встановлений для користувача. Запрацювало лише коли встановив такий самий пароль командою sudo passwd
Подивитись версію WSL можна командою PowerShell
wsl -l -v
1) vim test.txt (створення файлу і відкриття його в редакторі vim)
2) "hello world" (власне, пишемо текст)
3) :wq (write & quite в командному режимі, зберігаємо файл і виходимо з редактора)
Я зможу знайти, щойно створений файл в системі Windows10 за адресою
C:\Users\user\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\user1\test.txt
Вау! Тут вже був встановлений редактор vim, а не я його встановив. Запускається дійсно редактор vim. Можна запустити команду ls з ключами ls -la для відображення всіх файлів списком в поточній теці, а не так як в PowerShell, команда ls вже показує файли списком без ключів. Все вірно - це проект GNU + ядро Windows.
Зміна прав (sudo chown 777 test2.txt) вирішує цю проблему (файл test2.txt на знімку).
В lxc-контейнерах, обмін файлами між файловою системою (ФС) контейнера і основною ФС вирішується інакше. Надіюсь тут теж буде щось подібне передбачено. Все-таки це ще тільки бета-версія :) Я провів лише експерименти для доступу до файлів "втупу".
ОК. З консольними додатками зрозуміло. Головне запитання далі:
Не офіційно − так. Для цього необхідно встановити графічний сервер (для Windows це VcXsrv).
1) Встановлюємо, завантажений exe-файл
P.S.
Для чого Microsoft це все робить? Для розробників, які працюють на Unix-подібних ОС?
Я думаю, ні. Будь-хто із них запустить програму Windows в емуляторі Wine, або ж, на крайній випадок − у VirtualBox.
Для розробників, які "сидять" на Windows і яким потрібний функціонал unix?
Знову ж таки, навіщо? Той самий VirtualBox і тут допоможе!
Там точно не буде тих проблем, які є у випадку використання WSL.
Скоріше за все Microsoft просто хоче попіаритися за рахунок всіх тих програм/пакетів, які відомі "лінуксоїдам" і розроблялися спільнотою "GNU" :(
Додаткові посилання:
Спор об именовании GNU/Linux
Дана функція/додаток/платформа у Windows 10 називається Windows Subsystem on Linux (WSL). Наразі WSL версії 2 доступна в збірці для "інсайдерів" (користувачів, що приймають участь в тестуванні бета-версій ОС на ранніх етапах) у Win10 версії 20H1.
Про те, яка гарна ця версія Win10 можна почитати тут.
Порядок додавання нових "фішок" − знизу-вверх.
А може саме на цій сторінці і описано частину процесу трансформації ОС Windows 10 в загадкову ОС з тимчасовим ім'ям "LiteOS/Windows Lite", яка має "з'явитися" весною 2020-го? Хтозна!
А тепер серйозно! Що ж це таке "Windows з ядром linux"?
З українського розділу Wikipedia:
Windows Subsystem for Linux (WSL) — це прошарок сумісності для запуску виконуваних файлів операційної системи Linux (в Executable and Linkable Format) в середовищі Windows 10. WSL надає можливість використання Лінукс-сумісного ядра інтерфейсу розробленого компанією Microsoft, і в свою чергу надає можливість використовувати GNU користувацький простір, так як і Ubuntu, openSUSE, SUSE Linux Enterprise Server, Debian та Kali Linux. Також користувацький простір може містити доступні команди Bash, зі звичайними GNU/Linux командами-застосунками (sed, awk, і т. д.) і інтерпретаторами мов програмування (Ruby, Python, і т. д.). Тобто, це − точно не "Windows з ядром linux" як пишуть сайти новин. Насправді - це проект GNU (всі ті відомі лінуксоїдам програми) + ядро від Microsoft .
Хороша стаття є тут для розуміння відмінності в термінології (стаття англійською мовою).
Але все рівно хочу глянути як це виглядає, оцінити складність встановлення для звичайного користувача. Якщо цікаво - натискаємо Детальніше!
Встановлювати буду збірку Windows 10 20H1 Compact (19030.1).
"Compact" − це лише функція ОС Windows 10 для стискання бінарних файлів на системному диску. А дана збірка - лише можливість встановити Windows 10 із стисканням бінарних файлів для зменшення розміру файлів встановленої системи. Мене цікавить саме WSL, тому підійде і збірка, а не чистий образ.
Після встановлена Windows 10 20H1 Compact (19030.1) у віртуальній машині VirtualBox:
1. Активую WSLДля цього необхідно запустити PowerShell із правами адміністратора та ввести команду
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Детальніше на сайті Microsoft.
(Або ж можна просто увімкнути "галочку" у вікні "Компоненты Windows" :)).
2. Завантажую дистрибутив тут (Ubuntu 18.04)
3. У вікні PowerShell із правами адміністратора
3.1. Переходжу в каталог завантаженого файла cd c:\temp
3.2. Встановлюю "дистрибутив" Ubuntu
Команда PowerShell Add-AppxPackage .\app_name.appx
Після завершення встановлення в меню Пуск з'являється ярлик Ubuntu
Поки-що все легко для звичайного користувача.
4. Після запуску ярлика потрібно вказати ім'я користувача GNU/kWindows, придумати пароль, підтвердити пароль. Тут же написано, що запускати додатки ми можемо використовуючи команду-приставку sudo. Ну чим вам не "linux"?
Відразу скажу, що запуск команд від sudo в мене на запрацював. Скрипт не сприйняв пароль, встановлений для користувача. Запрацювало лише коли встановив такий самий пароль командою sudo passwd
Подивитись версію WSL можна командою PowerShell
wsl -l -v
Перемикатись між версіями WSL можна командою
wsl --set-version <Distro> 2
Як бачимо, на версію 2 можна перемкнутись лише із включеними параметрами віртуалізації в BIOS (тобто на реальній ОС, а не встановленій у віртуальній машині як у мене).
Але наразі - це не важливо. Різниці у вигляді між версіями не буде.
Але наразі - це не важливо. Різниці у вигляді між версіями не буде.
До речі, про вигляд того всього для користувача: доки запущені стандартні команди оновлення списку пакетів та самих пакетів в "Ubuntu" − запускаємо диспетчер задач.
Щось це мені нагадує... Процеси в загальному Диспетчері задач, каталог rootfs...
Та це ж як LXC-контейнери в Linux!
LXC-контейнери - це теж із розряду віртуалізації. Але в цьому випадку відбувається віртуалізація на базі операційної системи (запускати безліч дистрибутивів linux на базі ядра основної ОС). Використання ресурсів основного комп'ютера при цьому - в десятки (у випадку великої кількості віртуальних дистрибутивів − в сотні) разів менше.
Як на мене, час виконання стандартних задач оновлення нашої системи GNU/kWindows (команди apt-get update, apt-get upgrade для Ubuntu) виконувався надто довго.
Я можу створити текстовий файл в "Ubuntu" і знайти його в Win10?
Так, я можу створити текстовий файл "test.txt" з якимось текстом в домашньому каталозі нашого "linux-а" просто ввівши в "консолі" нашого "Ubuntu" послідовно команди:1) vim test.txt (створення файлу і відкриття його в редакторі vim)
2) "hello world" (власне, пишемо текст)
3) :wq (write & quite в командному режимі, зберігаємо файл і виходимо з редактора)
Я зможу знайти, щойно створений файл в системі Windows10 за адресою
C:\Users\user\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\user1\test.txt
Вау! Тут вже був встановлений редактор vim, а не я його встановив. Запускається дійсно редактор vim. Можна запустити команду ls з ключами ls -la для відображення всіх файлів списком в поточній теці, а не так як в PowerShell, команда ls вже показує файли списком без ключів. Все вірно - це проект GNU + ядро Windows.
Я можу створити файл в Win10 та знайти його в Ubuntu?
Так. Файли, створені з під Win10 в Ubuntu виглядають, як ті що належать моєму користувачу, але без будь-яких прав (файл test3.txt на знімку).Зміна прав (sudo chown 777 test2.txt) вирішує цю проблему (файл test2.txt на знімку).
В lxc-контейнерах, обмін файлами між файловою системою (ФС) контейнера і основною ФС вирішується інакше. Надіюсь тут теж буде щось подібне передбачено. Все-таки це ще тільки бета-версія :) Я провів лише експерименти для доступу до файлів "втупу".
ОК. З консольними додатками зрозуміло. Головне запитання далі:
Чи можна запустити графічні додатки GNU/Linux через WSL?
Офіційно − ні.Не офіційно − так. Для цього необхідно встановити графічний сервер (для Windows це VcXsrv).
1) Встановлюємо, завантажений exe-файл
2) Запускаємо сервер
3) В консолі "Ubuntu" пишемо
export DISPLAY=:0
4) Далі - назву додатка для запуску (за необхідності відповідний пакет потрібно спочатку встановити)
Особисто в мене вийшло запустити додаток xeyes та nautilus. Gimp не запустився.
P.S.
Для чого Microsoft це все робить? Для розробників, які працюють на Unix-подібних ОС?
Я думаю, ні. Будь-хто із них запустить програму Windows в емуляторі Wine, або ж, на крайній випадок − у VirtualBox.
Для розробників, які "сидять" на Windows і яким потрібний функціонал unix?
Знову ж таки, навіщо? Той самий VirtualBox і тут допоможе!
Там точно не буде тих проблем, які є у випадку використання WSL.
Скоріше за все Microsoft просто хоче попіаритися за рахунок всіх тих програм/пакетів, які відомі "лінуксоїдам" і розроблялися спільнотою "GNU" :(
Додаткові посилання:
Спор об именовании GNU/Linux
Немає коментарів:
Дописати коментар