Как мы сделали Linux из WindowsСтепан «Step» Ильин (step@gameland.ru) Хакер, номер #114, стр. 034 Новые способы запуска никсовых приложений под виндойКак объединить возможности Linux и Windows? Чтобы для перехода из одной в другую не приходилось перегружать компьютер и не использовать виртуальную машину, которая обязательно скушает половину всех ресурсов! Чтобы было удобно, наконец! Мечта? Уже реальность! Идея иметь полноценное (или почти полноценное) Linux-окружение в Windows многим не дает покоя. Конечно, ничто не мешает нам запустить виртуальную машину, используя, к примеру, бесплатное решение VMware Server, и установить в качестве гостевой ОС все, что душе угодно. Но разве ж захочется каждый раз запускать требовательную к ресурсам виртуальную машину только для того, чтобы воспользоваться несколькими приложениями? С тем, что это работает медленно и неудобно, мириться еще можно, но вот жертвовать сотнями Мб оперативной памяти и процессорным временем зачастую просто нереально. Но если не так, – то тогда как же? Старый добрый CygwinВозможность объединить Windows и Unix без использования виртуализации появилась давно. Кто из нас не пробовал использовать небезызвестный Cygwin – специальную среду, предназначенную для переноса программ из POSIX-совместимых операционных систем в Windows. Многие никсовые утилиты, портированные с помощью Cygwin, отлично чувствуют себя под виндой и до сих пор развиваются. Я и сам отлично помню, как радовался, впервые скомпилив какую-то линуксовую программу (кажется, это был эксплоит) прямо под виндой. По сути, Cygwin представляет собой библиотеку, которая реализует интерфейс прикладного программирования unix-систем на основе системных вызовов Win32 (стандартных для винды). Продукт по-прежнему отлично справляется со своими задачами, а в случае использования сборок CYGNOME (Cygwin + GNOME, cygnome.sourceforge.net) и KDE-cygwin (Cygwin + KDE, kde-cygwin.sourceforge.net) даже позволяет запускать кое-какие оконные приложения. Сказка? Ну, не совсем. Даже несмотря на эмуляцию никсов, складывается ощущение недоделанности и отсутствия интеграции в саму систему. Окно с консолью в Cygwin, претендующее на звание тукса в винде, – не совсем то, чего мы хотели. Командная оболочка в системе остается прежней: тот же пресловутый cmd.exe и никак иначе. А ведь люди, привыкшие к bash или другой удобной никсовой оболочке, едва ли пойдут на компромисс с ограниченностью решения от Microsoft. Да, можно установить сборник GNU utilities for Win32, в который входит 26 портированных никсовых утилит (например, любимый многими grep), отчасти компенсировав отсутствие привычных инструментов, но опять же – об интеграции в систему речи не идет. Расширенная оболочка от Microsoft – PowerShell – хоть и предоставляет огромный простор для деятельности (о чем ты можешь прочитать в отдельной статье, которую мы выложили на диске) и основательно встраивается в систему, но ничего общего с никсовым bash не имеет. Так как же быть? Решение от MicrosoftВыход нашелся там, где его не ищешь — на сайте Microsoft, в виде специального пакета Windows Services for UNIX (SFU), который свободно доступен для закачки. Сами разработки позиционируют его как специальную подсистему для IT-профессионалов, желающих безболезненно переползти на винду с никсовых систем. Подсистему назвали Interix и это, я тебе скажу, что-то! Последний релиз SFU включает более 350 любимых юниксоидами утилит (среди них vi, ksh, csh, ls, cat, awk, grep, kill), которые полностью интегрируются в систему. Помимо этого в SFU входит GCC 3.3, отладчик GDB, сервер и клиент NFS и еще множество полезных в хозяйстве вещей. К сожалению, упомянутую командную оболочку bash, файловый менеджер Midnight Commander, демон OpenSSH, редактор emacs или http-демон Apache придется ставить вручную, но готовые к установке пакеты легко скачать с сайта www.interopsystems.com/tools/warehouse.htm. Тем более, перечисленные программы – лишь малая часть того, что там есть. В результате установки SFU ты получаешь полное ощущение, что находишься в *NIX окружении. Чего стоит один bash, исполняемый подсистемой ядра и поэтому работающий с той же скоростью, что и Win32-приложения. Установив ssh-демон, ты превращаешь обычную Windows XP в многопользовательский сервер, на котором одновременно могут работать несколько активных аккаунтов. И не надо использовать каких-либо дополнительных средств, вроде Terminal Services – вот тебе готовое решение да еще со многими возможностями никсов. Ну, а ежели работать в консоли не нравится, то ничто не мешает установить бесплатный X-Window сервер, специально оптимизированный для SFU – X-Win32 LX (www.starnet.com/xwin32LX/get_xwin32LX.htm). Напомню, что X Window System представляет собой протокол, с помощью которого видеовыход может быть послан с одного компьютера на другой. В итоге получаем полноценный Remote Desktop. В завершение стоит отметить, что все перечисленное устанавливается на раз-два, как и любое обычное приложений для Windows. Огорчает одно: последний релиз SFU вышел еще в 2006 году, а новых версий, по всей видимости, не предвидится. Linux под Windows: реально?Если даже специалисты из Microsoft занимаются вопросом создания Linux-окружения в Windows, то разумно предположить, что аналогичные решения есть и с другой стороны баррикад. Большая проблема в запуске никсовых приложений под виндой заключается в отсутствии соответствующего ядра операционной системы, и это отлично понимала команда программистов из Японии. Озадачившись этой загвоздкой, они представили сначала концепцию, а потом и реализацию Linux ядра, целиком портированного в Windows! Проект получил название Cooperative Linux или, сокращенно, coLinux (www.colinux.org). Он стал первой свободной разработкой, позволяющей запустить Linux под виндой без всякой виртуализации и необходимости перекомпилировать приложения! Достигается это за счет специального драйвера, отображающего системные вызовы Linux в вызовы Windows. Когда приложение пытается вызвать привычную для себя функцию Linux, ее работа не обламывается с ошибкой – вызов транслируется в набор системных вызовов самой винды и успешно выполняется. Все это работает значительно быстрее, чем в любых виртуальных машинах, поскольку используется родное для Windows ядро и не тратятся ресурсы на виртуализацию. Несмотря на то, что с помощью coLinux можно запустить не только линуксовые приложения, но и вообще сам тукс, подробно рассматривать мы его не будем. Зато остановимся на двух других проектах, которые используют coLinux в качестве основы, но более дружественны к пользователю, избавляя от необходимости тратить время на настройку, которую в случае с «голым» пришлось бы выполнять вручную. Первым из этих проектов является andLinux (andlinux.org). Как сделать из Windows Ubuntu?Если тебя кто-то спросит «Что такое andLinux?», то лучше всего ответить так: «Это практически полный дистрибутив Ubuntu Linux, который работает прямо в Windows-системе!» Да-да, именно так! В качестве ядра используется coLinux, однако по возможностям andLinux намного превосходит его. Для скачки с официального сайта доступен уже готовый к использованию дистрибутив. В общем-то, обычная программа, если не считать вес: 131 Мб для версии с графической оболочкой XFCE и минимальным набором утилит – и аж 653 Мб для полной версии с KDE. Если ты не знаешь, что это такое, выбирай второй вариант – не ошибешься. Установка пакета в систему ничем особенным не выделяется, но придется ответить на несколько вопросов мастера, указав некоторые параметры работы andLinux:
После установки в системе появляется панель (в случае дистрибутива с XFCE) или иконка в трее (в случае KDE), с помощью которой и запускаются предустановленные Linux-приложения. Для обычного пользователя это выглядит как набор самых обычных программ! Ничуть не удивительно, ведь все они имеют привычное для Windows обрамление (в отличие от уродливого Cygwin’а). Поэтому перепутать «чужеземца» с обычной программой очень просто! Можно запустить абсолютно все, что и в Ubuntu Linux. По крайней мере, никаких ограничений мы не нашли и без проблем наставили кучу софта из репозиториев Ubuntu, воспользовавшись пакетными менеджерами apt-get и Synaptic. Если ты с ним еще не знаком, это твой реальный шанс оценить их мощь и удобство. Открыл окошко, нашел название нужной программы, нажал «Установить» – вот и вся установка. Менеджер сам закачает нужные файлы дистрибутива, а также все необходимые библиотеки и предоставит пользователю готовое для запуска приложение. Это даже проще, чем поставить программу в Windows! Естественно, ничто не мешает собирать программы из исходников. В общем, andLinux работает потрясающе, и единственным неудобным моментом можно счесть разве что обмен файлами между Windows и Linux посредством расшаренных папок и Samba. Решение напоследокВозможно, наш опыт превращения винды в тукс на этом бы и закончился, если бы 19 мая этого года компания Ulteo не объявила о запуске бета-тестирования своего нового приложения – Ulteo Virtual Desktop (www.ulteo.com/home/en/virtualdesktop). По сути, почти то же самое, что и andLinux. Новинка также основана на сoLinux и позволяет запускать самые разные никсовые приложения без необходимости перекомпиляции. В связи с тем, что это еще ранняя бета, разработчики рекомендуют использовать только предустановленный набор программ (Kopete, Konqueror, KPdf, GIMP и т.д.), которые запускаются из специального меню сразу после установки пакета и не требуют какой-либо дополнительной настройки. Но если не брать в расчет это ограничение (тем более, приложения устанавливать на самом деле можно, правда, на свой страх и риск), то уже сейчас можно выделить несколько серьезных преимуществ разработки перед andLinux (справедливости ради замечу, что окончательного релиза у этой разработки также не было). Разработчики Ulteo Virtual Desktop намного удобнее реализовали систему обмена файлами с Windows. Папка учетной записи пользователя в Windows автоматически монтируется в домашнюю папку Linux, что несравнимо комфортнее, нежели обмениваться через расшаренные ресурсы. Отличная поддержка звуковой системы и принтеров прямо «из коробки» – еще один конек системы. Остается только добавить автоматическое обновление программы и синхронизацию данных через интернет. Искренне надеюсь, что Virtual Desktop будет быстро развиваться и через несколько месяцев порадует нас релизом. В чем фишка работы coLinux?VMware – это универсальное средство виртуализации, позволяющее запустить несколько гостевых систем с разными операционками. Для каждой из них она создает виртуальную машину и таким образом тратит колоссальные ресурсы компьютера на эмуляцию аппаратуры, а также работу гипервизора, который обеспечивает доступ «виртуалок» к физическому аппаратному обеспечению. В результате, все вместе работает очень медленно. Ситуацию обещает исправить поддержка аппаратной виртуализации в современных процессорах. СoLinux – это порт стандартного ядра Linux, работающий как один процесс в операционной системе Microsoft. Вместо того чтобы эмулировать всю систему, разработчики модифицировали ядро Linux так, чтобы оно запускалось как обычный процесс ОС. Никакой виртуализации оборудования не происходит, однако ядру тукса «подсовывается» виртуальная прослойка, которая транслирует вызовы Linux в вызовы Windows. Аппаратные затраты в этом случае минимальны, и приложения работают несравнимо быстрее. Но об универсальности приходится забыть. KDE под WindowsЕще зимой вышла финальная версия графической оболочки KDE 4.0, получившая новый пользовательский интерфейс и улучшенную внутреннюю архитектуру. В KDE 4.0 входят браузер Konqueror, текстовый редактор Kate, карта-глобус Marble, оконный менеджер KWin, офисный пакет KOffice, новый файловый менеджер Dolphin и другие приложения. Но самое интересное, что разработчики всерьез взялись за создание портированной версии KDE на Mac OS X и Windows! Посмотреть на результаты разработчиков можно уже сейчас, скачав инсталлятор отсюда с winkde.org/pub/kde/ports/win32/installer/. INFOВо время работы с coLinux и разработками, на ней построенными тебе, возможно, потребуется пароль root’а. Варианта стандартного пароля всего три: пустой пароль, «root», «colinux». Все зависит от сборки. WARNINGVirtual Desktop, coLinux, andLinux будут работать только на 32-битных версиях Windows 2000, XP, 2003, Vista. Поддержка 64-битной платформы пока существует лишь в планах. Во время установки Virtual Desktop создает на жестком диске файл размером примерно в 5 Гб, в котором располагается виртуальная файловая система. Его можно забэкапить или перенести на другой компьютер с установленной надстройкой. DVDВ качестве бонуса мы подготовили на диске все упомянутые в статье программы. |