Подсистема Windows для Linux (WSL): что я не могу сделать с приложением Ubuntu для Microsoft Windows?


23

Как многие из вас знают, в Магазине Microsoft есть три версии Ubuntu . Это означает, что в Windows я могу эмулировать Ubuntu и иметь командную строку Ubuntu непосредственно в Windows.

Вопрос очень прост: что я не могу сделать из командной строки Ubuntu, эмулированной в Windows, что я могу сделать на подходящей Ubuntu на основе Linux? Полезно ли загружать это приложение Ubuntu, устанавливать его и работать только с ним, а не с реальной ОС? Можно ли установить все библиотеки разработки? Могу ли я написать (или нет) драйверы устройств? Другими словами: каковы пределы?

Какие функции на основе Ubuntu Linux отсутствуют в Ubuntu-on-Windows?

Приветствуются новые ответы: я знаю, что каждое программное обеспечение постоянно меняется, улучшая характеристики и возможности!


Если вы загрузились в Windows, возможно, для игр, было бы неплохо установить там Ubuntu 16.04, когда вы находитесь на микро-перерывах, читая вопросы и ответы по Ubuntu здесь и хотите быстро проверить некоторые команды без перезагрузки. Если вы хотите ограничить Ubuntu для Windows, лучше всего зайти на веб-сайт Microsoft и прочитать все новые запросы или сообщения об ошибках, опубликованные пользователями: docs.microsoft.com/en-us/windows/wsl/faq
WinEunuuchs2Unix

1
WSL все еще намного медленнее с точки зрения ввода / вывода (дисковые операции), даже по сравнению с виртуальными машинами Linux, работающими в Windows. Хотя, похоже, это область, над которой работает Microsoft.
Лиори

@ jpaugh, точно, спасибо! Я также только что обновил вопрос снова :)
Leos313

Ответы:


19

Ubuntu, работающий в подсистеме Windows 10 для Linux, не является полным дистрибутивом. На самом деле, это совсем не Linux - у него нет ядра Linux. Таким образом, вы не можете протестировать или попробовать расширения ядра, включая драйверы, потому что вы не используете Linux .

Если вы хотите сделать что-то подобное, либо установите Ubuntu на ВМ - Win10 включает в себя Hyper-V, но лично я предпочитаю VirtualBox, который является бесплатным, или двойную загрузку вашей машины с Ubuntu, работающим на голом железе. Вы почти наверняка найдете последний быстрее, чем под управлением Windows - я делаю на всех моих машинах. Отчасти это связано с тем, что вам нужна антивирусная защита при работе Windows, которая снижает производительность, особенно производительность диска. И потому что вам это нужно, Win10 включает в себя встроенный антивирус.

С Linux вам это не нужно, поэтому влияние на производительность снижается.


20
Почему вы думаете, что вам не нужен антивирус на Linux?

7
@SeligkeitIstInGott Это не эмулятор. Это уровень совместимости, как для Wine в Linux.
Эрик Думинил

6
«В Linux вам не нужен [антивирус], поэтому влияние на производительность будет меньше». - Linux не защищен от вирусов, вредоносных программ и т. Д. Antivirus SW полезен в Linux как для защиты себя, так и для предотвращения распространения вредоносных программ в другие среды (например, Windows). Я знаю, что он обычно не используется, но это не значит, что угрозы не существует.
Даниэль

4
У меня есть проблема с этим. 1. Антивирус не «требуется» для запуска Windows. Операционная система Windows будет работать без антивируса. Он также поставляется с антивирусом, что приводит к пункту 2: выбор случайного программного обеспечения, указывающего на «замедление работы ОС», кажется произвольным - что, если бы я утверждал, что Ubuntu работает медленнее, потому что мне нужно было несколько дополнительных программ, чтобы приложения работали так, чтобы работать только в винде? (как виртуальная машина, чтобы я мог играть в игры ААА?). 3. Вы не предоставили никаких доказательств в поддержку этого утверждения.
Калеб Джей

6
@ Hack-R Обмана нет. С самого начала им было совершенно ясно, что это не настоящее ядро ​​Linux. Все началось с «запуска инструментов Linux, особенно Bash», до «запуска сред / дистрибутивов / приложений Linux». Если что-то из этого обманчиво, то и ВИНО.
Боб

7

Одна из вещей, которую вы не можете легко сделать в подсистеме Windows для Linux (WSL), - запуск приложений Linux с графическим интерфейсом.

Для этого вам нужно установить неподдерживаемый сервер X11, такой как VcXsrv или Xming.

Включение WSL относительно тривиально. Кажется, это очень хорошо для пользователя командной строки Linux.


Я бы не назвал VcXsrvнеподдерживаемым. Они выпустили около 10 обновлений, так как я использую его (октябрь 2017 года).
WinEunuuchs2Unix

1
@ WinEunuuchs2Unix: я имел в виду неподдерживаемый Miscrosoft, в том смысле, что они поддерживают WSL, реализуя API ядра, распространяя пользовательскую среду Ubuntu, предоставляя инструменты для установки / включения WSl и так далее.
RedGrittyBrick

7

Есть много полезной информации по каждому из приведенных выше ответов. Я здесь суммирую основные понятия каждого из них.

Обновление от мая 2019 года . Как указано в одном из самых последних ответов, WSL развивается благодаря использованию реального ядра Linux и предоставлению множества других возможностей. Я ознакомился с этим документом, и, если он будет подтвержден, это станет большим шагом вперед. Здесь вы можете найти хорошую статью на тему "настоящее ядро ​​Linux на W10"

Подводя итог: «Ubuntu в Windows - это полноценное пользовательское пространство Ubuntu на вершине ядра Windows в режиме совместимости с Linux», как указано в одном из комментариев.

Что я не могу сделать:

  • Официально графический интерфейс пока не поддерживается. Это также означает, что графические приложения не могут быть выполнены. Кроме того, стандартные графические интерфейсы классического Ubuntu для Linux не поддерживаются по этой причине.
  • Ядро Linux, разработанное Линусом, НЕ является частью подсистемы Windows для Linux (WSL). Это означает, что вы не можете разрабатывать драйверы и пробовать их напрямую.
  • Не каждая командная строка работает.

Что я могу сделать:

  • Используйте командную строку и базовую оболочку Bash. Можно писать и выполнять скрипты.
  • Разрабатывайте приложения (компилируйте или кросс-компилируйте и выполняйте их), но пока без графики.
  • Используйте «apt-get» для установки / удаления новых / старых пакетов.

Дополнительная информация:

  • официально поддерживаются другие дистрибутивы (например, Debian и Kali)
  • Эти приложения бесплатны, их можно загрузить из Магазина Windows, и здесь вы можете найти инструкцию по их установке и использованию.

  • В этом другом вопросе блога, некоторые предложения о том, как использовать графический интерфейс для WSL (неофициальное, третье лицо)

ОБНОВЛЕНИЕ Август 2019 года : выпущен новый WSL 2 (читайте здесь для получения дополнительной информации). Кажется, что вы можете работать с настоящим ядром Linux и с файловой системой Linux. Пока что я не пробовал новую версию (она есть в моем списке TODO).


4

От How-To Geek :

[Это] еще не поддерживает фоновое серверное программное обеспечение, и оно не будет официально работать с графическими приложениями для Linux. Не все приложения командной строки также работают, так как эта функция не идеальна.

Обновление от комментария allquixotic :

На Windows 10 v1803 фоновые задачи будут поддержаны.


6
На Windows 10 v1803 фоновые задачи будут поддержаны.
allquixotic

Может быть полезно указать «фоновые задачи» = crontabи другие демоны. Вот практический пример загрузки crontabпри загрузке Windows. Затем используйте rsyncкаждые 2 дня для резервного копирования базы данных Windows: blog.snowme34.com/post/…
WinEunuuchs2Unix

2

По состоянию на май 2019 года WSL 2 находится в стадии разработки .

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

...

WSL 2 использует совершенно новую архитектуру, которая использует настоящее ядро ​​Linux .

...

Первоначальные сборки WSL 2 будут доступны через инсайдерскую программу Windows к концу июня 2019 года.

(акцент мой)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.