любая программа написанная под linux заработает на windows

Да, вы можете запускать десктопные Linux приложения под Windows 10

любая программа написанная под linux заработает на windows

Сообщение корпорации Microsoft о нативной поддержке Bash on Ubuntu в среде Windows 10 наделало много шума. При этом компания решила не растягивать удовольствие ожидания для пользователей своей ОС, и выпустила Windows 10 Insider Preview Build 14316 с интегрированным Ubuntu спустя всего несколько дней после анонса. Полноценное крупное обновление Windows 10 с новой возможностью будет выпущено летом, а пока можно изучить возможности системы в превью билде.

Пользователи, которые опробовали новинку, сообщают, что все действительно работает. При этом возник вопрос — можно работать только в командной строке, или же есть какой-то способ запустить десктопное приложение с графическим интерфейсом? После проверки у ряда пользователей получилось запустить кое-какие десктопные Linux приложения. Официально заявляется, что такой возможности нет, но пользователь Reddit с ником w2qw нашел способ запуска «иксов» в Windows 10, что открывает возможность установки и работы с VIM и Firefox.

любая программа написанная под linux заработает на windows

Конечно, тот же Firefox работает и под Windows (ну еще бы он не работал), но если есть необходимость запуска приложений, работающих только в Linux, этот способ может помочь. Так, нужно использовать Xming X Server для Windows, это позволит запустить «иксы» вне bash. А затем просто запускаем приложение:

Работать все это будет чуть медленнее, чем нативное приложение, но производительность все равно остается приемлемой.

Еще один пользователь Reddit, starlig-ht заявил, что ему удалось запустить Xfce.

Напомню, что для включения Bash on Ubuntu в среде Windows 10 Insider Preview Build 14316 необходимо включить Developer Mode в настройках Update & Security. Как только пользователь это сделает, можно вызвать командную строку Windows, прописать «bash», и выполнить загрузку Ubuntu (этот процесс изображен на скриншоте в анонсе).

Источник

Запуск Linux-приложений в Windows — фантастика или суровая реальность?

Использование Linux- или UNIX-приложений в Windows может быть продиктовано массой причин — от банальной привычки к некоторым программам до невозможности запуска отдельной машины с Linux. Кто-то хочет использовать нативные версии ПО для отладки, а кто-то надеется, что таким способом можно заставить пользователей плавно смигрировать на полноценный дистрибутив.

Прежде чем городить огород с эмуляторами, лучше поищите портированные версии или аналоги ваших любимых программ. Те же GIMP, Audacity, Pidgin и множество других утилит имеют родные сборки не только для Windows, но и для Mac OS X. Для получения какой-то конкретной функциональности зачастую не требуется полноценный аналог софта из Linux. Например, к автодополнению по Tab в оболочке bash привыкаешь очень быстро, а в командной строке Windows этого нет и в помине. Исправить это и другие досадные упущения поможет утилита clink.

любая программа написанная под linux заработает на windows

Стандартные консольные утилиты, например из пакета GNU Coreutils, давно спортированы на Windows. Есть как довольно старые наборы GNUWin II и UnxUtils, так и постоянно обновляющиеся UWIN (не рекомендуется к использованию) и Gnuwin32. Для последнего по завершении установки базового инсталлятора надо последовательно запустить файлы download.bat и install.bat, а затем скопировать по желанию папку gnuwin32 в любое удобное место и запустить из неё файл update-links.bat. После отработки последнего скрипта в подкаталоге StartMenu будут ссылки на запуск командной строки с окружением GNU и документацию к утилитам.

любая программа написанная под linux заработает на windows любая программа написанная под linux заработает на windows

любая программа написанная под linux заработает на windows

любая программа написанная под linux заработает на windows

Обладатели Windows Vista/7 в максимальной и корпоративной версиях, а также серверных версий ОС Microsoft могут вообще не заморачиваться. Для них доступна подсистема для приложений на базе UNIX (Subsystem for UNIX-based Applications, SUA) или сервисы Microsoft Windows для UNIX (Microsoft Windows Services for UNIX, SFU). Этот набор базовых утилит наличествует прямо в компонентах системы. Дополнительные наборы программ можно скачать здесь. Наконец, последнее в списке и первое по популярности решение для запуска UNIX-программ — это Cygwin. Этот пакет прост в установке и содержит далеко не маленький набор приложений, портированных под Windows. Рекомендуется использовать именно его.

любая программа написанная под linux заработает на windows любая программа написанная под linux заработает на windows

любая программа написанная под linux заработает на windows любая программа написанная под linux заработает на windows

любая программа написанная под linux заработает на windows любая программа написанная под linux заработает на windows

Теперь можно поговорить о странном — запуске неродной для Windows системы KDE. Вообще-то проект KDE on Windows существует не первый год, и поначалу пользоваться им было просто невозможно из-за регулярных падений, которые разве что не загоняли несчастную систему в BSOD. Однако разработчики не сидели сложа руки, и в нынешней реинкарнации проекта его можно смело инсталлировать — ошибки довольно редки, да и те — некритичные. Всё сразу ставить смысла, наверное, нет, а вот некоторые приложения могут приглянуться.

любая программа написанная под linux заработает на windows любая программа написанная под linux заработает на windows

любая программа написанная под linux заработает на windows любая программа написанная под linux заработает на windows

любая программа написанная под linux заработает на windows любая программа написанная под linux заработает на windows

любая программа написанная под linux заработает на windows любая программа написанная под linux заработает на windows

любая программа написанная под linux заработает на windows любая программа написанная под linux заработает на windows

К сожалению, портированные приложения далеко не всегда ведут себя так, как в родном окружении, или могут конфликтовать с другими программами. Поэтому единственным выходом, помимо установки «пингвиньей» ОС на голое железо, является эмулирование Linux. Для разового использования можно применить оболочку для QEMU под названием MobaLiveCD, которая без лишних телодвижений поможет запустить LiveCD/USB с различными дистрибутивами. Для постоянного использования лучше инсталлировать Linux в виртуальную машину: в VirtualBox или VMWare Player. Только не забудьте установить гостевые дополнения для более комфортной работы. Альтернативный вариант — применение VDI-решений с возможностью бесшовной интеграции в Windows Linux-приложений, запущенных на отдельном хосте, который также может быть виртуализирован.

любая программа написанная под linux заработает на windows

любая программа написанная под linux заработает на windows любая программа написанная под linux заработает на windows

Оптимальным вариантом для запуска Linux-приложений является использование среды coLinux. Она, условно говоря, запускает ядро Linux на уровне ядра Windows и имеет доступ ко всем аппаратным ресурсам машины, за счёт чего потерь производительности практически нет. При этом она сохраняет полную совместимость с Linux-приложениями, позволяя напрямую запускать их. На базе coLinux имеются готовые системы для быстрого запуска Portable Ubuntu Remix, Topologilinux (Slackware), SpeedLinux (различные дистрибутивы) и andLinux (Ubuntu). Единственным неприятным ограничением coLinux и всех пакетов на его основе является необходимость использования 32-битной версии Windows 2k/XP/2k3/Vista/7. В качестве примера разберём минимальную настройку Debian Squeeze. Первым делом установим свежую версию coLinux, отказавшись от загрузки готовых образов и попутно инсталлировав WinPcap.

любая программа написанная под linux заработает на windows любая программа написанная под linux заработает на windows

Теперь необходимо скачать архив образа диска с Debian и распаковать его в ту папку, в которую был установлен coLinux. Размер диска rootfs_2gb.img при желании можно увеличить. Файл squeeze.conf придётся немного отредактировать. Изменений минимум — увеличить объём выделяемой RAM (mem), разрешить доступ к диску C: посредством COFS и добавить сетевой интерфейс TAP. Обратите внимание, что при использовании COFS лучше не обращаться одновременно к одним и тем же файлам с папками из Linux и Windows.

После запуска squeeze.bat вы попадёте в консоль Debian. Логин по умолчанию root, а пароля нет. С помощью nano отредактируем параметры сетевых интерфейсов в файле /etc/network/interfaces. Добавим секцию для eth1. В качестве IP-адреса используем любой, лишь бы не было пересечения с другими локальными подсетями. В Windows в настройках IPv4 сетевого адаптера TAP-Win32 Adapter V8 (coLinux) надо указать адрес из той же подсети.

любая программа написанная под linux заработает на windows

любая программа написанная под linux заработает на windows

Выходим из nano с сохранением изменений — F2, Y, Enter. Теперь создадим папку, куда будет монтироваться диск C:…

…добавим одну строчку в конец файла /etc/fstab и сохраним его:

любая программа написанная под linux заработает на windows

Сейчас мы займёмся установкой X-сервера, а пока для простоты пропишем экспорт переменной DISPLAY в файл

/.profile (это надо будет сделать и для любых других пользователей). В качестве IP-адреса используйте тот, что указан для TAP-адаптера в Windows. После этого можно перезагрузиться командой reboot.

любая программа написанная под linux заработает на windows

Нелишней будет установка набора шрифтов, в том числе и кириллических. Опционально можно пройтись по каталогам со шрифтами, включая C:\Windows\Fonts, утилитами mkfontdir и mkfontscale из состава Cygwin. Теперь всё готово для установки X-сервера Xming. Сразу же после этой процедуры добавляем в файл X0.hosts IP-адрес TAP-интерфейса в Debian (в нашем примере это 192.168.100.2).

любая программа написанная под linux заработает на windows любая программа написанная под linux заработает на windows

любая программа написанная под linux заработает на windows

«Поблагодарим» Windows за бдительность и в стандартном брандмауэре поменяем все правила, касающиеся Xming, с запрещающих на разрешающие, а иначе программы просто не достучатся до X-сервера. Теперь запускаем утилиту XLaunch, в которой можно выбрать режим отображения X-окон и задать дополнительные параметры. Для нас важно настроить поддержку русской и английской раскладок с переключением по Alt+Shift и опционально задать DPI. В конце файл настроек надо сохранить как имя.xlaunch. В дальнейшем по двойному клику по этому файлу X-сервер будет запускаться с заданными нами параметрами.

любая программа написанная под linux заработает на windows

любая программа написанная под linux заработает на windows любая программа написанная под linux заработает на windows

Чтобы не было так скучно, установим графический менеджер пакетов synaptic для более удобной инсталляции софта и какую-нибудь легковесную панель с меню приложений, например lxpanel. Последнюю для простоты пропишем в автозапуск при входе, добавив в конец

/.profile команду lxpanel&.

любая программа написанная под linux заработает на windows

Для полноты картины добавим поддержку звука. Скачиваем отсюда архив с Pulseadio и распаковываем его в какой-нибудь каталог, в котором создаём текстовый файл default.pa. Наполняем этот файл нижеследующими строками. Здесь 192.168.100.0/24 — это наша TAP-подсеть.

Запускаем pulseaudio.exe и в очередной раз идём править разрешения в брандмауэре Windows. В консоли Debian устанавливаем необходимые утилиты и библиотеки.

В файле /etc/pulse/client.conf добавляем IP-адрес хост-машины с запущенным сервером Pulseaudio — default-server = 192.168.100.1, а в /etc/asound.conf следующие параметры:

любая программа написанная под linux заработает на windows любая программа написанная под linux заработает на windows

Для проверки работоспособности можно попробовать проиграть один из тестовых файлов.

Автоматический запуск Pulseaudio при старте Debian осуществляется добавлением в конец файла конфигурации squeeze.conf такой команды.

Для X-сервера такой трюк не подходит. В принципе, того, что уже сделано, достаточно для работы. Однако неплохо было бы добавить в Linux нового не-root пользователя, настроить для него автологин с mingetty, установить coLinux в качестве службы Windows и прописать Xming в автозапуск. Для удобства можно поставить утилиту Desktops, которая создаёт несколько виртуальных рабочих столов в Windows, и запускать X-сервер в полноэкранном режиме на втором рабочем столе.

любая программа написанная под linux заработает на windows

В итоге мы получили быструю среду для почти что нативного запуска Linux-приложений в Windows. Её можно использовать для написания и отладки веб-приложений, кросскомпиляции драйверов и прочих задач. Вот только вменяемого ускорения графики для работы тяжёлых приложений пока ещё нет, да 64-битная версия начала разрабатываться всего несколько месяцев назад. Тем не менее coLinux вполне пригоден для повседневного использования. Для дальнейшего изучения возможностей и настроек этой системы обратитесь к вики проекта. Ну а мы на этом пока что закроем тему симбиотических отношений Windows с Linux через разные места. Удачи!

Источник

Linux-разработка в Windows с WSL и Visual Studio Code Remote

Работа с VS Code Remote и Windows Subsystem for Linux (WSL) дает возможность использовать полнофункциональную среду разработки Linux на ноутбуке или десктопе с предустановленной Windows. В этом материале рассмотрим то, как использовать эти инструменты для разработки приложений на Python в Linux.

любая программа написанная под linux заработает на windows

Первым делом: установка необходимых компонентов

Чтобы выполнить все действия описанные в данной статье, вам понадобятся WSL и VS Code с установленным расширением VS Code Remote — WSL. Давайте быстро рассмотрим, что это такое и как это установить.

Windows Subsystem for Linux

Инструмент Windows Subsystem for Linux, сокращённо WSL, позволяет запускать неизмененные двоичные файлы Linux непосредственно в Windows. Это означает, что вы можете использовать ваши любимые инструменты Linux, приложения командной строки и рабочие процессы на вашем компьютере с Windows, без необходимости использовать сложные настройки, такие как Dual Boot. А лучше всего то, что WSL является тесно интегрированным решением между Windows и Linux. Иначе говоря, если вы любите Linux, то вы можете получить доступ ко всем файлам и исполняемым файлам Windows прямо из оболочки bash, а если вы любите Windows, то вы можете легко получить доступ к двоичным файлам и файлам Linux из PowerShell или CMD.

Если вы новичок в WSL и хотите узнать больше, то можете пройти наш полный курс: Начало работы с подсистемой Windows для Linux, либо ознакомиться только с инструкцией по установке в документации WSL.

Visual Studio Code

Вам также потребуется расширение VS Code Remote — WSL, которое позволяет использовать контейнер, удаленный компьютер или Windows Subsystem for Linux (WSL) в качестве полнофункциональной среды разработки. Чтобы узнать больше и начать работу, посетите страницу с документацией по VS Code Remote.

На старт, внимание, Linux!

Вместо написания длинного раздела по началу работы с VS Code Remote в WSL, мы решили снять это небольшое видео, демонстрирующее ведение разработки на Python в WSL, с использованием VS Code Remote.

Это не просто изолированный Python, вы можете использовать VSCode Remote и WSL в любом Linux-проекте

При использовании VS Code Remote в WSL команды и расширения запускаются непосредственно в дистрибутиве Linux, поэтому вам не нужно беспокоиться о проблемах двоичной совместимости или других проблемах, связанных с кросс-ОС. Вы можете использовать VS Code в WSL так же, как и в Windows.

VS Code Remote и WSL меняют правила игры, когда дело доходит до разработки под Linux на Windows. Эти инструменты позволяют разрабатывать, запускать и отлаживать тонны приложений Linux непосредственно на вашем компьютере с Windows, предоставляя вам лучшее из среды Windows и Linux.

Если вы желаете узнать больше о Windows Subsystem for Linux и все о командной строке Windows, то следите за обновлениями в этом блоге! А если вам интересно узнать больше о VS Code Remote, вы можете прочитать статью в блоге здесь и обширную документацию, охватывающую архитектуру, здесь.

Мы рады представить вам мощную комбинацию из VS Code Remote и WSL!

Источник

Windows Subsystem for Linux, или как разрабатывать приложения на Windows без боли

Как настроить полноценное окружение разработчика, привыкшего к Linux и Mac OS X.

Традиционно считается, что разработчики (в особенности связанные с бэкенд-разработкой) предпочитают использовать unix-like-системы. Причиной тому было немало. Ситуация начала несколько меняться в 2017 году — именно тогда вышел первый стабильный релиз Windows Subsystem for Linux (также известен под более ранним названием BashOnWindows), который дал разработчикам то, чего они так давно ждали, — полноценный Linux в качестве приложения в Windows!

Но не всё оказалось так просто — лишь к концу 2018 года WSL стало возможно использовать полноценно, при этом способ отнюдь не очевиден. О нём и пойдёт речь.

Для начала пара слов о том, что такое вообще Windows Subsystem for Linux, он же WSL в сокращённом варианте. Это прослойка между ядром Windows и приложениями для Linux, которая позволяет преобразовывать системные вызовы к ядру Linux в вызовы к ядру Windows. Благодаря тому, что виртуализация практически отсутствует, такое решение работает быстрее традиционной виртуализации, где эмулируется целый компьютер, как это происходит в Oracle VirtualBox и VMWare Player.

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

Для разработчика основное применение WSL сразу же видится в развёртывании среды разработки именно там. Всё же установка многих языков, компиляторов и интерпретаторов, утилит происходит в Linux куда проще — часто одной командой из репозитория. Да и привычная консоль под рукой.

В статье будет рассматриваться именно настройка среды разработки в WSL — для примера возьмём небольшой проект, написанный на Python/Angular/Go (а почему бы и нет?), разрабатываемый в Visual Studio Code. Однако описанные рекомендации в целом подойдут для любого другого редактора или IDE.

Важный момент: WSL официально поддерживается только в Windows 10 x64, начиная с Anniversary Update. Если у вас иная версия — альтернативное решение представлено в следующем разделе.

Инструкция по установке WSL имеется на официальном сайте Microsoft. Если же описать её кратко, то необходимо:

При первом запуске необходимо задать ваши логин и пароль.

Далее уже вам откроется консоль с Ubuntu.

К сожалению, на этих редакциях WSL не поддерживается. Но мы можем без особого труда заменить его Vagrant — мощной утилитой для конфигурирования виртуальных машин. Vagrant работает поверх других сред виртуализации: VirtualBox, VMWare Player или Microsoft Hyper-V. Поэтому стоит понимать, что такой вариант будет по умолчанию медленнее, нежели WSL. А в случае с VirtualBox значительно медленнее из-за файловой системы vboxsf.

Установить Vagrant можно с официального сайта. Также вам потребуется VirtualBox и Git. После этого создайте папку для вашей виртуальной машины, в ней создайте файл Vagrantfile со следующим содержимым:

После чего в том же PowerShell или cmd выполните команду:

После загрузки, настройки и запуска виртуальной машины вы попадёте в консоль Linux. Ура!

Источник

В Windows 10 появилась поддержка любых приложений Linux

Анонсы конференции Microsoft Build 2020

В рамках конференции Microsoft Build 2020, которая в этом году впервые полностью проходит в онлайн-формате, компания анонсировала новые инструменты и возможности, которые, в первую очередь, нацелены на разработчиков.

В частности, на мероприятии были представлены Project Reunion, направленный на унификацию разработки приложений для Windows 10, новые терминал и пакетный менеджер для этой ОС, а также существенные улучшения подсистемы Windows для Linux (WSL, Windows Subsystem for Linux).

WSL2 и графические приложения Linux

Усовершенствованная версия подсистема Windows для Linux (WSL2) получит возможность прямого запуска приложений Linux с графическим интерфейсом, а также поддержку аппаратного ускорения с помощью GPU. Таким образом, программы, предназначенные для Linux, смогут работать бок о бок с «родным» ПО Windows 10.

любая программа написанная под linux заработает на windows

О разработке второй версии WSL Microsoft впервые сообщила в мае 2019 г. Новое поколение эмулятора для запуска бинарных файлов станет важной частью предстоящего релиза Windows 10 2004, который должен состояться в конце мая 2020 г. Однако некоторые из улучшений, в том числе и поддержка приложений Linux с графическим интерфейсом, не будут доступ доступны на старте, их развертывание будет происходить поэтапно.

Первое поколение Windows Subsystem for Linux было анонсировано в апреле 2016 г. и вошло в состав финальной сборки Windows 10 в августе 2016 г. Это своего рода эмулятор для запуска бинарных файлов Linux непосредственно в среде Windows (WSL есть в Windows 10 и Windows Server 2019), релиз которого способствовал появлению в дальнейшем дистрибутивов Ubuntu, Fedora и Suse в фирменном магазине приложений Microsoft Store. После установки, к примеру, Ubuntu пользователь получает возможность запускать скрипты Bash, пользоваться инструментами командной строки Linux, такими как awk и grep, а также использовать Python, Ruby и Git непосредственно внутри Windows. В марте 2018 г. список доступных дистрибутивов пополнил Kali Linux.

«Родной» эмулятор терминала

Microsoft также сообщила о релизе первой стабильной версии эмулятора терминала Windows Terminal с открытым исходным кодом.

Помимо централизованного доступа к средам Powershell, Cmd и WSL, утилита Windows Terminal обеспечивает поддержку нескольких вкладок, а также выбор темы и кастомизацию для тех, кто хочет точнее настроить программу под свои нужды.

любая программа написанная под linux заработает на windows

Для работы Windows Terminal используется движок рендеринга текста на базе DirectX с поддержкой графических ускорителей. Благодаря этому увеличились скорость и плавность вывода текста, а также появилась поддержка юникода. Терминал поставляется со специальным шрифтом Cascadia Code.

Приложение доступно в Microsoft Store и на Github – в виде исходных кодов. Microsoft также планирует выпускать ежемесячные экспериментальные обновления программы, которые можно будет установить отдельно от стабильной версии.

Microsoft представила Windows Terminal в рамках Microsoft Build 2019. Релиз первой официальной версии ожидался в конце 2019 г.

любая программа написанная под linux заработает на windows

В Windows Terminal Microsoft объединила функции Powershell и CMD с доступом к Linux-командам через WSL, а также добавила поддержку вкладок, шрифтов, тем оформления, расширений, эмоджи (смайликов) и рендеринга с помощью графических ускорителей.

Пакетный менеджер в стиле Linux

Microsoft анонсировала новый менеджер пактов для операционной системы Windows 10, который облегчит разработчикам настройку рабочего окружения.

Представленный диспетчер пакетов winget во многом напоминает аналогичное ПО, применяемое в популярных дистрибутивах Linux, к примеру, APT из Debian. Он позволяет находить необходимые приложения в заранее подготовленном репозитории (поддерживать его собирается сама Microsoft), а затем при помощи одной простой команды (“winget install ”) осуществлять их установку.

любая программа написанная под linux заработает на windows

Благодаря поддержке новым пакетным менеджером интерфейса командой строки разработчики смогут быстро устанавливать необходимое в работе ПО с помощью простых сценариев, без необходимости всякий раз запускать установщик каждого из необходимых приложений и взаимодействовать с многочисленными диалоговыми окнами.

Для работы winget требуется Windows 10 не старше версии 1709. Программу уже сейчас можно загрузить на Github в виде исходных кодов. Первый стабильный релиз запланирован на май 2021 г.

Унификация Win32 и UWP

В рамках проекта «Воссоединение» (Project Reunion), анонсированного Microsoft, компания планирует обеспечить простую интеграцию между программными интерфейсами Win32 и Universal Windows Platform (UWP). предоставляя единую платформу для разработки с поддержкой обратной совместимости.

Другими словами, теперь разработчики смогут создавать такие приложения, которые заработают на любом устройстве с Windows 10, вне зависимости от аппаратной платформы и версии операционной системы. Существующие приложения также будет возможно адаптировать к новой модели.

Первыми компонентами новой платформы стали нативный фреймворк для проектирования интерфейса WinUI 3 и WebView2, позволяющий интегрировать веб-содержимое в любое приложение.

Исходный код обеих библиотек открыт и доступен любому желающему в соответствующих репозиториях Github.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *