Pull to refresh

Comments 36

Вообще Pycharm отлично работает с WSL. Так же как и с докер контейнером, окружением анаконды и даже с сервером по ssh. При создании проекта просто нужно настроить интерпритатор.

По ssh PyCharm, я считаю, работает хуже VS Code. PyCharm редактирует файлы локально, а для запуска заливает на удаленный сервер. VS Code же сразу редактирует и запускает на удаленном сервере.
Я бы поставил под сомнение «отличную» работу. Во-первых нет возможности использовать окружение, которые находятся на логических разделах винды, а так же не всегда срабатывают дополнения, из-за проблем с импортом пакетов
Я не могу понять, что нового даёт WSL 2 в плане интеграции с Linux, чего в Windows не было ещё 10 лет назад? Как я понимаю, основа технологического стека − это
  1. Hyper-V, паравиртуализацию линукса туда завезли ещё в 2008 году емнип,
  2. Протокол 9P, который тоже был с нами уже очень давно, в куче конкретных реализаций под пермиссивными лицензиями, поэтому использовался, например, в VirtualBox, libvirt, QEMU на Windows.

Понятно, что паравиртуализация − это медленно и затратно по сравнению с нативным выполнением; сетевая ФС тоже имеет кучу недостатков, начиная от производительности и кончая необходимостью для доступа к файлам держать клиента запущенным.

И первая реализация WSL вроде как должна была победить эти недостатки за счёт нативной подсистемы исполнения Linux-бинарников, как это сделано в Wine. Но MS выбросил WSL 1 после года разработки (и весьма неплохих результатов, если сравнивать с развитием того же Wine) и сделал откат к технологиям, по сути уже существовавшим как commodity.

Так за что именно хвалят сейчас MS?
Идея в WSL1 была в эмуляции вызовов ядра линукс. Т.е. они по сути писали своё ядро, совестимое по API с линуксом. На мой взгляд, мертворожденная затея т. к. очень сложно поддерживать в актуальном состоянии.
UFO just landed and posted this here
Я имел в виду, что wine эмулирует (точнее, транслирует) системные вызовы win32 на линуксе, и при этом поддерживается в актуальном состоянии, приносит практическую пользу и не является «мертворожденной затеей». Если так, то почему эмуляция вызовов линукса в виндовс (WSL 1) должна быть «мертворожденной затеей»?
UFO just landed and posted this here
В основном это исправленные некоторые моменты, а так же добавили поддержку docker.
Это делается для полного абстрагирования от Windows. Что бы не только виртуальное окружение было линуксовоек примеру, а еще и службы, с которыми взаимодействует приложение.

В wsl1 они продвинулись достаточно далеко. Но упёрлись в ряд не решаемых на этом уровне проблем, таких как эмуляция сети и привилегий. iptables толком так и не заработал, а без него не работает большая часть инфраструктуры docker. Для решения нужно делать эмуляцию уровнем ниже и в wsl2 будет всамделешнее ядро.

WSL 2 намного производительный чем WSL 1. Сам активно юзаю WSL 2, там все быстрее работает, начиная от фс (той, что в образе), заканчивая любыми операциями с большим процентом сисколлов. Намного быстрее работает git, apt, yarn. Конечно, интеграция с фс хоста очень медленная (обещают исправить хоть как-то до релиза), но в общем это не критично, если вести разработку в внутренней фс (а она отлично доступна из хоста, даже лучше, чем в WSL 1). С первой проблемой пришлось бороться в виде удаления папок хоста из PATH. И вместо этого генерировать "shims" для тех екзешников.

Теоретически — да, практически — я думаю, только тогда, когда мелкие завезут это сами. В менеджере Hyper-V эту VM не видно вообще, но юзается Hyper-V, это точно.
Было бы очень сподручно, ибо CUDA SDK на WSL1 не фурычит.

Наталкивался на тесты, geekbench слегка меньше набирает на WSL2, чем на WSL. Но там разница в пределах 1%.


С другой стороны, моя предыдущая рабочая конфигурация была Ubuntu под VMware, после перехода на WSL2 тесты стали в 2 раза быстрее гоняться.


И ещё вызовы виндовых exe медленные. Нужны были для интеграции tmux и vim с буфером винды. Похожие проблему могут возникнуть, если захочется из консоли помониторить ресурсы винды. Задержка не сверхкритичная, но заметная.

Зависит, что измерять. Если IO (в пределах фс внутри WSL), то разница большая и, например всякие штуки, которые едят много IO (всякие zsh, vim с кучей плагинов, gcc/clang с большим количеством инклудов), то это очень даже заметно. А запуск exe, доступ к drivefs стал на много медленнее.

А теперь вопрос. Как эту бережно и старательную настроенную среду перенести на прод? Или разрабатывают и тестируют в одном окружении, а выкатывают в прод на другом?
Не пойму в чем здесь возникает проблема.

Скорей всего тем же способом, которым вы это делали и раньше.

UFO just landed and posted this here

По-моему нет никакой проблемы. Точно так же можно сказать, что, дескать, зачем кому-то покупать Windows, если всё равно работаешь в Linux.

UFO just landed and posted this here
ну да, раньше же было сложнее, надо было в виртуалку самому ставить, ага?
А толку? Что в старом WSL видеокарту не пробросить, что в новом…
VS Code работает на GNU/Linux-подобных ОС. Зачем тут винда, если все-равно хотим, чтобы код, который пишем запускался не на виндовой среде?

PS: Пользуясь случаем, рекомендую ознакомиться: github.com/VSCodium/vscodium#why-does-this-exist

Современные среды разработки в организациях это не только IDE, но и средства коммуникации, планирования, документирования, аналитики, безопасности, решения юридических и финансовых вопросов. M$ предлагает массу дорогуших интегрированных инструментов, с которыми лицензии на операционную систему идут чутьли не в подарок.

Раньше говорили, что в всл будет возможность использовать gpu прямо из под всла. Сейчас такое возможно?

Настроил WSL на Ubuntu 16.04, VSCode и Python 2.7 (не спрашивайте почему...) с pytest и appium — работает на ура. Даже быстрее чем Ubuntu 16.04 + Gnome + все остальное.

Из проблемного:
— тонкость использования пакетов установленных и на Windows и в Ubuntu одновременно;
— некоторые сложности настройки версий (связано со старостью Убунты) и прав внутри саб-ОС;
— проблемы зависания VSCode с включенным на нем Python Preview дополнением в работе с большими файлами (решается выключением расширения или перезагрузкой VSCode).
UFO just landed and posted this here
А я ведь правильно понимаю, что wsl 2 в отличие от wsl требуется vt-x? Есть ли возможность запустить wsl 2 на процессоре без поддержки аппаратной виртуализации?
Последняя версия WSL использует архитектуру Hyper-V для реализации виртуализации. Эта архитектура будет доступна на необязательном компоненте «платформа виртуальной машины». Этот дополнительный компонент будет доступен во всех SKU.
Sign up to leave a comment.

Articles