- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF136:DrBrown2
Материал из Linuxformat.
Содержание |
Linux в Windows
- Надоела Windows на работе? Ломает по Vi? Тоскуете без grep? Долой страдания – установите Cygwin.
К огда нужда заставляет меня работать в Windows, больше всего я скучаю по командной строке – по основным командам вроде ls, cp и Vi, классическим утилитам вроде find и grep и, конечно, нормальной оболочке. И при первой же оказии ставлю Cygwin. Это рабочая среда в стиле Linux для Windows. Ядро Cygwin – DLL-библиотека Windows, которая выступает в роли слоя совместимости Linux (то есть эмулирует API системных вызовов Linux). Ее дополняет огромное количество утилит GNU и других, портированных в эту среду. Cygwin существует уже давно, но все еще активно разрабатывается; последняя версия вышла в апреле этого года.
Cygwin – не разновидность Linux. Это не среда виртуализации – на компьютере вполне определенно работает Windows. И она не предоставляет двоичной совместимости приложениям Linux. Если вы хотите запустить программу в Windows, нужно перекомпилировать ее из исходников.
Установка
С сайта Cygwin можно загрузить установщик (родное Windows-приложение). После запуска установщика можно принять настройки по умолчанию в окнах мастера. Единственное исключение – окно, где выбирается зеркало для загрузки. Другое окно, которому стоит уделить время – диалог выбора пакетов. В нем можно благоговейно заглянуть в бездну доступных инструментов и отметить нужные вам. Даже здесь предусмотрен выбор по умолчанию, и всегда можно вернуться и добавить пакетов позже. Установщик автоматически заведет иконку на рабочем столе и пункт меню в меню Programs; при выборе того либо другого запустится терминал Cygwin с оболочкой Bash.
В нем вы сможете получить на диво Linux-подобный опыт работы с любимыми утилитами. Можно писать скрипты оболочки и даже сочетать утилиты Windows и Linux, например:
ipconfig | grep ‘IP Address’
Здесь с помощью утилиты Cygwin фильтруется вывод команды Windows. Поддержка для разработчиков также впечатляет. По сути, Cygwin самодостаточен – то есть среды Cygwin вполне хватит, чтобы скомпилировать саму себя.
Файловая система Cygwin
По умолчанию Cygwin устанавливается в каталог C:\cygwin. Этот каталог становится корнем файловой системы Cygwin. Каталог C:\cygwin\bin монтируется в /usr/bin, а C:\cygwin\lib – в /usr/lib. Однако, можно смонтировать любой каталог Windows в точку монтирования Cygwin таким образом:
$ mkdir /mnt $ mount ‘C:\Program Files’ /mnt
Отдельно каждый доступный диск в системе монтируется (с именем в виде буквы диска) в каталог /cygdrive. Например, если ваш привод CD в Windows имеет букву D:, в Cygwin его можно будет найти в каталоге /cygdrive/d.
Полного совпадения с Linux не ждите. Windows – не Linux: файловые системы кардинально отличаются, как и модель создания процесса. Никакая эмуляция не сможет полностью скрыть все различия, и некоторые вещи приходится подделывать – номера inode, системный вызов chroot и символические ссылки. Время от времени мне приходилось сталкиваться с жуткой реальностью Windows, например:
$ su - su: user root does not exist
Большинство утилит Cygwin распространяются по лицензии GPL, часть находится в публичном доступе, еще часть – под лицензией типа X11. Библиотека API Cygwin также лицензируется по GPL. Так как все портированные в Cygwin утилиты компонуются с этой библиотекой, их тоже нужно распространять под GPL.
Red Hat предоставляет производителям ПО возможность выкупа лицензии Cygwin, хотя на сайтах и Cygwin, и Red Hat информация об этом темна (а стоимость не упоминается). Но если вы просто конечный пользователь, желающий пользоваться утилитами Cygwin, GPL дает вам достаточно прав.
Что вы получаете?
Ну, это зависит от вашего выбора для установки, но выбор весьма велик. Оболочки включают Bash, Dash, Midnight Commander, pdksh, tcsh и zsh. Редакторы – Emacs, Joe, Nano, Vim и GVim. Средства разработки – GCC, G++, CVS, Bison, Make, и autoconf. Есть все классические утилиты вроде man, gawk, grep, tar, find, sed, sort и утилит ядра GNU. Да, и есть сервер X.org и стандартные утилиты X вроде xclock, xcalc и старого доброго xeyes.