Window linux

Общий взгляд на подсистему Windows для Linux

Window linux

Взаимоотношения Windows и Linux долгое время были натянутыми, а совместному применению обеих систем мешало большое количество разного рода барьеров, многие из которых были возведены искусственно.

Но в последнее время все поменялось и Microsoft неожиданно для многих представила подсистему Windows для Linux, более известную как “Ubuntu в Windows 10”.

В данной статье мы расскажем, чем данная подсистема является, чем не является и для чего ее можно использовать.

Что такое подсистема Windows для Linux (Windows Subsystem for Linux, WSL)? Это не эмулятор и не виртуальная машина, а именно подсистема, основная задача которой – создать для разработчиков и тестеров привычное Linux окружение в среде Windows. Цели создать полноценную систему у разработчиков не стояло и не стоит, поэтому не следует рассматривать WSL как полноценную замену виртуальной машине, у WSL иные задачи.

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

Прежде всего это коснулось файловой системы, для работы Linux подсистемы с диском используется дополнительный слой абстракции в видеVirtual File System (VFS), которая позволяет Linux работать с собственными файлами, расположенными на NTFS, и вообще вся инсталляция Linux представляет собой обычную папку, которую вы можете открыть через проводник, точно также в среде Linux вы можете перемещаться по файловой системе Windows.

Удобно? Да. Но ради этого пришлось отказаться от собственных инструментов Linux по работе с файловой системой и дисками, также вы не сможете использовать FUSE.

Второе ограничение связано с сетью, в Windows 10 1607 сетевая подсистема Linux в WSL не реализована, частично это исправлено в Windows 10 1703, но рассчитывать на полноценную работу с сетью не стоит, потому как сетевой стек Linux в WSL заменен еще одним слоем абстракции, позволяющим использовать для работы сетевые возможности Windows.

После прочтения этих строк многим может показаться, что Microsoft подсунула им какую-то урезанную версию Linux, но здесь следует остановиться и еще раз перечитать первые абзацы данной статьи: WSL – не виртуальная машина, это – подсистема.

В чем плюсы данного подхода? Во-первых – экономия ресурсов, запущенная виртуальная машина гарантированно потребляет нужный для работы ОС объем оперативной памяти, не оптимально расходует дисковое пространство, хотя бы потому что вам придется держать две копии рабочих файлов, на хосте и внутри виртуалки. Это может быть критично для слабых машин, например, для ноутбука, который, зато удобно брать с собой для демонстрации результата работы заказчику.

Во-вторых, простой совместный доступ к данным из обоих сред. Вы можете редактировать нужный файл в любимом редакторе под Windows и тут-же видеть результаты в работающем на Linux приложении.

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

Как установить подсистему Windows для Linux

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

Затем в классической Панели управления откройте оснастку Программы и компоненты – Включение и отключение компонентов Windows и установите компонент Подсистема Windows для Linux (бета-версия).

Теперь откройте командную строку и выполните команду:

bash

затем ответьте на несколько простых вопросов.

Важно! Для успешной установки WSL вы должны осуществить вход в систему с учетной записью Microsoft.

На этом установка закончена и вас встречает командная строка Linux, можете начинать обживать систему. В этом плане WSL ничем не отличается от обычного Linux, в вашем распоряжении привычный пакетный менеджер и родные репозитории Ubuntu. В Windows 10 1607 это Ubuntu 14.04 LTS, а в выпуске 1703 – Ubuntu 16.04 LTS, которая также была доступна в инсайдерских версиях.

Подсистема установлена, это хорошо, самое время рассмотреть ее типичные применения.

Администрирование Linux-систем

Как известно, для удаленного администрирования Linux нет ничего лучше Linux.

Если же ваша основная система Windows, то для работы с Linux серверами вам потребуется сразу несколько инструментов, как правило джентельменский набор составляют PuTTY и WinSCP, если вы используете аутентификацию по ключам, то к ним еще добавится Pageant. Это проверенные временем и эффективные инструменты, но постоянно переключаться между ними не совсем удобно.

Используя WSL, вы окунаетесь в родную среду и вам не нужно постоянно скакать между окнами. Тем более что SSH позволяет делать много интересных вещей. Например, удаленно выполнять команды и скрипты, получая результат на свой ПК. Допустим вы хотите скопировать с рабочего сервера свой конфиг Squid, чтобы разместить его на форуме. Нет ничего проще, выполните что-то вроде:

ssh user@example.com 'cat /etc/squid3/squid.conf' | grep -v '#' | sed '/$/d' > /mnt/c/Users/andrey/Desktop/mysquid.conf.txt

Первая часть команды соединяется по SSH с удаленным сервером example.com под учетной записью user и выводит в стандартный поток локальной системы содержимое squid.conf. Затем мы выбираем все строки, кроме комментариев, удаляем пустые, и выводим то, что осталось в файл на рабочем столе Windows-системы.

Как видим, WSL позволяет удобно соединить в единое пространство удаленную систему, локальный Linux и вашу Windows. Никаких преград больше нет, передавайте и обрабатывайте файлы не задумываясь где они находятся и откуда и куда их надо скопировать или переместить.

Также вы можете легко выполнять на удаленном сервере локальные скрипты, особенно если их размещение в удаленной системе нежелательно (потенциально небезопасны, содержат приватные данные и т.д.). Для этого выполните:

ssh user@example.com 'bash -s' < local_script.sh

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

Разработка

Если вы занимаетесь разработкой на PHP, Python и т.п. языках, то вы можете отлаживать собственные проекты сразу в родной среде, продолжая при этом использовать привычные инструменты разработки. Достаточно разместить проект в контейнере WSL и одновременно работать с ним из Windows-приложений, так как все данные внутри WSL доступны через обычный проводник.

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

Кроме того, можно и наоборот использовать Linux-инструменты для работы с Windows проектами, например, git. Да, он существует и под Windows, но более удобно работать с ним в его родной среде.

Чтобы создать git-репозиторий, скажем, проекта Visual Studio, достаточно перейти в в его каталог и инициализировать новый репозиторий:

cd /mnt/c/Users/andrey.DESKTOP-D6QHDVP/Documents/Visual\ Studio\ 2017/Projects/WindowsApp1/
git init

Собственно, данная задача – одно из основных предназначений WSL – предоставить разработчикам удобную мультиплатформенную среду. Следует признать, что это у Microsoft получилось.

Сайтостроение

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

Если разработка подразумевает написание собственного веб-приложения или серьезную доработку существующего, то сайтостроение чаще подразумевает работу с готовыми решениями, а основные изменения как правило касаются внешнего вида и вносятся на уровне шаблона или CSS.

В качестве тестового сервера для такой работы обычно используется что-то вроде XAMMP/Денвер/Open Server и т.д. Нисколько не умаляя достоинств этих пакетов следует признать и их серьезные недостатки.

Главный из которых – существенное отличие тестовой среды от производственной, что может породить проблемы при переносе проекта.

Это могут быть как ошибки в путях, так и более серьезные проблемы, связанные с неправильным конфигурированием веб-сервера (например, через директивы htaccess), либо отсутствием каких-либо модулей.

Кроме того данные пакеты не позволяют выполнить еще одну важную задачу – проверку производительности и ее тонкую настройку, которую придется выполнять уже в производственной среде.

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

Кроме того, вы можете использовать все богатство инструментов Linux для отладки вашего сайта, например, curl для работы c HTTP-запросами.

Да, curl есть и под Windows, но в Linux мы легко можем передать результат по конвейеру и обработать его нужным нам образом.

Довольно распространенной задачей при переходе на HTTPS является поиск небезопасного содержимого, обычно это картинки или скрипты подключенные в коде страницы по небезопасному протоколу, эту задачу легко решить, скомбинировав работу двух команд:

curl https://example.com/index.html | grep http://

Как видим, для веб-разработчика WSL представляет не только удобную тестовую среду, но и является удобным инструментом по отладке, заменяя множество отдельных утилит и инструментов.

Работа с файлами и данными Windows

Мы думаем, что каждый, кто работал в Linux отмечал все богатство и широкие возможности консольных утилит в плане обработки и изменения данных. Быстро найти и отобрать по фильтру, произвести замену одного значения на другое, причем все это одновременно и с выводом результата в нужное место. Теперь все это доступно вам и в Windows.

Многие задачи, которые в Windows требуют применения стороннего софта или написания пакетных файлов в Linux часто решаются в одну строку. Например, пакетное переименование по маске:

rename 's/DSCN/My_Photo/g' *.JPG

Приведенная выше команда переименует в текущей директории все файлы JPG с именем типа DSCN1023.JPG в файлы вида My_Photo1023.JPG. Другая распространенная задача – заменить пробелы в именах файлов на подчеркивание. Тоже очень просто:

rename 's/ /_/g' *Задача посложнее. Есть некая база в формате CSV, которая содержит ФИО, телефон и еще некоторую информацию, допустим нам надо отобрать из нее записи по каждому из мобильных операторов. Отлично, набираем в консоли:
cat base.csv | egrep “7910|7919|7980” > mts.csv

После ее выполнения получим новый файл, который содержит записи только с телефонами оператора МТС, коды которого мы указали как условие для утилиты egrep.

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

Источник: https://interface31.ru/tech_it/2017/01/obshhiy-vzglyad-na-podsistemu-windows-dlya-linux.html

Опыт настройки и использования WSL (подсистемы Linux в Windows 10)

Window linux

К написанию данной статьи меня побудил вопрос на Тостере, связанный с WSL.

Я, после нескольких лет использования систем на ядре Linux, около полугода назад перешел к использованию Windows 10 на домашнем ПК.

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

Под катом я расскажу как установить и настроить WSL, на какие я наткнулся проблемы и ограничения, как запускать Linux приложения из Windows и наоборот, а так же как интегрировать элементы окружения Xfce в окружение рабочего стола Windows.

Никогда не думал, что однажды вернусь на Windows, но повод попробовать мне дали стечения обстоятельств: жена, далекая от IT, дергала почти каждый раз, когда у нее возникала необходимость воспользоваться компом; проснулась ностальгия по одной игре, но она никак не хотела адекватно работать под wine; а тут еще мне подарили коробочную Windows 10 Pro. WSL я поставил чуть ли не сразу после установки системы, поигрался несколько вечеров, понял, что продукт для моих задач годный, но хочется более привычный терминал и вообще некоторых удобств.

Установка WSL и дистрибутива

Сразу оговорюсь, в интернете можно найти описание установки с помощью выполнения команды lxrun /install в командной строке или консоли PowerShell. Данный способ больше не работает (после выхода WSL в стабильный релиз). Насколько мне известно, сейчас WSL можно установить только из Microsoft Store вместе с предпочитаемым дистрибутивом.

Так же отмечу, что когда установку производил я, на выбор были доступны дистрибутивы OpenSUSE, SUSE Linux Enterprise и Ubuntu 16.04 — последний я и установил. Сейчас также доступны Ubuntu 18.04, Debian 9 и Kali Linux, возможно появятся и другие дистрибутивы. Действия по установке могут отличаться. Так же, часть проблем описанных в статье может быть уже исправлена.

Находим в магазине желаемый дистрибутив и устанавливаем. Установка пройдет быстро, так как скачает только эмулятор ядра Linux и утилиту для запуска подсистемы, которая окажется в системной папке в трех экземплярах: wsl.exe, bash.exe и ubuntu.exe (вместо ubuntu будет имя Вашего дистрибутива).

Все они равнозначны и делают одно и то же — запускают собственный эмулятор терминала, в нем linux'овый bash работающий под эмулятором ядра. При первом же запуске нас попросят придумать логин и пароль для пользователя по умолчанию, а после произойдет непосредственно установка дистрибутива.

В качестве пользователя по умолчанию указываем root без пароля — это потребуется для дальнейших шагов.

Безопасность не пострадает, кроме того при подготовке материалов к статье, в англоязычном туториале, я наткнулся на информацию, что новые версии WSL теперь делают пользователем по умолчанию root без пароля без лишних вопросов.

Дожидаемся установки. Далее первым делом стоит обновить зеркала apt на ближайшие. Для этого понадобится CLI текстовый редактор. В комплекте только vi, я же больше предпочитаю nano, поэтому ставлю его:

apt install nano
sudo вводить не требуется, так как мы уже под root'ом. Отредактируем файл /etc/apt/sources.list:
nano /etc/apt/sources.list

У меня лучше всего работают зеркала Яндекса, поэтому мой файл выглядит так:

deb http://mirror.yandex.ru/ubuntu/ xenial main universe restricteddeb-src http://mirror.yandex.ru/ubuntu/ xenial main universe restricted deb http://mirror.yandex.ru/ubuntu/ xenial-security main universe restricteddeb-src http://mirror.yandex.ru/ubuntu/ xenial-security main universe restricted deb http://mirror.yandex.ru/ubuntu/ xenial-updates main universe restricteddeb-src http://mirror.yandex.ru/ubuntu/ xenial-updates main universe restricted

Нажимаем Ctrl+O для сохранения и Ctrl+X для выхода. Теперь можно обновить систему до актуального состояния:

apt update && apt upgrade

После обновления можно создать нашего основного пользователя. В данной статье я назову его user1, Вы же можете задать привычное имя:

addgroup –gid 1000 user1adduser –home /home/user1 –shell /bin/bash –uid 1000 -G user1,sudo user1

Далее переходим в папку юзера, зайдем под ним, установим пароль и отредактируем файл ~/.bashrc:

cd /home/user1su user1passwdnano .bashrc
Мой базовый .bashrc выглядит так# If not running interactively, don't do anythingcase $- in *i*) ;; *) return;;esac # don't put duplicate lines or lines starting with space in the history.# See bash(1) for more optionsHISTCONTROL=ignoreboth # append to the history file, don't overwrite itshopt -s histappend # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)HISTSIZE=1000HISTFILESIZE=2000 # check the window size after each command and, if necessary,# update the values of LINES and COLUMNS.shopt -s checkwinsize # If set, the pattern “**” used in a pathname expansion context will# match all files and zero or more directories and subdirectories.#shopt -s globstar # make less more friendly for non-text input files, see lesspipe(1)[ -x /usr/bin/lesspipe ] && eval “$(SHELL=/bin/sh lesspipe)” # set variable identifying the chroot you work in (used in the prompt below)if [ -z “${debian_chroot:-}” ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot)fi # set a fancy prompt (non-color, unless we know we “want” color)case “$TERM” in xterm|xterm-color|*-256color) color_prompt=yes;;esac # uncomment for a colored prompt, if the terminal has the capability; turned# off by default to not distract the user: the focus in a terminal window# should be on the output of commands, not on the prompt#force_color_prompt=yes if [ -n “$force_color_prompt” ]; then if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then # We have color support; assume it's compliant with Ecma-48 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such # a case would tend to support setf rather than setaf.) color_prompt=yes else color_prompt= fifi if [ “$color_prompt” = yes ]; then if [[ ${EUID} == 0 ]] ; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] ' else PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w \$\[\033[00m\] ' fielse PS1='${debian_chroot:+($debian_chroot)}\u@\h \w \$ 'fiunset color_prompt force_color_prompt # If this is an xterm set the title to user@host:dircase “$TERM” inxterm*|rxvt*) PS1=”\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h \w\a\]$PS1″ ;;*) ;;esac # enable color support of ls and also add handy aliasesif [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval “$(dircolors -b ~/.dircolors)” || eval “$(dircolors -b)” alias ls='ls –color=auto' #alias dir='dir –color=auto' #alias vdir='vdir –color=auto' alias grep='grep –color=auto' alias fgrep='fgrep –color=auto' alias egrep='egrep –color=auto'fi # colored GCC warnings and errors#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' # some more ls aliasesalias ll='ls -alF'alias la='ls -A'alias l='ls -CF' # Add an “alert” alias for long running commands. Use so:# sleep 10; alertalias alert='notify-send –urgency=low -i “$([ $? = 0 ] && echo terminal || echo error)” “$(history|tail -n1|sed -e '\''s/\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')”' # Alias definitions.# You may want to put all your additions into a separate file # ~/.bash_aliases, instead of adding them here directly.# See /usr/share/doc/bash-doc/examples in the bash-doc package. if [ -f ~/.bash_aliases ]; then . ~/.bash_aliasesfi # enable programmable completion features (you don't need to enable# this, if it's already enabled in /etc/bash.bashrc and /etc/profile# sources /etc/bash.bashrc).if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fifi

Все, подсистема готова к использованию… почти…

Установка X-сервера, Xfce и прочих GUI'шных приложений

Первая же проблема, на которую я натолкнулся — bash-completion в предлагаемом эмуляторе терминала работал, мягко говоря, некорректно.

Кроме того, данный эмулятор не умеет вкладки, а каждый его экземпляр запускает все в новом пространстве процессов, с отдельным init'ом (который кстати не заменить).

Мне захотелось нормальный эмулятор терминала, некоторых других GUI приложений, а так же панельку, чтоб это все быстро запускать.

Когда я гуглил этот вопрос, я наткнулся на множество проблем, вроде необходимости перевода dbus на tcp протокол. На данный момент всех этих проблем нет. В подсистеме нормально работают unix-domain-socket'ы и все спокойно общается через них.

Первым делом нам понадобится X-сервер, притом установленный в основную систему (в Windows). Лично я использую для этих целей VcXsrv — порт X11 на Windows. Официальный сайт указанный в about самой утилиты его сейчас не предоставляет, поэтому гуглим установщик и устанавливаем все по умолчанию.

Пока идет установка возвращаемся в терминал WSL, командой exit выходим обратно в root'а. Первым делом настроим русские локали:

locale-gen ru_RUlocale-gen ru_RU.UTF-8update-locale

Далее установим некоторые компоненты Xfce. Можно конечно установить его целиком из мета-пакета, но большинство компонентов нам не понадобится, а модульная архитектура Xfce позволяет нам поставить только необходимое:

apt install -y xfce4-session xfce4-notifyd xfce4-appfinder xfce4-panel xfce4-quicklauncher-plugin xfce4-whiskermenu-plugin xfce4-xkb-plugin xfce4-settings xfce4-terminal xfce4-taskmanager mousepad
Запускать каждый раз окружение руками не очень удобно, поэтому я автоматизировал данный процесс. Для этого в основной системе создадим в удобном для нас месте папку, а в ней 3 файла для запуска:

  1. config.xlaunch — файл настроек для VcXsrv
  2. x-run.vbs — WSL всегда запускается со своим эмулятором терминала, если его закрыть — завершатся все его дочерние процессы. Чтоб данное окно не мозолило глаза, неплохо его запускать скрытым. К счастью в Windows встроен интерпретатор VBScript, который позволяет это сделать в одну строчку:

    WScript.CreateObject(“Shell.Application”).ShellExecute “wsl”, “cd /home/user1; DISPLAY=:0 LANG=ru_RU.UTF-8 su user1 -c xfce4-session”, “”, “open”, 0

    Поясню, что здесь происходит. Мы говорим VBscript выполнить приложение wsl с параметром cd /home/user1; DISPLAY=:0 LANG=ru_RU.UTF-8 su user1 -c xfce4-session, папка запуска нам не важна, поэтому пустая строка, действие open — запуск, 0 — скрытый режим.

    Самому wsl мы отдаем команду на выполнение: переход в папку пользователя, затем с установкой переменных окружения DISPLAY (дисплей X-сервера) и LANG (используемая локаль) мы запускаем xfce4-session от имени нашего пользователя user1 (благодаря команде su)

  3. start.bat — batch файл для запуска, по желанию его можно засунуть в автозагрузку
    start config.xlaunchwscript x-run.vbs

Источник: https://habr.com/ru/post/412633/

Linux для Windows. Запускаем полноценный десктоп Ubuntu внутри Windows 10

Window linux

Издавна Microsoft питала особые чувства к Linux в частности и ко всему миру FOSS в целом.

И чувства эти, надо сказать, как правило, были не самыми теплыми — начиная со знаменитого «Открытого письма любителям» Билла Гейтса, написанного в далеком 1976 году (подробности в Вики), где автор обвинял пользователей персональных компьютеров (которые в те доисторические времена были и пользователями, и программистами, и хакерами!) чуть ли не в воровстве его интеллектуальной собственности (того самого бейсика), и заканчивая гневными высказываниями Стива Балмера в 2001 году по поводу Linux: «Linux — это раковая опухоль, которая пожирает всю интеллектуальную собственность, к которой прикасается. Согласно правилам лицензии, если вы используете какие-либо компоненты программного обеспечения с открытым исходным кодом, вы должны открыть код всего имеющегося у вас программного обеспечения».

Спустя пятнадцать лет, однако, Стив смягчил свою позицию: в марте 2016 года бывший генеральный директор Microsoft заявил, что рад видеть, что новый глава компании Сатья Наделла принял решение активнее поддерживать сообщество разработчиков открытого ПО, и «с удовольствием» (loved) наблюдал за анонсом MS SQL Sever для Linux. Во многом такой разворот бывшего гиганта софтверной индустрии — это заслуга сообщества FOSS. Тех тысяч и тысяч программистов, дизайнеров, майнтейнеров, FOSS-активистов и просто неравнодушных людей, которые годами «точили камень, аки вода».

Еще в середине 2000-х годов MS начала менять свою позицию в отношении FOSS. И это не пустые слова, а дела.

Даром что ли не так давно Microsoft получила статус «платинового» участника Linux Foundation — главной организации, курирующей разработку Linux, высказала приверженность идеям разработки FOSS-сообщества. Ну и само существование WSL тому подтверждение.

Спустя сорок с небольшим лет мы наблюдем, как некогда непримиримые идеологические (и не только идеологические) противники начали работать бок о бок, сообща делая мир лучше. Ну или хотя бы пытаться.

Спустя пятнадцать лет Стив Балмер, по сути, признал свою неправоту

То самое письмо Билла Гейтса в защиту копирайта

На данный момент апогеем такого симбиоза можно считать Windows Subsystem for Linux. Да, прослойка пока далека от совершенства. Но направление выбрано верное. И той и другой стороной.

«Дайте ей шанс!»

«Дайте Windows Subsystem for Linux шанс, и вы будете поражены», — говорят в Microsoft. Microsoft наконец-то признала потенциал мира FOSS в целом и Linux в частности. И каждое событие становится для Microsoft уроком, позволяющим оценить свои возможности и расширить свою деятельность в этой области программирования.

Совсем недавно, 16 ноября прошлого года, на сайте Microsoft для разработчиков появился пост с видеороликом под названием «Улучшения в bash на Windows и консоли Windows», в котором старший программист Microsoft Рич Тёрнер призывает Linux-разработчиков взглянуть на то, что Windows 10 может им предложить. «Установите экземпляр сборки Windows 10 для разработчиков (Windows 10 Insider Preview Build) и исполняйте свой код, используйте привычные вам инструменты, размещайте свои сайты на Apache, получайте доступ к своим базам данных MySQL непосредственно из вашего Java-кода», — говорит Тёрнер.

Новое, дружелюбное лицо Microsoft — Рич Тёрнер

Тёрнер особо отметил, что WSL была создана специально для разработчиков с целью предоставить последним все необходимые инструменты разработки для Linux. И все это, по его словам, без потери новшеств и преимуществ Windows 10.

«Независимо от того, какие инструменты вы обычно используете в Linux для создания приложений, будь то Go, Erlang или C, дайте шанс WSL, а самое главное, отправляйте нам отчеты об ошибках.

Эти отчеты действительно делают нашу жизнь намного проще, позволяя нам создавать продукт, который мы все можем использовать, чтобы работать более плодотворно», — продолжил он.

Разумеется, Microsoft сама заинтересована в улучшении WSL, и Тёрнер утверждает, что конечная цель всего этого состоит в том, чтобы сделать эту подсистему полностью совместимой со всеми инструментами разработки для Linux.

И, по их словам, любой, кто перейдет на Windows 10, будет чувствовать себя так же комфортно, как и в Linux. А это, в свою очередь, обеспечит Microsoft приток новых пользователей. «Пока мы только в самом начале. Нам предстоит долгий путь.

В данный момент нельзя сказать, что эта штука действительно полностью совместима с Linux-инструментами и готова к полноценному использованию вами», — сказал он. Это заявление стало для многих людей сюрпризом.

Однако, как уже говорилось, Сатья Наделла, нынешний глава софтверного гиганта, применит в отношении FOSS и Linux иной подход, рассматривая открытый и свободный код в качестве источника дохода и новых возможностей.

Отдельно отмечу, что Рич Тёрнер в своей речи не призывает разработчиков отказаться от Linux и нисколько не умаляет преимущества этой ОС, а лишь просит дать WSL шанс.

Обсуждение вопроса с подсказками для решения возможных проблем

Промежуточные итоги

Что хотелось бы сказать в связи со всем этим? Во-первых, Microsoft уже не та. Не та монструозная корпорация зла.

С каждым годом прибыли компании от продажи ПО падают, рынок мобильных устройств, по сути, отдан на откуп Google и Apple, а пользователи (как корпоративные, так и домашние) всё чаще стараются сэкономить на покупке софта. И компании приходится адаптироваться к новым условиям.

Даже «заклятый друг» MS — Apple открывает исходники своих продуктов один за другим. Во-вторых, это все очень хорошо. В первую очередь для нас, простых пользователей.

В следующей статье про Windows Subsystem for Linux мы проведем несколько тестов на производительность и попробуем наконец WSL на практике, установив на нее веб-сервер Apache и запустив локальный хостинг сайта. А пока можно промежуточно резюмировать, что эксперимент удался.

Источник: https://xakep.ru/2017/02/03/wsl-in-colors/

Windows Subsystem for Linux 2

Window linux

Windows Subsystem for Linux 2 (WSL 2) — это вторая версия подсистемы Windows для Linux. Новая архитектура WSL 2 обеспечивает иной способ взаимодействия дистрибутивов Linux с Windows. WSL 2 использует технологию виртуализации и ядро Linux для реализации новых возможностей.

Подсистема WSL 2 доступна только в Windows 10 версии 2004, сборки 19041 или выше.

Основные приоритеты WSL 2:

  • Увеличение производительности файловой системы.
  • Добавление полной совместимости системных вызовов.

Простыми словами Windows Subsystem for Linux 2 работает значительно быстрее чем предыдущая версия подсистемы Linux.

Каждый дистрибутив Linux может переключаться между WSL 1 или WSL 2 в любое время.

Примечание автора: это не совсем так. Если вы использовали совсем старый дистрибутив WSL 1 из времён бета-тестирования, то он может не поддерживать WSL 2. Придётся снести старый дистрибутив и установить новый. После этой процедуры новый дистрибутив Linux сможет работать как WSL 1 так и WSL 2.

Несмотря на то, что WSL 2 гораздо производительнее, есть два случая, когда рекомендуется использовать WSL 1:

  • Файлы проекта должны храниться в файловой системе Windows.Если вы будете использовать дистрибутив Linux WSL для доступа к файлам проекта в файловой системе Windows, и эти файлы не могут храниться в файловой системе Linux, вы получите более высокую производительность в файловых системах ОС, используя WSL 1.
  • Проект, для которого требуется перекрестная компиляция с использованием средств Windows и Linux на одних и тех же файлах.Операции с файлами в операционных системах Windows и Linux выполняются быстрее в WSL 1, чем на WSL 2. Поэтому если вы используете приложения Windows для доступа к файлам Linux, в настоящее время вы получите более высокую производительность при использовании WSL 1.

Ссылки

https://docs.microsoft.com/ru-ru/windows/wsl/compare-versions

https://docs.microsoft.com/ru-ru/windows/wsl/install-win10

Подготовка к установке WSL 2

Подсистема WSL 2 доступна только в Windows 10 версии 2004, сборки 19041 или выше. Проверяю версию:

winver

Вижу, что у меня старая версия Windows. Обновляюсь.

После обновления снова проверяю версию:

winver

Теперь требования для установки WSL 2 соблюдены.

Установка WSL 1 и WSL 2

Перед тем как устанавливать дистрибутивы Linux необходимо включить компонент “Подсистема Windows для Linux”.

В PowerShell

В PowerShell с правами администратора:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

​В GUI

Панель управления > Программы и компоненты > Включение или отключение компонентов Windows.

Находим в списке “Подсистема Windows для Linux”, устанавливаем.

Чтобы установить только WSL 1, необходимо перезагрузить компьютер и можно устанавливать дистрибутивы Linux. Для установки WSL 2 читаем дальше.

Включаем компонент “Подсистема Windows для Linux”.

Установка дистрибутива Linux в Windows

Я пробовал перейти по ссылке https://aka.ms/wslstore, однако, она оказалась нерабочей. Поэтому я просто поискал “wsl” в Microsoft Store.

Установлю Ubuntu.

Доступны дистрибутивы:

  • Ubuntu 16.04 LTS
  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS
  • openSUSE Leap 15.1
  • SUSE Linux Enterprise Server 12 SP5
  • SUSE Linux Enterprise Server 15 SP1
  • Kali Linux
  • Debian GNU/Linux
  • Fedora Remix for WSL
  • Pengwin
  • Pengwin Enterprise
  • Alpine WSL

Проверим:

wsl -l -v

Теперь у меня Ubuntu на ядре WSL 2.

Запускаю bash:

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

Источник:
https://internet-lab.ru/wsl2

Если вам понравилась статья, то ставьте

Источник: https://zen.yandex.ru/media/internet_lab/windows-subsystem-for-linux-2-5f16c27838de73791d708b6a

Установка и использование подсистемы Linux (WSL 2) в Windows 10

Window linux

Windows Subsystem for Linux (WSL) — подсистема ОС Windows 10, позволяющая разработчикам, тестировщикам запускать нативные приложения Linux, писать скрипты, выполнять команды непосредственно из Windows.

В обновлённой Windows 10 (2004) появилась 2я версия WSL, в которой используется полноценное ядро Linux с возможностью запуска приложений и контейнеров Docker, реализована высокая скорость загрузки, небольшой объем потребляемых ресурсов, управление в фоновом режиме, обновление ядра.

Таким образом вы сможете запускать ELF64 программы, которые могут получать доступ к файловой системе Windows без использования сторонних порто (таких как Cygwin).

Образ ядра Linux (версия ядра 4.19) в Windows 10 представляет собой легкую виртуальную машину, для запуска которой не нужно ставить полноценную роль Hyper-V. Системные вызовы Linux транслируются на лету в вызовы Windows без использования эмулятора (в отличии от WSL1).

Изначально компонент WSL отключен.

Чтобы его включить, вам необходимо зайти в Пуск -> Панель управления -> Программы и компоненты -> Включение и отключение компонентов Windows (Control Panel\All Control Panel Items\Programs and Features\Turn Windows features on or off), активировать галочку Подсистема Windows для Linux (Windows Subsystem for Linux), нажать кнопку ОК, и перезагрузить компьютер.

Вы можете включить компоненты WSL в Windows 10 с помощью dism:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

или PowerShell

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

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

Теперь вам нужно выполнить обновление WSL до версии 2. Для этого требуется зайти на сайт https://docs.microsoft.com/ru-ru/windows/wsl/wsl2-kernel, скачать файл wsl_update_x64.msi, установить его. По завершении увидите картинку

Чтобы сделать WSL2 архитектурой по умолчанию для новых дистрибутивов, в PowerShell выполните команду:

wsl –set-default-version 2

Далее вам необходимо открыть Microsoft Store, в поиске ввести слово “Linux”. В появившемся списке выберите нужный дистрибутив. Доступные Ubuntu, Debian, Kali Linux, Linux Cheatsheet, SUSE Linux Enterprise Server15, openSUSE Leap 15-1, Pengwin Enterprise, Fedora Remix for WSL или другие. В нашем примере мы будем использовать Ubuntu 20.04 LTS, нажмите кнопку Получить.

После установки можно проверить используемую версию WSL с помощью команды

wsl –list –-verbose

Если у вашей среды Linux указана версия 1, нужно изменить ее на WSL2 командой:

wsl –set-version Ubuntu-20.04 2

Файл жёсткого диска с образом виртуальной машины ОС Linux Ubuntu 20.04 будет располагаться в профиле пользователя: C:\Users\234\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState.

После установки дистрибутива в стартовом меню появляется ярлык на него. Для запуска Ubuntu зайдите в меню Пуск, нажмите на соответствующем ярлыке и получите в отдельном окне полноценную командную оболочку Bash. Запускать WSL можно и с помощью команды wsl.

При первом запуске образа в командной строке Bash вам будет предложено создать пользователя и пароль (которые не должны совпадать с учётной записью Windows). Чтобы выполнять команды с правами root, необходимо использовать дополнительный ключ (префикс) sudo.

В WSL есть общие команды для Bash и CMD, и тут нужно не забывать, что система Linux чувствительна к регистру.

Вы можете выполнить Linux-команды из CMD. Для этого необходимо вначале указать “WSL”. Например, для просмотра списка файлов и папок в каталоге Windows, выполните:

wslls /mnt

ls/mnt/c

dir | wsl grep Sawsl ls ‑la > 123.txtwsl ls ‑la /proc/cpuinfo

wsl ls ‑la “/mnt/c/Program Files”

Также вы можете открыть проводник командой explorer.exe, калькулятор – calc.exe, блокнот – notepad.exe, paint – mspaint.exe, календарь – cal, погоду – curl wttr.in

Ещё один пример взаимосвязи 2х систем – вы можете открыть в Windows файл из WSL-дистрибутива по сетевому пути. Для этого в CMD наберите путь к файлу:

notepad \\wsl$\Ubuntu-20.04\home\1122.txt

Из окна консоли вы можете обновить список пакетов в Ubuntu с помощью команд:

sudo apt-get update
sudo apt-get upgrade

После обновления Ubuntu папка …/LocalState будет занимать 1.5 Гб.

Из командной строки Linux можно не только просмотреть Windows-файлы и каталоги, но и получить к ним доступ. Чтобы удобнее копировать файлы, просматривать директории и их содержимое, установите файловый менеджер Midnight Commander с помощью команды

sudo apt-get install mc

Вы можете запустить Midnight Commander как в командной оболочке Bash, так и внутри CMD. На скриншоте ниже показано, что в двух панелях MC показывается список файлов с обеих ОС.

Можно отобрахить сетевые настройки (IP адрес) IP-адрес Linux-системы:

ip addr | grep eth0

В WSL не предусмотрена работа приложений с графическим интерфейсом. Тем не менее вы можете попробовать их установить и использовать. Чтобы запускать графические приложения в Linux, нужно скачать и установить в Windows программу VcXsrv Windows X Server (https://sourceforge.net/projects/vcxsrv/).

С помощью пакетного менеджера apt-get установим несколько графических программ: например, браузер, текстовый редактор или что-то ещё:

sudo apt-get install geditsudo apt-get install firefox

sudo apt-get install x11-app

Затем создайте файл в директории root:

cd /~
vim .bash_login

впишите строку

export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0

сохраните запись

Esc -> :wr -> :q

Теперь можете запустить графические программы Linux через WSL командами:

firefox

или

gedit

Вы можете установить в Windows 10 несколько дистрибутивов Linux и запускать одновременно в разных окнах WSL. Вывести весь перечень установленных дистрибутивов можете с помощью команды:

wsl –list –all

чтобы завершить работу всех запущенных дистрибутивов и ядра WSL 2, выполните команду:

wsl –shutdown

Источник: https://winitpro.ru/index.php/2020/07/13/zapusk-linux-v-windows-wsl-2/

Поделиться:
Нет комментариев

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

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.