Использование Linux- или UNIX-приложений в Windows может быть продиктовано массой причин — от банальной привычки к некоторым программам до невозможности запуска отдельной машины с Linux. Кто-то хочет использовать нативные версии ПО для отладки, а кто-то надеется, что таким способом можно заставить пользователей плавно смигрировать на полноценный дистрибутив.
Прежде чем городить огород с эмуляторами, лучше поищите портированные версии или аналоги ваших любимых программ. Те же GIMP, Audacity, Pidgin и множество других утилит имеют родные сборки не только для Windows, но и для Mac OS X. Для получения какой-то конкретной функциональности зачастую не требуется полноценный аналог софта из Linux. Например, к автодополнению по Tab в оболочке bash привыкаешь очень быстро, а в командной строке Windows этого нет и в помине. Исправить это и другие досадные упущения поможет утилита clink.
Стандартные консольные утилиты, например из пакета GNU Coreutils, давно спортированы на Windows. Есть как довольно старые наборы GNUWin II и UnxUtils, так и постоянно обновляющиеся UWIN (не рекомендуется к использованию) и Gnuwin32. Для последнего по завершении установки базового инсталлятора надо последовательно запустить файлы download.bat и install.bat, а затем скопировать по желанию папку gnuwin32 в любое удобное место и запустить из неё файл update-links.bat. После отработки последнего скрипта в подкаталоге StartMenu будут ссылки на запуск командной строки с окружением GNU и документацию к утилитам.
Обладатели Windows Vista/7 в максимальной и корпоративной версиях, а также серверных версий ОС Microsoft могут вообще не заморачиваться. Для них доступна подсистема для приложений на базе UNIX (Subsystem for UNIX-based Applications, SUA) или сервисы Microsoft Windows для UNIX (Microsoft Windows Services for UNIX, SFU). Этот набор базовых утилит наличествует прямо в компонентах системы. Дополнительные наборы программ можно скачать здесь. Наконец, последнее в списке и первое по популярности решение для запуска UNIX-программ — это Cygwin. Этот пакет прост в установке и содержит далеко не маленький набор приложений, портированных под Windows. Рекомендуется использовать именно его.
Теперь можно поговорить о странном — запуске неродной для Windows системы KDE. Вообще-то проект KDE on Windows существует не первый год, и поначалу пользоваться им было просто невозможно из-за регулярных падений, которые разве что не загоняли несчастную систему в BSOD. Однако разработчики не сидели сложа руки, и в нынешней реинкарнации проекта его можно смело инсталлировать — ошибки довольно редки, да и те — некритичные. Всё сразу ставить смысла, наверное, нет, а вот некоторые приложения могут приглянуться.
К сожалению, портированные приложения далеко не всегда ведут себя так, как в родном окружении, или могут конфликтовать с другими программами. Поэтому единственным выходом, помимо установки «пингвиньей» ОС на голое железо, является эмулирование Linux. Для разового использования можно применить оболочку для QEMU под названием MobaLiveCD, которая без лишних телодвижений поможет запустить LiveCD/USB с различными дистрибутивами. Для постоянного использования лучше инсталлировать Linux в виртуальную машину: в VirtualBox или VMWare Player. Только не забудьте установить гостевые дополнения для более комфортной работы. Альтернативный вариант — применение VDI-решений с возможностью бесшовной интеграции в Windows Linux-приложений, запущенных на отдельном хосте, который также может быть виртуализирован.
Оптимальным вариантом для запуска 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.
Теперь необходимо скачать архив образа диска с Debian и распаковать его в ту папку, в которую был установлен coLinux. Размер диска rootfs_2gb.img при желании можно увеличить. Файл squeeze.conf придётся немного отредактировать. Изменений минимум — увеличить объём выделяемой RAM (mem), разрешить доступ к диску C: посредством COFS и добавить сетевой интерфейс TAP. Обратите внимание, что при использовании COFS лучше не обращаться одновременно к одним и тем же файлам с папками из Linux и Windows.
kernel=vmlinux cobd0="rootfs_2gb.img" cobd1="swap_128mb.img" root=/dev/cobd0 ro cofs0="C:" initrd=initrd.gz mem=512 eth0=slirp eth1=tuntap
После запуска squeeze.bat вы попадёте в консоль Debian. Логин по умолчанию root, а пароля нет. С помощью nano отредактируем параметры сетевых интерфейсов в файле /etc/network/interfaces. Добавим секцию для eth1. В качестве IP-адреса используем любой, лишь бы не было пересечения с другими локальными подсетями. В Windows в настройках IPv4 сетевого адаптера TAP-Win32 Adapter V8 (coLinux) надо указать адрес из той же подсети.
auto eth1 iface eth1 inet static address 192.168.100.2 netmask 255.255.255.0
Выходим из nano с сохранением изменений — F2, Y, Enter. Теперь создадим папку, куда будет монтироваться диск C:…
mkdir /mnt/windrvc
…добавим одну строчку в конец файла /etc/fstab и сохраним его:
/dev/cofs0 /mnt/windrvc cofs defaults 0 0
Сейчас мы займёмся установкой X-сервера, а пока для простоты пропишем экспорт переменной DISPLAY в файл ~/.profile (это надо будет сделать и для любых других пользователей). В качестве IP-адреса используйте тот, что указан для TAP-адаптера в Windows. После этого можно перезагрузиться командой reboot.
export DISPLAY=192.168.100.1:0
Нелишней будет установка набора шрифтов, в том числе и кириллических. Опционально можно пройтись по каталогам со шрифтами, включая C:WindowsFonts, утилитами mkfontdir и mkfontscale из состава Cygwin. Теперь всё готово для установки X-сервера Xming. Сразу же после этой процедуры добавляем в файл X0.hosts IP-адрес TAP-интерфейса в Debian (в нашем примере это 192.168.100.2).
«Поблагодарим» Windows за бдительность и в стандартном брандмауэре поменяем все правила, касающиеся Xming, с запрещающих на разрешающие, а иначе программы просто не достучатся до X-сервера. Теперь запускаем утилиту XLaunch, в которой можно выбрать режим отображения X-окон и задать дополнительные параметры. Для нас важно настроить поддержку русской и английской раскладок с переключением по Alt+Shift и опционально задать DPI. В конце файл настроек надо сохранить как имя.xlaunch. В дальнейшем по двойному клику по этому файлу X-сервер будет запускаться с заданными нами параметрами.
-xkblayout us,ru -xkbvariant basic,winkeys -xkboptions grp:alt_shift_toggle –dpi 96
Чтобы не было так скучно, установим графический менеджер пакетов synaptic для более удобной инсталляции софта и какую-нибудь легковесную панель с меню приложений, например lxpanel. Последнюю для простоты пропишем в автозапуск при входе, добавив в конец ~/.profile команду lxpanel&.
apt-get update apt-get upgrade apt-get install synaptic lxpanel
Для полноты картины добавим поддержку звука. Скачиваем отсюда архив с Pulseadio и распаковываем его в какой-нибудь каталог, в котором создаём текстовый файл default.pa. Наполняем этот файл нижеследующими строками. Здесь 192.168.100.0/24 — это наша TAP-подсеть.
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.100.0/24 load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.100.0/24 load-module module-detect add-autoload-sink output module-waveout sink_name=output set-default-sink output
Запускаем pulseaudio.exe и в очередной раз идём править разрешения в брандмауэре Windows. В консоли Debian устанавливаем необходимые утилиты и библиотеки.
apt-get install libpulse0 libasound2-plugins alsa-utils
В файле /etc/pulse/client.conf добавляем IP-адрес хост-машины с запущенным сервером Pulseaudio — default-server = 192.168.100.1, а в /etc/asound.conf следующие параметры:
pcm.!default {type pulse} ctl.!default {type pulse} pcm.pulse {type pulse} ctl.pulse {type pulse}
Для проверки работоспособности можно попробовать проиграть один из тестовых файлов.
aplay /usr/share/sounds/alsa/Front_Center.wav
Автоматический запуск Pulseaudio при старте Debian осуществляется добавлением в конец файла конфигурации squeeze.conf такой команды.
exec0="X:путьдопапкиpulseaudiopulseaudio.exe"
Для X-сервера такой трюк не подходит. В принципе, того, что уже сделано, достаточно для работы. Однако неплохо было бы добавить в Linux нового не-root пользователя, настроить для него автологин с mingetty, установить coLinux в качестве службы Windows и прописать Xming в автозапуск. Для удобства можно поставить утилиту Desktops, которая создаёт несколько виртуальных рабочих столов в Windows, и запускать X-сервер в полноэкранном режиме на втором рабочем столе.
В итоге мы получили быструю среду для почти что нативного запуска Linux-приложений в Windows. Её можно использовать для написания и отладки веб-приложений, кросскомпиляции драйверов и прочих задач. Вот только вменяемого ускорения графики для работы тяжёлых приложений пока ещё нет, да 64-битная версия начала разрабатываться всего несколько месяцев назад. Тем не менее coLinux вполне пригоден для повседневного использования. Для дальнейшего изучения возможностей и настроек этой системы обратитесь к вики проекта. Ну а мы на этом пока что закроем тему симбиотических отношений Windows с Linux через разные места. Удачи!
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Под GNU/Linux-дистрибутивы создано огромное количество полезных и удобных инструментов и приложений для обычных пользователей и разработчиков. Далеко не всё из этого доступно на Windows, но, к счастью, для ОС от Microsoft есть решения, исправляющие эту проблему.
WSL — официальная подсистема Linux внутри Windows
В Windows 10 существует крайне полезная вещь под названием Windows Subsystem for Linux (WSL). Она позволяет использовать GNU/Linux-среду прямо в Windows и запускать не только команды, но и, например, Bash-скрипты. Для использования WSL необходимо следовать инструкции ниже.
Шаг 1. Проверьте, подходит ли текущая версия Windows требованиям. Для этого нажмите сочетание клавиш Win+R, затем введите winver. Найдите строку «Сборка ОС» — она должна быть свежее версии 14316.
Шаг 2. Запустите стандартную утилиту PowerShell от имени администратора и введите в ней команду для включения WSL:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
Шаг 3. Если версия Windows, определённая в первом пункте, свежее 18362, вы можете установить WSL 2, который в разы быстрее первой версии и обладает доработанным ядром. Введите команду ниже, если нужно установить WSL 2:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
После этого скачайте и установите пакет обновления с официального сайта.
Шаг 4. Перезагрузите компьютер. Если была произведена установка WSL 2, введите в PowerShell от имени администратора следующую команду:
wsl —set-default-version 2
Шаг 5. После перезагрузки откройте фирменный магазин приложений Microsoft Store и найдите подходящий GNU/Linux-дистрибутив. Самым популярным является Ubuntu — вы можете установить любую версию из представленных в Microsoft Store.
Шаг 6. Как только установка завершится, найдите дистрибутив в меню «Пуск» и запустите его.
Шаг 7. Пройдите этап первоначальной настройки, введя имя нового пользователя и придумав пароль.
Шаг 8. Теперь различные GNU/Linux-команды можно выполнять, запустив дистрибутив, либо введя в командной строке wsl <команда>. Например, для просмотра всех файлов в текущей директории достаточно в командной строке выполнить wsl ls -a.
Обращу внимание на то, что путь к дискам в WSL отличается от такового в Windows. Вместо привычного C:/ используйте /mnt/c/. Также не забывайте про экранирование пробелов с помощью символа — это также пригодится при вводе путей к файлам.
Помимо выполнения базовых команд, с помощью WSL можно даже запускать приложения с графическим интерфейсом. Правда, рассчитывать на большое количество поддерживаемых подобных программ не стоит.
Шаг 1. Загрузите X-сервер и установите его.
Шаг 2. Запустите его с помощью ярлыка на рабочем столе. В открывшемся окне выберите вариант Multiple windows, затем Start no client. Завершите настройку кнопкой Finish.
Шаг 3. Откройте дистрибутив через меню Пуск и выполните команду export DISPLAY=:0
Шаг 4. Запустив приложение с графическим интерфейсом в WSL, вы увидите новое окно прямо в Windows.
CoreUtils — лёгкий инструмент для запуска базовых команд
Плюс данной утилиты — возможность запуска не только на Windows 10, но и на более старых версиях ОС. Кроме того, она легка и не занимает много места. Не обошлось без недостатков — программа скудна на функционал и не обновлялась очень давно. Она не только не умеет запускать скрипты и приложения с GUI, но и поддерживает лишь самые базовые GNU/Linux-команды. Установка CoreUtils весьма проста.
Шаг 1. Скачайте утилиту с официального сайта.
Шаг 2. Следуйте инструкциям установщика.
Шаг 3. Откройте «Панель управления», в разделе «Система и безопасность» выберите пункт «Система». На панели слева откройте «Дополнительные параметры системы». Нажмите кнопку «Переменные среды» и в открывшемся окне найдите область с заголовком «Системные переменные». В случае, когда там есть переменная Path, выберите её, нажмите «Изменить» и далее создайте новую строку. Содержимым этой строки должен быть путь к папке, который был указан при установке. Если вы ничего не меняли, то введите следующее:
C:Program Files (x86)GnuWin32bin
Переменной Path нет? Тогда для начала создайте её кнопкой «Создать», затем в поле имени введите Path, а в поле значения — строку выше.
Шаг 4. Запустите командную строку и выполняйте команды прямо там.
Cygwin — запуск команд и Bash-скриптов
Ещё одна утилита, схожая с CoreUtils, но обладающая более широким функционалом — в том числе и возможностью запуска скриптов. Из минусов — немалый вес и более сложная установка. Разумеется, не идёт ни в какое сравнение с максимально удобным WSL, но для базовых команд вполне подойдёт.
Шаг 1. Загрузите Cygwin и запустите установку.
Шаг 2. Выберите Install from Internet, укажите директории для установки и загрузки пакетов, а также любой подходящий сайт из списка для скачивания файлов.
Шаг 3. В процессе установки можете выбрать необходимые пакеты, либо сразу нажать «Далее», оставив базовый набор.
Шаг 4. Откройте «Панель управления», в разделе «Система и безопасность» выберите пункт «Система». На панели слева откройте «Дополнительные параметры системы». Нажмите кнопку «Переменные среды» и в открывшемся окне найдите область с заголовком «Системные переменные». В случае, когда там есть переменная Path, выберите её, нажмите «Изменить» и далее создайте новую строку. Содержимым этой строки должен быть путь к папке, который был указан при установке. Если вы ничего не меняли, то введите следующее:
C:cygwin64bin
Переменной Path нет? Тогда для начала создайте её кнопкой «Создать», затем в поле имени введите Path, а в поле значения — строку выше.
Шаг 5. Команды можно выполнять как через командную строку, так и через специальный терминал.
Шаг 6. Для удаления Cygwin достаточно удалить папку, в которую программа была установлена, а также (по желанию) значение из переменной Path по методу, обратному тому, что был описан в 4 шаге (не удаляйте саму переменную).
Windows Subsystem for Linux 2
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.
Ссылки
Подготовка к установке WSL 2
Подсистема WSL 2 доступна только в Windows 10 версии 2004, сборки 19041 или выше. Проверяю версию:
Источник
Подсистема для UNIX-приложений в Windows 7
Заметил вещь под названием « Подсистема для приложений на основе UNIX» в диалоговом окне « Включение и выключение функций Windows » в Windows 7. Никогда раньше не видел, и это кажется интересным. Что именно это на самом деле? Для чего он нужен и для чего я могу его использовать?
2 ответа 2
Ранее известный как SFU или Сервисы для UNIX. Это подсистема среды в Windows, обеспечивающая полное соответствие POSIX и большое количество инструментов, которые обычно поставляются с системами UNIX.
Как подсистема среды это означает, что она работает вместе с Windows API, прямо над ядром. Таким образом, он не более эмулируется, чем сам Windows API, и, следовательно, работает намного лучше, чем Cygwin, например. 1
Он в основном предназначен для сборки и запуска приложений UNIX непосредственно в Windows, поэтому, если ваша любимая программа UNIX не поставляется с портом Windows, вы можете попробовать создать ее в SUA:
Службы Windows для Unix и подсистема для приложений на основе Unix предоставляют заголовочные файлы и библиотеки, которые упрощают перекомпиляцию или перенос приложений Unix для использования в Windows; они не делают двоичные файлы Unix совместимыми с двоичными файлами Windows. Лучше всего думать, что это отдельная Unix-подобная платформа.
Текущая версия СФУ содержит:
- Более 350 утилит Unix, таких как vi, ksh, csh, ls, cat, awk, grep, kill и т.д.
- Компилятор GCC 3.3, включает в себя и библиотеки (через MS libc)
- Cc-подобная оболочка для компилятора C/C++ командной строки Microsoft Visual Studio
- Отладчик GDB
- NFS сервер и клиент
- Демон pcnfsd
- Инструменты и библиотеки X11
- Инструменты для создания точек монтирования NFS отображаются в виде общих ресурсов Windows и наоборот (службы шлюза)
- Возможность сервера NIS, связанная с Active Directory (AD)
- Некоторые средства синхронизации информации аутентификации Windows/Unix
SFU не содержит следующее (но двоичные файлы доступны для отдельной установки):
- bash, OpenSSH, sudo, CVS, ClamAV, bzip2, gmake, curl, emacs, Apache, XView, Ruby, Tcl, Python
Так как SUA не пытается быть Linux или BSD, а представляет собой просто POSIX, это также может означать, что многие программы, которые зависят от платформы, могут не скомпилироваться или работать. Вспоминаются сценарии оболочки, которые предполагают использование bash вместо sh или системных вызовов Linux. В настоящее время написано очень мало программ, которые могут работать непосредственно в любой POSIX-совместимой системе. Также версия gcc, которая включена, является несколько старой, что означает, что она может не поддерживать вашу последнюю версию C99+.
1 На него по-прежнему распространяются специфические для Windows ограничения, такие как медленное время запуска процесса, поэтому экстремальное разветвление будет по-прежнему очень медленным, поэтому вам придется долго ждать выполнения многих скриптов ./configure или некоторых make-файлов.
Источник
Перемещаем приложения UNIX в WINDOWS с помощью SUA
Корпорация Microsoft обеспечивала поддержку приложений UNIX для своих операционных систем, начиная с выпуска Windows NT 3.1, которая имела совместимую с POSIX подсистему.
Корпорация Microsoft обеспечивала поддержку приложений UNIX для своих операционных систем, начиная с выпуска Windows NT 3.1, которая имела совместимую с POSIX подсистему. Поддержка приложений UNIX и интероперабельность постепенно расширялись, и разработчики Microsoft реализовали такие функции, как поддержка сети, демонов и даже X Window. С выпуском Windows Server 2008 и Windows Vista, вероятно, настало время предприятиям подумать о перемещении приложений для бизнес-применения из UNIX в Windows, используя подсистему Microsoft для приложений, основанных на UNIX Subsystem for UNIX-based Applications (SUA). Узнать некоторые функции этой подсистемы и установить ее легко: загрузите нужные инструменты, проверьте возможности, которые предлагает SUA для традиционных приложений UNIX, и измените приложение UNIX, чтобы запустить его на Windows.
Установка SUA
Прежде чем начать использовать SUA, который включен в Server 2008 и Vista, нужно установить и запустить этот компонент. В панели управления в модуле Programs and Features щелкните на Turn Windows features on or off в панели слева. В Vista в диалоговом окне Windows Features следует выбрать флажок SUA, как показано на экране 1, и нажать OK. Если вы используете Server 2008, запустите Server Manager, затем правой кнопкой щелкните на Features, выберите Add Features из контекстного меню и установите флажок для Subsystem for UNIX-based Applications (необходимые системные файлы были скопированы ранее, когда вы устанавливалась Windows Server 2008 или Vista).
В папке SUA, которая появляется в меню All Programs впоследствии, видим два пункта. Файл подсказки Help поможет в освоении новых функций подсистемы. Пункт Download Utilities перенаправит в Microsoft Download Center, откуда можно загружать утилиты и набор средств разработки SDK для SUA. И 32-разрядная, и 64-разрядная версия SUA доступны на Server 2008 и Vista. Загрузите и установите комбинированный пакет, содержащий утилиты и SDK, которые имеют разные размеры (от 193 до 210 Mбайт) в зависимости от версии и операционной системы. SDK доступен для любых систем, на которые вы портируете или для которых вы будете компилировать приложения для UNIX. То же самое относится к утилитам, имеющим программные оболочки в стиле UNIX. При загрузке вы получите исполняемый файл архива. Потребуется указать каталог, куда файлы будут разархивированы для последующей установки.
В процессе установки система запрашивает имя, согласие с условиями лицензионного договора и предлагает стандартный или выборочный вариант установки. Стандартный вариант предполагает размещение используемых файлов в C:WindowsSUA и соответствующую настройку системы. Однако я рекомендую указать выборочную установку и установить только те компоненты, которые действительно нужны, такие как поддержка систем BSD и UNIX, утилиты GNU, SDK и подключаемый модуль для Visual Studio. Если решено установить GNU SDK, нужно принять условия лицензионного договора, с названием GNU Lesser General Public License, копия которого устанавливается вместе с SDK.
Единственный шаг в работе мастера, на который необходимо обратить особое внимание, — это настройки системы безопасности, показанные на экране 2. Появляющиеся параметры (как в стандартной, так и в выборочной установке) зависят от ваших предпочтений в ходе установки. Параметр Enable Su To Root behavior for SUA programs позволяет приложениям выступать от имени пользователя root (это аналог учетной записи Administrator в системе Windows), когда активирована функция User Account Control (UAC). Во многих случаях системные приложения и процессы, такие как демоны в системах UNIX, требуют этой возможности; действия конечного пользователя, такие как ввод данных или пользовательские настройки программ, редко требуют подобной функциональности. Второй параметр позволяет управлять настройкой setuid, которая связана со способностью приложений UNIX выступать от имени собственника программы. Распространенный сценарий в системах UNIX — это когда данный параметр позволяет пользователям, которые обычно не имеют доступа к базам данных или файлам, запускать приложение в качестве собственника ресурса и получать доступ, контролируемый приложением. Всякий раз по возможности отключайте эту функцию.
Третий параметр — включать ли в Windows чувствительность к регистру вводимых символов. По умолчанию в Windows этого нет, и можно получить доступ к файлу README. TXT, открыв readme.txt. Делая Windows чувствительным к регистру вводимых символов, вы можете разместить разные файлы в той же папке, и их имена будут отличаться только регистром ввода, например README. TXT, Readme.Txt и readme.txt. Взломщик, знающий о том, как получают доступ к таким файлам, может использовать это. Я рекомендую вам не делать Windows чувствительным к регистру, а заняться проблемами с регистром символов при портировании приложений. Описание проблем с безопасностью для всех параметров можно найти в файле Install.htm в C:WindowsSUA.
Исследуем SUA
После того, как вы установите утилиты и SDK для подсистемы, дополнительные пункты меню присоединятся к группе программ SUA, включая (зависит от вариантов установки) программные оболочки C и Korn, файл с последними изменениями и ссылку для проверки критических обновлений. Самый простой способ исследовать подсистему — это запустить новый продукт в одной из установленных командных оболочек. Тогда вы сможете исследовать файловую систему подсистемы, используя cd и ls — команды UNIX, как показано на экране 3.
Корневой каталог файловой системы смонтирован к каталогу установки SUA, как показано на экране 4. Чтобы раскрыть файловую систему и получить доступ к локальным и сетевым дисководам Windows, используйте устройства файловой системы, расположенные в /dev/fs. Например, dev/fs/C позволяет получить доступ к корневому каталогу или диску C;/dev/fs/Z дает доступ к сетевому диску, смонтированному как диск Z; а /dev/fs/C/Windows предоставляет доступ к папке Windows.
При использовании команды cd или написании пути к этой команде следует помнить, что в UNIX нужно использовать прямой слэш (/), а не обратный (), как в Windows. Просмотр известных каталогов для исполнимых файлов, таких как/bin,/usr/bin (который является символической ссылкой к /bin),/usr/local/bin и /usr/sbin, открывает много утилит командной строки, известных пользователям UNIX (например, cp, rm, mkdir, find, size, join, sort). В других каталогах можно найти поддержку подсистемы X Window, sendmail и служб сети, а также демонов. Последнее я опишу позже.
Можно просмотреть запущенные процессы подсистемы, используя команду ps. Изначально команда Ps возвращает только процессы, запущенные пользователем из оболочки. Если вы применяете сложные программные оболочки или хотите осмотреть процессы подсистемы и всей Windows, которые запущены, можете использовать команду ps с ключом х (для информации обо всех процессах, принадлежащих пользователю) или с ключом А (для информации обо всех процессах в системе).
Чтобы получить информацию о ключах, поддерживаемых каждой командой, можно использовать команду man оболочки. Сами программные оболочки богаты возможностями, и вы можете использовать их, как при работе в системе UNIX. На экране 5 показан сценарий программной оболочки Korn, используемый для распаковки с помощью zip и tar дистрибутива XFree86 UNIX, который поставляется в виде нескольких файлов. Программная оболочка Korn — это интерпретатор командной строки UNIX, аналог cmd.exe в Windows, но более гибкий. Tar — это команда, которая используется для создания архивов файлов и извлечения файлов из имеющихся архивов.
Она раньше предназначалась для работы с магнитной лентой, но сейчас это утилита, используемая для распространения программного обеспечения, состоящего из большого количества файлов.
Запуск SUA, демонов и сетевых служб
Запуская Vista, вы запускаете и подсистему UNIX. Как и UNIX, наша подсистема имеет процесс init, который читает файлы запуска из папки/etc/rc2.d, содержащей символические ссылки на файлы в каталоге/etc/init.d. В системе UNIX у вас были бы дополнительные папки, такие как rc3.d и rc4.d, представляющие каждый уровень исполнения и состояние, в котором может быть система, такое как «однопользовательская», «без поддержки сети», «в нормальном режиме и запущена». В отличие от систем UNIX, SUA работает только с уровнем исполнения 2. Названия сценариев в rc2.d начинаются с Snn (для сценариев, вызванных при запуске) или с Knn (для сценариев, вызванных при завершении), где nn — двузначное число, используемое для указания порядка, в котором вызываются сценарии. Сценарий, который заканчивается на 00, вызывается первым; тот, который заканчивается на 99, — последним. Такая поддержка запуска и завершения демонов упрощает их подсоединение к Windows Vista.
Подсистема обеспечивает поддержку служб, запущенных inetd (диспетчером служб, который управляет службами Internet), таких как серверы Telnet, FTP, и TFTP. SUA поддерживает IPv4 и IPv6. Чтобы активировать сетевые службы, отредактируйте файл/etc/inetd.conf и снимите символ комментария у стандартной службы или добавьте собственную. Если у вас есть сетевая служба UNIX, запущенная inetd, SUA будет поддерживать службу после ее портирования.
Поддержка X Window
Как уже упоминалось выше, SUA поддерживает X Window. Однако подсистема нt включает в себя X Server, поэтому необходимо либо приобрести и установить коммерческую версию сервера Х Window, такого как Exceed jn Hummingbird (www.hummingbird.com), либо недорогой или бесплатный Х Server, такой как SourceForge.net (www.sourceforge.net).
С установленным и запущенным Х Server можно работать с программами X Window, которые поставляются с подсистемой SUA, в том числе такими, как xeyes, системные часы, с названием xclock, и xterm (стандартный эмулятор терминала для X Window). Подсистема также дополнена менеджером X Window: twm. Вдобавок X Window поддерживается со стороны SUA заголовочными файлами и библиотеками, необходимыми для создания приложений X Window.
Сценарии оболочки для портирования
С полностью функциональными оболочками C и Korn и привычными инструментами обработки данных, такими как sort, uniq и col, портирование большинства сценариев оболочек должно быть сравнительно легким. Здесь подходящие кандидаты — сценарии, которые преобразуют данные из файлов, например сортируют или соединяют их, удаляют копии или отфильтровывают выбранные столбцы, до того как они будут загружены или после извлечения из базы данных, а также сценарии, которые использует FTP для отправки или получения файлов данных. Клиент и сервер FTP, которые поставляются вместе с подсистемой SUA, являются более функциональными, чем их аналоги в Windows. Многие организации до сих пор полагаются на FTP, чтобы перемещать большое количество данных, и на системы UNIX, если дело касается дополнительных функций и настраиваемых клиентов FTP.
Компоновка приложений Cи и C++
SUA поддерживает портирование приложений Cи и C++ из UNIX, но необходимо учитывать некоторые моменты. Подсистема поставляется с поддержкой компиляторов Cи и C++ GNU. Однако по умолчанию для компилятора используется интерфейс среды Microsoft Visual Studio, которая должна быть установлена. Visual Studio может использоваться для компиляции приложений, написанных только в Cи, но не в C++. На экране 6 показано содержание Makefile — простого файла на Си — и пример того, что происходит, когда запускается команда make.
Если у вас нет Visual Studio, и вам нужно компилировать исходный код на C++ или вы просто предпочитаете использовать компиляторы GNU, можете сделать это, вызывая gcc или g++. Используя компиляторы GNU, обращайте внимание на расширение файла. Например, файл с исходным кодом на C++ в Windows обычно имеет расширение cpp, но компилятор g++ ожидает от файла с исходным кодом на C++ расширения .cc. Если у файла неправильное расширение, вы можете столкнуться со случайными ошибками, особенно на платформах с 64-разрядной архитектурой. Я рекомендую проверить файлы подсказок SUA и последние исправления; эти документы содержат полезную информацию, которая поможет избежать затруднений.
В каталоге/usr/examples можно найти пример исходного кода, который показывает, как использовать Oracle Call Interface (API для базы данных Oracle) и ODBC API. Пример демонстрирует, как использовать процедуру клиента Open Network Computing для вызова удаленных процедур.
При портировании пакетных приложений для SUA вам, возможно, придется менять сценарии командной оболочки, которые можно использовать для просмотра системы и создания файлов makefile, необходимых для компоновки приложений. Сценарии более старых версий, особенно config.guess и config.sub, работают в подсистеме не слишком хорошо; я рекомендую загрузить последние версии этих сценариев с сайта ftp.gnu.org до портирования приложений.
Когда вы портируете или создаете приложения X Window, убедитесь, что установлены и доступны все необходимые файлы. Многие приложения X Window используют дополнительные модули или шрифты независимых компаний, поэтому следует установить и скомпоновать их в первую очередь. Большинство известных пакетов должны портироваться сравнительно легко, особенно если применяются компиляторы GNU.
Другой мир
Итак, мы познакомились с подсистемой для приложений, основанных на UNIX, которые дополняют Server 2008 и Vista. Эта подсистема обеспечивает реальную альтернативу системам UNIX для многих предприятий, позволяя им исключать устаревшие системы UNIX за счет перемещения приложений на Windows Server 2008 или Vista. Функционально богатые программные оболочки подсистемы, средства управления файлами, легкий запуск демонов и сетевая поддержка действительно делают развертывание и управление некоторыми сценариями и утилитами в SUA более простым, чем в среде Windows.
Джон Хоуи (jhowie@microsoft.com) — руководитель подразделения World Wide Services and IT Technical Community for Security компании Microsoft. Имеет сертификаты CISSP, CISM и CISA
Проблема Со времени Windows NT 3.1 система Windows поддерживала приложения POSIX. Однако недостаток встроенных функций и инструментов требовал подключения приложений UNIX к Windows, так что пользователям приходилось приобретать и использовать инструменты независимых фирм.
Решение Установите подсистему для приложений, основанных на UNIX, Subsystem for UNIX-based Applications (SUA) для Server 2008 и Vista.
Что нужно Server 2008 или Vista, связь с Internet, пакет X Server (необязательно)
Источник
Содержание
- Подсистема для UNIX-приложений в Windows 7
- Подсистема для UNIX-приложений в Windows 7
- 2 ответа
- Подсистема для UNIX-приложений в Windows 7
- 2 ответа 2
- Запуск Linux-приложений в Windows — фантастика или суровая реальность?
Подсистема для UNIX-приложений в Windows 7
Заметил вещь под названием « Подсистема для приложений на основе UNIX» в диалоговом окне « Включение и выключение функций Windows » в Windows 7. Никогда раньше не видел, и это кажется интересным. Что именно это на самом деле? Для чего он нужен и для чего я могу его использовать?
Как подсистема среды это означает, что она работает вместе с Windows API, прямо над ядром. Таким образом, он не более эмулируется, чем сам Windows API, и, следовательно, работает намного лучше, чем, например, Cygwin. 1
Он в основном предназначен для сборки и запуска приложений UNIX непосредственно в Windows, поэтому, если ваша любимая программа UNIX не поставляется с портом Windows, вы можете попробовать создать ее в SUA:
Службы Windows для Unix и подсистема для приложений на основе Unix предоставляют заголовочные файлы и библиотеки, которые упрощают перекомпиляцию или перенос приложений Unix для использования в Windows; они не делают двоичные файлы Unix совместимыми с двоичными файлами Windows. Лучше всего думать, что это отдельная Unix-подобная платформа.
Текущая версия СФУ содержит:
SFU не содержит следующего (но двоичные файлы доступны для отдельной установки):
Так как SUA не пытается быть Linux или BSD, а представляет собой просто POSIX, это также может означать, что многие программы, которые зависят от платформы, могут не быть собраны или запущены. На ум приходят сценарии оболочки, которые предполагают использование bash вместо sh или системных вызовов Linux. В настоящее время написано очень мало программ, которые могут работать непосредственно в любой POSIX-совместимой системе. Также версия gcc, которая включена, несколько устарела, что означает, что она может не поддерживать вашу последнюю версию C99 +.
Источник
Подсистема для UNIX-приложений в Windows 7
Отмечена вещь под названием Подсистема для UNIX-приложений в Включение и выключение Windows-функций в Windows 7. Никогда раньше этого не было, и это кажется интересным. Что это такое на самом деле? Для чего это и для чего я могу использовать?
2 ответа
Он предназначен в основном для создания и запуска приложений UNIX непосредственно в Windows, поэтому, если ваша любимая программа UNIX не поставляется с портом Windows, вы можете попробовать создать его в SUA:
Службы Windows для Unix и подсистемы для Unix-приложений предоставляют файлы заголовков и библиотеки, которые упрощают перекомпилирование или перенос приложений Unix для использования в Windows; они не делают исполняемые файлы Unix совместимыми с двоичными файлами Windows. Его лучше всего рассматривать как отдельную Unix-подобную платформу.
Текущая версия SFU содержит:
SFU не содержит следующие (но двоичные файлы доступны для отдельной установки):
Так как SUA не пытается быть Linux или BSD, а просто POSIX, это также может означать, что многие программы, которые полагаются на вещи, зависящие от платформы, могут не создавать или запускать. На ум приходят сценарии оболочки, которые предполагают bash вместо sh или системных вызовов, специфичных для Linux. В настоящее время написано очень мало программ, которые могут запускаться непосредственно в любой POSIX-совместимой системе. Также версия gcc, которая включена, несколько старая, что означает, что она может не поддерживать вашу самую последнюю C99 + доброту.
Вы можете использовать пакеты стиля BSD для установки /удаления программного обеспечения. Вы можете получить доступ к SUA через SSH, если у вас установлен OpenSSH.
Источник
Подсистема для UNIX-приложений в Windows 7
Заметил вещь под названием « Подсистема для приложений на основе UNIX» в диалоговом окне « Включение и выключение функций Windows » в Windows 7. Никогда раньше не видел, и это кажется интересным. Что именно это на самом деле? Для чего он нужен и для чего я могу его использовать?
2 ответа 2
Ранее известный как SFU или Сервисы для UNIX. Это подсистема среды в Windows, обеспечивающая полное соответствие POSIX и большое количество инструментов, которые обычно поставляются с системами UNIX.
Как подсистема среды это означает, что она работает вместе с Windows API, прямо над ядром. Таким образом, он не более эмулируется, чем сам Windows API, и, следовательно, работает намного лучше, чем Cygwin, например. 1
Он в основном предназначен для сборки и запуска приложений UNIX непосредственно в Windows, поэтому, если ваша любимая программа UNIX не поставляется с портом Windows, вы можете попробовать создать ее в SUA:
Службы Windows для Unix и подсистема для приложений на основе Unix предоставляют заголовочные файлы и библиотеки, которые упрощают перекомпиляцию или перенос приложений Unix для использования в Windows; они не делают двоичные файлы Unix совместимыми с двоичными файлами Windows. Лучше всего думать, что это отдельная Unix-подобная платформа.
Текущая версия СФУ содержит:
SFU не содержит следующее (но двоичные файлы доступны для отдельной установки):
Так как SUA не пытается быть Linux или BSD, а представляет собой просто POSIX, это также может означать, что многие программы, которые зависят от платформы, могут не скомпилироваться или работать. Вспоминаются сценарии оболочки, которые предполагают использование bash вместо sh или системных вызовов Linux. В настоящее время написано очень мало программ, которые могут работать непосредственно в любой POSIX-совместимой системе. Также версия gcc, которая включена, является несколько старой, что означает, что она может не поддерживать вашу последнюю версию C99+.
Источник
Запуск Linux-приложений в Windows — фантастика или суровая реальность?
Использование Linux- или UNIX-приложений в Windows может быть продиктовано массой причин — от банальной привычки к некоторым программам до невозможности запуска отдельной машины с Linux. Кто-то хочет использовать нативные версии ПО для отладки, а кто-то надеется, что таким способом можно заставить пользователей плавно смигрировать на полноценный дистрибутив.
Прежде чем городить огород с эмуляторами, лучше поищите портированные версии или аналоги ваших любимых программ. Те же GIMP, Audacity, Pidgin и множество других утилит имеют родные сборки не только для Windows, но и для Mac OS X. Для получения какой-то конкретной функциональности зачастую не требуется полноценный аналог софта из Linux. Например, к автодополнению по Tab в оболочке bash привыкаешь очень быстро, а в командной строке Windows этого нет и в помине. Исправить это и другие досадные упущения поможет утилита clink.
Стандартные консольные утилиты, например из пакета GNU Coreutils, давно спортированы на Windows. Есть как довольно старые наборы GNUWin II и UnxUtils, так и постоянно обновляющиеся UWIN (не рекомендуется к использованию) и Gnuwin32. Для последнего по завершении установки базового инсталлятора надо последовательно запустить файлы download.bat и install.bat, а затем скопировать по желанию папку gnuwin32 в любое удобное место и запустить из неё файл update-links.bat. После отработки последнего скрипта в подкаталоге StartMenu будут ссылки на запуск командной строки с окружением GNU и документацию к утилитам.
Обладатели Windows Vista/7 в максимальной и корпоративной версиях, а также серверных версий ОС Microsoft могут вообще не заморачиваться. Для них доступна подсистема для приложений на базе UNIX (Subsystem for UNIX-based Applications, SUA) или сервисы Microsoft Windows для UNIX (Microsoft Windows Services for UNIX, SFU). Этот набор базовых утилит наличествует прямо в компонентах системы. Дополнительные наборы программ можно скачать здесь. Наконец, последнее в списке и первое по популярности решение для запуска UNIX-программ — это Cygwin. Этот пакет прост в установке и содержит далеко не маленький набор приложений, портированных под Windows. Рекомендуется использовать именно его.
Теперь можно поговорить о странном — запуске неродной для Windows системы KDE. Вообще-то проект KDE on Windows существует не первый год, и поначалу пользоваться им было просто невозможно из-за регулярных падений, которые разве что не загоняли несчастную систему в BSOD. Однако разработчики не сидели сложа руки, и в нынешней реинкарнации проекта его можно смело инсталлировать — ошибки довольно редки, да и те — некритичные. Всё сразу ставить смысла, наверное, нет, а вот некоторые приложения могут приглянуться.
К сожалению, портированные приложения далеко не всегда ведут себя так, как в родном окружении, или могут конфликтовать с другими программами. Поэтому единственным выходом, помимо установки «пингвиньей» ОС на голое железо, является эмулирование Linux. Для разового использования можно применить оболочку для QEMU под названием MobaLiveCD, которая без лишних телодвижений поможет запустить LiveCD/USB с различными дистрибутивами. Для постоянного использования лучше инсталлировать Linux в виртуальную машину: в VirtualBox или VMWare Player. Только не забудьте установить гостевые дополнения для более комфортной работы. Альтернативный вариант — применение VDI-решений с возможностью бесшовной интеграции в Windows Linux-приложений, запущенных на отдельном хосте, который также может быть виртуализирован.
Оптимальным вариантом для запуска 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.
Теперь необходимо скачать архив образа диска с 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) надо указать адрес из той же подсети.
Выходим из nano с сохранением изменений — F2, Y, Enter. Теперь создадим папку, куда будет монтироваться диск C:…
…добавим одну строчку в конец файла /etc/fstab и сохраним его:
Сейчас мы займёмся установкой X-сервера, а пока для простоты пропишем экспорт переменной DISPLAY в файл
/.profile (это надо будет сделать и для любых других пользователей). В качестве IP-адреса используйте тот, что указан для TAP-адаптера в Windows. После этого можно перезагрузиться командой reboot.
Нелишней будет установка набора шрифтов, в том числе и кириллических. Опционально можно пройтись по каталогам со шрифтами, включая C:WindowsFonts, утилитами mkfontdir и mkfontscale из состава Cygwin. Теперь всё готово для установки X-сервера Xming. Сразу же после этой процедуры добавляем в файл X0.hosts IP-адрес TAP-интерфейса в Debian (в нашем примере это 192.168.100.2).
«Поблагодарим» Windows за бдительность и в стандартном брандмауэре поменяем все правила, касающиеся Xming, с запрещающих на разрешающие, а иначе программы просто не достучатся до X-сервера. Теперь запускаем утилиту XLaunch, в которой можно выбрать режим отображения X-окон и задать дополнительные параметры. Для нас важно настроить поддержку русской и английской раскладок с переключением по Alt+Shift и опционально задать DPI. В конце файл настроек надо сохранить как имя.xlaunch. В дальнейшем по двойному клику по этому файлу X-сервер будет запускаться с заданными нами параметрами.
Чтобы не было так скучно, установим графический менеджер пакетов synaptic для более удобной инсталляции софта и какую-нибудь легковесную панель с меню приложений, например lxpanel. Последнюю для простоты пропишем в автозапуск при входе, добавив в конец
/.profile команду lxpanel&.
Для полноты картины добавим поддержку звука. Скачиваем отсюда архив с 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 следующие параметры:
Для проверки работоспособности можно попробовать проиграть один из тестовых файлов.
Автоматический запуск Pulseaudio при старте Debian осуществляется добавлением в конец файла конфигурации squeeze.conf такой команды.
Для X-сервера такой трюк не подходит. В принципе, того, что уже сделано, достаточно для работы. Однако неплохо было бы добавить в Linux нового не-root пользователя, настроить для него автологин с mingetty, установить coLinux в качестве службы Windows и прописать Xming в автозапуск. Для удобства можно поставить утилиту Desktops, которая создаёт несколько виртуальных рабочих столов в Windows, и запускать X-сервер в полноэкранном режиме на втором рабочем столе.
В итоге мы получили быструю среду для почти что нативного запуска Linux-приложений в Windows. Её можно использовать для написания и отладки веб-приложений, кросскомпиляции драйверов и прочих задач. Вот только вменяемого ускорения графики для работы тяжёлых приложений пока ещё нет, да 64-битная версия начала разрабатываться всего несколько месяцев назад. Тем не менее coLinux вполне пригоден для повседневного использования. Для дальнейшего изучения возможностей и настроек этой системы обратитесь к вики проекта. Ну а мы на этом пока что закроем тему симбиотических отношений Windows с Linux через разные места. Удачи!
Источник
Другими словами, вы можете запускать многие распространенные команды Linux / Bash с помощью приложения Git Bash. Вы можете установить Git Bash в Windows, бесплатно загрузив и установив инструмент Git для Windows с его веб-сайта.
Как запустить bash в Windows?
Установка Ubuntu Bash для Windows 10
- Откройте приложение «Настройки», выберите «Обновление и безопасность» -> «Для разработчиков» и установите переключатель «Режим разработчика».
- Затем перейдите в Панель управления -> Программы и нажмите «Включение или выключение функции Windows». Включите «Подсистема Windows для Linux (бета)». …
- После перезагрузки перейдите в Пуск и найдите «bash». Запустите файл «bash.exe».
Как установить bash в Windows 7?
Перезагрузите машину. Найдите «bash» и щелкните по нему, он должен открыть командную строку и спросить вас, хотите ли вы установить «Ubuntu в Windows», продолжайте с «y». После установки он попросит создать имя пользователя и пароль UNIX. Теперь вы готовы использовать оболочку bash.
Могу ли я использовать bash в Windows?
Bash в Windows предоставляет подсистему Windows, а Ubuntu Linux работает поверх нее. … По сути, он позволяет запускать ту же оболочку Bash, что и в Linux. Таким образом, вы можете запускать команды Linux внутри Windows без необходимости установки виртуальной машины или двойной загрузки Linux и Windows.
Как запустить файл bash?
Сделать исполняемый сценарий Bash
- 1) Создайте новый текстовый файл с расширением. sh расширение. …
- 2) Добавьте #! / Bin / bash в начало. Это необходимо для части «сделать его исполняемым».
- 3) Добавьте строки, которые вы обычно вводите в командной строке. …
- 4) В командной строке запустите chmod u + x YourScriptFileName.sh. …
- 5) Запускайте, когда вам нужно!
Как запустить файл .sh?
Шаги по написанию и выполнению скрипта
- Откройте терминал. Перейдите в каталог, в котором вы хотите создать свой скрипт.
- Создайте файл с расширением. sh расширение.
- Запишите сценарий в файл с помощью редактора.
- Сделайте скрипт исполняемым с помощью команды chmod + x .
- Запустите скрипт с помощью ./ .
Как запустить Linux в Windows 7?
Как выполнить двойную загрузку Linux и Windows (на ПК с уже установленной Windows 7)
- Шаг 1. Подготовка. …
- Шаг 2. Выберите дистрибутив Linux. …
- Шаг 3: Подготовьте установочный носитель. …
- Шаг 4: Резервное копирование Windows. …
- Шаг 5: разбейте жесткий диск на разделы. …
- Шаг 6. Загрузитесь со съемного носителя. …
- Шаг 7: Установите ОС. …
- Шаг 8: измените загрузочное устройство (снова)
Что такое bash для Windows?
Bash для Windows — это решение Microsoft для этой проблемы, цель которого — перенести в Windows всю пользовательскую среду Ubuntu, за исключением ядра Linux. В результате разработчики получают доступ к полному набору инструментов и утилит Ubuntu CLI. С точки зрения непрофессионала, это изначально похоже на запуск Linux в Windows.
Как запустить Linux в Windows?
Виртуальные машины позволяют запускать любую операционную систему в окне на рабочем столе. Вы можете установить бесплатный VirtualBox или VMware Player, скачать файл ISO для дистрибутива Linux, такого как Ubuntu, и установить этот дистрибутив Linux внутри виртуальной машины, как если бы вы устанавливали его на стандартном компьютере.
Как установить WSL в Windows 7?
Подсистема Windows Linux не существует и не может быть включена / установлена в Windows 7. Подсистема для приложений на основе UNIX не имеет ничего общего с функцией Windows 10. Он также был известен как Interix до того, как был прекращен с выпуском Windows 10.
Как мне установить Git?
Шаги по установке Git для Windows
- Загрузите Git для Windows. …
- Извлеките и запустите установщик Git. …
- Сертификаты серверов, окончания строк и эмуляторы терминалов. …
- Дополнительные параметры настройки. …
- Завершите процесс установки Git. …
- Запустите Git Bash Shell. …
- Запустите Git GUI. …
- Создайте тестовый каталог.
8 ян. 2020 г.
Как мне получить доступ к Git bash?
Git Bash входит в состав пакета Git For Windows. Загрузите и установите Git для Windows, как и другие приложения для Windows. После загрузки найдите включенный файл .exe и откройте его, чтобы запустить Git Bash.
Есть ли в Windows 10 bash?
Одна из действительно интересных особенностей Windows 10 заключается в том, что Microsoft встроила в операционную систему полноценную оболочку Bash на основе Ubuntu. Для тех, кто может быть не знаком с Bash, это среда командной строки Linux на основе текста.
В чем разница между Bash и Shell?
Сценарии оболочки — это сценарии в любой оболочке, а сценарии Bash — это сценарии специально для Bash. Однако на практике «сценарий оболочки» и «сценарий bash» часто используются взаимозаменяемо, если только рассматриваемая оболочка не является Bash.
- Категория: Windows
- 29 декабря 2016
- 29 декабря 2016
- 8241
Подсистема UNIX в Windows или сокращенно SUA, на сегодня устанавливается штатными средствами, путем включения фичи Subsystem for UNIX-based Appplications, которая находится в Control Panel > Turn Windows features on or off:
Установка подсистемы UNIX в Windows 7
Как устанавливается из фич описано выше, для меня самый простой способ — установить из командной строки, для этого достаточно запустить командную строку от имени Администратора, перейти в каталог Windows:
cd %windir%
Запустить установку командой:
start /w pkgmgr /iu:SUA
Установка подсистемы UNIX в Windows Server 2008 R2
Устанавливает путем ключения серверной фичи Server Manager > Features > Add Features > Subsystem for UNIX-based Appplications:
Либо из командной строки, где параметр restart автоматом перезагрузит систему после установки:
ServerManagerCmd.exe -install Subsystem-UNIX-Apps -restart
Установка SDK
SDK можно загрузить по этой ссылке, в момент установки отметить нужные параметры:
После установки потребуется перезагрузить компьютер.
Итог
После всех манипуляций, в меню Пуск будет доступно меню с названием Subsystem for UNIX-based Applications от куда можно запустить Korn Shell и заюзать Linux утилиты:
Зарустить шелл можно так же из командной строки:
posix.exe /u /c /bin/ksh -l
Так же на тему Linux утилит под Windows:
- http://unxutils.sourceforge.net/
- https://www.cygwin.com/
На тему…
Unxutils работают без каких либо дополнительных библиотек, достаточно загрузить архив, распаковать и использовать, перечень утилит представлен ниже:
Cygwin имеет свой установщик, который загружает список пакетов, из которых можно выбрать необходимые, изначально можно загрузить весь список в локальную дирректорию, в последствии производить установку из локального «зеркала», после установки запускается cygwin terminal в котором можно использовать достаточный набор Linux утилит.
Как настроить полноценное окружение разработчика, привыкшего к 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.
Установка для Windows 10 x64
Важный момент: WSL официально поддерживается только в Windows 10 x64, начиная с Anniversary Update. Если у вас иная версия — альтернативное решение представлено в следующем разделе.
- Включить поддержку Windows Subsystem for Unix, открыв PowerShell от администратора и выполнив команду:
PS C:Windowssystem32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
- Если у вас установлена десктопная редакция Windows 10: зайти в Microsoft Store и установить необходимый вам дистрибутив. Для нашего эксперимента будет использована Ubuntu 18.04 LTS. Затем вы сможете запустить ваш дистрибутив через меню «Пуск».
- Если у вас установлена иная редакция Windows, без Microsoft Store (например, Windows 10 LTSC либо Windows Server): в PowerShell выполнить следующие команды:
PS C:Windowssystem32> cd ~
PS C:Userssomebody> Rename-Item .Ubuntu.appx .Ubuntu.zip
PS C:Userssomebody> Expand-Archive .Ubuntu.zip .Ubuntu
PS C:Userssomebody> cd .Ubuntu
PS C:Userssomebody> .ubuntu1804.exe
При первом запуске необходимо задать ваши логин и пароль.
Далее уже вам откроется консоль с Ubuntu.
Установка для 32-битных редакций Windows 10 и Windows 7, 8 и 8.1
К сожалению, на этих редакциях WSL не поддерживается. Но мы можем без особого труда заменить его Vagrant — мощной утилитой для конфигурирования виртуальных машин. Vagrant работает поверх других сред виртуализации: VirtualBox, VMWare Player или Microsoft Hyper-V. Поэтому стоит понимать, что такой вариант будет по умолчанию медленнее, нежели WSL. А в случае с VirtualBox значительно медленнее из-за файловой системы vboxsf.
Установить Vagrant можно с официального сайта. Также вам потребуется VirtualBox и Git. После этого создайте папку для вашей виртуальной машины, в ней создайте файл Vagrantfile со следующим содержимым:
Vagrant.configure(«2») do |config|
config.vm.box = «bento/ubuntu-18.04»
config.vm.synced_folder «c:/», «/windows»
# Необходимо указать для каждого порта, который вы хотите расшарить из ВМ или в ВМ
config.vm.network :forwarded_port, host: 5432, guest: 5432
config.vm.provider «virtualbox» do |vb|
vb.memory = 2048
end
end
После чего в том же PowerShell или cmd выполните команду:
vagrant up
После загрузки, настройки и запуска виртуальной машины вы попадёте в консоль Linux. Ура!
Устанавливаем всякие скучные вещи
Разворачиваем наше окружение под Python/JS/Go.
:~$ sudo apt update
:~$ sudo apt install build-essential
:~$ sudo apt install -y git nodejs golang python-dev libreadline-dev libbz2-dev libssl-dev libsqlite3-dev libxslt1-dev libxml2-dev libffi-dev
:~$ curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
:~$ # Инсталлятор попросит вас добавить загрузку pyenv в ~/.bashrc
:~$ source ~/.bashrc
:~$ pyenv install 3.7.2
:~$ pyenv global 3.7.2
Быстро проверяем работоспособность версий и, собственно, версии:
:~$ nodejs -v
v8.10.0
:~$ go version
go version go1.10.4 linux/amd64
:~$ python -V
Python 3.7.2
:~$
Неужели всё уже работает?
Конечно нет.
Сразу стоит отметить важный факт: ни Visual Studio Code, ни Sublime Text, ни даже ваша любимая IDE ничего не знают о существовании WSL. Из коробки более-менее с ним умеют работать только продукты от JetBrains. Лично мне Visual Studio Code по настройке, скорости работы нравится куда больше (но это текстовый редактор, о чём не стоит забывать).
И единственное, что вы можете сделать в Visual Studio Code, установленной на Windows, — подключить себе WSL вместо стандартного PowerShell в терминале. Это делается в User Settings:
{
«terminal.integrated.shell.windows»: «C:\Windows\System32\wsl.exe»,
# Добавьте сюда иные настройки по вашему усмотрению
}
На этом всё. Про линтер, автодополнение кода из библиотек, подсветку ошибок можете забыть, по крайней мере для Python. Способа решения сообщество ждёт вот уже три года. Сейчас самый простой и действенный способ заставить его работать — установить в WSL.
- Установите MobaXterm и Cmder. Конечно, вы можете по своему выбору заменить их на альтернативные приложения. MobaXterm — мощный SSH-терминал со встроенным X-сервером, что позволяет ему рендерить приложения, которые запускаются на удалённом X-сервере (в данном случае — внутри WSL). Cmder — локальный эмулятор терминала с поддержкой PowerShell, cmd, bash, WSL и не только, с нормальным копипастом.
- Запустите Cmder. По умолчанию он запустит cmd, но при двойном клике на нижнюю панель покажет окно, где есть возможные варианты.
- Нам нужен тот вариант, что отмечен как {WSL::bash}. Он запустит в новой вкладке консоль внутри WSL.
- Запустите MobaXterm. Он сразу же увидит WSL, установленную в системе. Для запуска X-сервера нажмите выделенную на скриншоте кнопку.
- Настроим WSL для запуска GUI-приложений. Для этого откройте файл ~/.bashrc и допишите в него:
export DISPLAY=:0
- После этого выполните команду source ~/.bashrc для применения изменений.
- Не обязательно, но желательно установить XFCE (или другой DE на ваш вкус), а также поставить шрифты, иначе от внешнего вида VS Code у вас, возможно, вытекут глаза. По крайней мере, люди жалуются.
:~$ sudo apt install -y xfce4
:~$ sudo apt install -y fonts-noto fonts-noto-hinted fonts-noto-mono fonts-noto-unhinted
- Скачайте установщик Visual Studio Code с официального сайта.
- Установите зависимости и сам VS Code:
:~$ sudo apt install libgtk2.0-0 libxss1 libasound2
:~$ sudo dpkg -i <code deb file>
:~$ sudo apt install -f
- Запустите VS Code при помощи команды code.
Вот теперь работает Ещё более кратко и по сути расписано вот тут.
Однако до совершенства есть ещё один штрих.
{
…
«window.titleBarStyle»: «native»,
…
}
Добавьте приведённую выше настройку в User Settings. В противном случае окно VS Code не будет ресайзиться.
А ты ещё докажи, что работает
Разворачивается оно стандартно для подобного рода проектов.
# You are on a project root
:~$ python -m venv env/
:~$ source env/bin/activate
:~$ pip install -r requirements.txt
:~$ cd frontend
:~$ npm install
:~$ ng build outDir=../backend/microblog/static
:~$ cd ../backend
:~$ python manage.py runserver
Отличия в настройке между Vagrant и WSL
Единственное существенное различие в контексте статьи — необходимость пробрасывать порты в хостовую файловую систему. По умолчанию Vagrant поднимает SSH-туннель на порту 2222 — именно туда вам будет необходимо логиниться из Cmder и добавить соответствующее соединение в MobaXterm.
Более подробно об использовании Vagrant с MobaXterm можно прочитать по ссылке.
Итоги
Но стоит заметить, что даже подобные извращения могут помочь многим людям, вынужденно сталкивающимися с… не всегда очевидным поведением новой технологии от Microsoft.