Linux подсистема Windows (WSL) для профессионалов
Copyright © 2021 Хайден Барнс
|
Данный документ предоставляется по лицензии Creative Commons Attribution 3.0 License, за исключением разделов со специальными оговорками. |
Первая публикация на английском языке: 8 Июня 2021
Опубликовано Apress, Berkeley, CA
North Richland Hills, TX, USA
ISBN 978-1-4842-6872-8
eBook ISBN 978-1-4842-6873-5
https://doi.org/10.1007/978-1-4842-6873-5
2021-06-12
- Автор
- Хайден Барнс
- Директор- распорядитель, Apress Media LLC
- Велмоуид Спахр
- Редактор приобретения
- Джоан Мюррей
- Редактор по разработке
- Лаура Бирендсон
- Координирующий редактор
- Джил Больцано
- Разработка обложки
- Freepik
- www.freepik.com
Эта книга посвящается сообществу Подсистемы Windows для Linux.
Хайден Барнс - старший технический управляющий по контейнерам Windows в SUSE и признанный Microsoft MVP {Прим. пер.: Most Valuable Player, Самый ценный игрок}. Хайден ранее был техническим управляющим для Ubuntu в Windows Subsystem for Linux (WSL) в Canonical. Хайден регулярно выступает по теме WSL на конференциях, таких как Microsoft Build и является основателем WSLConf, первой конференции сообщества, посвящённой WSL. Он консультировал предприятия, академические учреждения и правительственные агентства для помощи им в развёртывании WSL. Перед тем как присоединиться к Canonical, Хайден основал Whitewater Foundry, самую первую команду, создавшую свой собственный дистрибутив Linux, специально созданный под WSL. Он увлечён WSL, потому как тот открывает массу возможностей для кроссплатформенной разработки с открытым исходным кодом и сотрудничества между Linux и другими сообществами.
Нуно ду Карму ИТ специалист с 20- летним опытом работы в различных областях Windows, таких как поддержка ОС Windows, управление Active Directory и сопровождение приложений. Он также был системным администратором Unix, HP/UX и Solaris 10, а также Linux для HP на протяжении более пяти лет. Именно это сочетание практик и побудило его начать применять WSL с момента его появления в 2016 году, и он был крайне счастлив обнаружить прочих (сумасшедших) людей, которые проявили такой же интерес к этой невероятной технологии. Одним из таких людей оказался некий Хайден Барнс. .
Сегодня Нуно является Microsoft MVP, Windows Insider MVP, послом CNCF и капитаном Docker и он особенно мотивирован или вложился во внедрение облачных технологий в WSL, чтобы позволить более широкому кругу пользователей применять эти удивительные проекты. Что касается личной жизни, Нуно живёт в крошечной Швейцарии на французской её стороне со своей женой, падчерицей, пасынком и четырьмя кошками. С ним можно связаться по адресам: LinkedIn, Twitter, Website.
Я бы хотел поблагодарить следующих людей, без которых эта книга не была бы возможной:
Тейлор Браун
Кайла Циннамон
Сара Кули
Нуно ду Карму
Йозеф Дурр
Свен Грут
Скотт Хансельман
Бен Хиллс
Дастин Хоуэтт
Игорь Любинчич
Даниэль Льевелин
Крейг Лоивин
Ким Мульис
Тара Радж
Карлос Рамирез
Сохини Рой
Клинт Руткас
Марк Шаттлуорс
Джон Старкс
Рич Тёрнер
Мартин Вимпресс
Патрик Ву
И все в Microsoft, кто внёс свой вклад в разработку WSL и всё сообщество вокруг WSL.
Эта книга снабдит вас широким спектром знаний об WSL для решения ряда задач, связанных с WSL, от администрирования ИТ до работ по разработке, включая:
-
Подключение к популярным Интегрированным средам разработки
-
Сборку индивидуального ядра Linux для WSL2
-
Сборку производных дистрибутивов Linux с вашими собственными пакетами
-
Автоматизацию рассылки электронной почты в Outlook из сценария bash в WSL
Она также охватывает расширенные настройки, персонализацию и оптимизацию как для WSL, так и для WSL2 инструментарием от командной строки до Реестра. Это также включает все параметры из wsl.conf и .wslconfig, а также рекомендации для наилучшей производительности.
Прежде всего, мы рассмотрим самое начало разработки WSL.
То что мы теперь называем WSL1 стартовало как некое усилие внутри Microsoft с кодовым названием Проект Астория для поддержки приложений Android в злополучном телефоне Windows. Проект Астория, ставший достоянием общественности в качестве Windows Bridge for Android, был анонсирован на конференции для разработчиков Microsoft Build в 2015 (Рисунок I-1).
Проект Астория основан на понятиях виртуализации из исследовательского проекта Microsoft, известного как Проект Разводного моста (Drawbridge). Проект Drawbridge был прототипом нового вида виртуализации для песочницы приложений, основанной на пико- процессах. Проект Drawbridge включал в себя версию Windows, созданную для работы внутри процессов пико (pico). В Проекте Астория среда процесса пико была изменена для запуска приложений Android на основе Linux.
Из Microsoft утекла единственная сборка смартфона Windows 10, содержащая Проект Астория так и не был официально выпущен и был прекращён Microsoft вместе со смартфоном Windows в 201 году. Однако лежащая в основе Проекта Астория технология выжила. В конце концов, Android основан на Linux.
В 2016 году технология Проекта Астория была переработана как Bash на Ubuntu в Windows. Вместо запуска приложений Android эта технология применялась для запуска терминала Bash для разработчиков в Windows (Рисунок I-2). Основное ядро этой технологии было трансляцией уровня исполняемого файла, который запускал исполняемые файлы Linux в неком ядре NT внутри пико процессов, что обсуждается в Главе 1, Архитектура WSL.
Для перенесения этой первой версии WSL в Windows, Microsoft вступила в партнёрские отношения с Canonical, издателем Ubuntu. Bash на Ubuntu в Windows поставлялся с юбилейным обновлением Windows 10, также именуемом как Windows 10 1607. Партнёрство между Microsoft и Canonical стало важной вехой в расширении внедрения Microsoft в Linux и в программное обеспечение с открытым исходным кодом.
В 2017 году Bash на Ubuntu в Windows превратился в Подсистему Windows для Linux, начиная с Windows 10 1709. Дистрибутивы Linux теперь могли устанавливаться из Microsoft Store (Рисунок I-3) и было расширено значительное число доступных дистрибутивов. Полный список доступных дистрибутивов WSL приводится в Главе 2, Включение WSL. Эта версия основывается на уровне трансляции исполняемого файла, который мы теперь называем WSL1, за которым последовал заявленный в 2019 году WSL2.
Некоторые люди задаются вопросом почему Подсистема Windows для Linux названа столь неуклюже. С исторической точки зрения подсистема Windows для Linux соответствует структуре названий служб Windows для Unix, предыдущему уровню совместимости с POSIX для Windows NT. По словам Рича Тёрнера, старшего управляющего программами в Microsoft, именно опасения по поводу товарного знака помешали Microsoft начать название продукта с Linux. В то время как WSL не содержал ядро Linux, как это имеет место для WSL2. В итоге мы получили подсистему Windows для Linux, которую можно рассматривать как подсистему Windows для запуска Linux.
WSL2 была анонсирована в сборке Microsoft 2019 и достигла общей доступности в Windows 10 2004. Само ядро WSL2 не является уровнем трансляции исполняемого кода как это имеет место в WSL1, а вместо этого полное ядро Linux и его среда запускаются в легковесном контейнере Hyper-V. В отличии от традиционного Hyper-V, который ограничен на Windows 10 Enterprise, Professional, Education и Server, WSL2 доступен для всех редакций Windows 10, включая Windows 10 Home. WSL 2 предлагает существенные улучшения в совместимости приложений по сравнению с WSL1. WSL2 сделал доступными некоторые высоко востребованные для их привнесения в WSL функциональные возможности, включая ускорение GPU, официальную поддержку GUI и встраиваемую виртуализацию для гостевых KVM.
- О книге
- Глава 1. Архитектура WSL
- Глава 2. Включение WSL
- Глава 3. Управление дистрибутивами WSL
- Перечисление всех дистрибутивов
- Перечисление запущенных дистрибутивов
- Запуск установленного по умолчанию дистрибутива
- Настройка установленного по умолчанию дистрибутива
- Запуск конкретного дистрибутива
- Запуск в качестве конкретного пользователя
- Исполнение отдельных команды
- Останов
- Прекращение
- Преобразование дистрибутивов между версиями WSL
- Экспорт/ резервное копирование дистрибутива
- Импорт/ восстановление дистрибутива
- Дублирование дистрибутивов
- Сброс дистрибутивов
- Деинсталляция дистрибутивов из Microsoft Store
- Управление ядром WSL2
- Проверка доступных обновлений
- Проверка состояния обновления ядра
- Откат обновлений ядра
- Монтирование внешних томов
- Глава 4. Сопровождение дистрибутива Linux
- Пакеты
- Зависимости
- Выполнение административных задач при помощи sudo
- Обновление пакетов
- Модернизация пакетов
- Установка пакетов
- Деинсталляция пакетов
- Покинутые зависимости
- Поиск пакетов
- Сборка вашего собственного образа WSL Ubuntu
- Установка инструмента самораскрутки образа
- Сборка нашего базового образа
- Персонализация базовой установки
- Создание rootfs tar
- Импорт в WSL
- Глава 5. Настройка дистрибутивов WSL
- Установка настроек для дистрибутива
- Настройки автоматического монтирования
- Включение
- Корень
- Закладка файловой системы
- Параметры монтирования
- Метаданные
- Чувствительность к регистру
- Изменение UID и GID монтируемого устройства
- Основа полномочий файла Linux
- Символьный вид
- Проверка полномочий файлов
- Цифровая форма
- Маска файла
- Изменение umask и fmask монтируемого устройства
- Монтирование из прочих дистрибутивов
- ldconfig
- Сетевая среда
- Возможность взаимодействия
- Пользователь по умолчанию
- Запуск
- Глава 6. Настройка WSL2
- Глава 7. Персонализация WSL
- Глава 8. Следуем далее с WSL2
- Глава 9. Максимизируем возможность взаимодействия Windows
- Глава 10. Применение WSL для корпоративной разработки
- Глава 11. Устранение неисправностей WSL
- Глава 12. Масштабное развёртывание WSL
- Дополнение A. Начальное представление поддержки GUI теперь доступно для WSL
- Для чего я могу применять поддержку приложений с графическим интерфейсом?
- Применение IDE вашей мечты для разработки проектов Linux
- Запуск приложений, доступных только в Linux, или варианты использования специфичные Linux, например, тестирование
- Сборка, тестирование и применение приложений Linux, которые пользуются аудио или микрофоном со встроенной поддержкой аудио
- Бонус: Применение доступа к графическому процессору WSL для запуска приложений Linux с 3D ускорением
- Как работает эта функциональная возможность?
- Приступаем к работе с этой функциональностью
- Обратная связь
- Дополнение B. Архитектура WSLg
- Указатель