Реферат: Сказка о том, как Windows и Linux дружили в одной сети
Артур Крюков
Если бы не слушатель курсов по Linux, преподавателем которых я являюсь, мне, как человеку, очень долго работающему с Linux, эта мысль вряд ли пришла бы в голову. На первый взгляд кажется, а зачем это вообще нужно? Но по здравому размышлению предложенная идея показалась достаточно интересной, и захотелось посмотреть, как она будет работать на практике.
С чего все началось? После рассмотрения темы, посвященной системе X Window и возможности запуска Х-клиентов и Х-серверов на разных машинах в сети, у слушателя возник вопрос: «А можно ли сделать так. чтобы все критические с точки зрения безопасности приложения выполнялись на Linux, а их вывод отображался на машинах с Windows?»
Вопрос показался странным — зачем устанавливать рабочие станции Windows, если так волнует безопасность? В системе Linux имеется полный набор офисного программного обеспечения, для их использования переобучать персонал почти не приходится. Как рабочая станция Linux - вполне приемлемое и безопасное решение. Разве что специфическое программное обеспечение, наподобие «1C Предприятие», на нем не установишь — для его выполнения потребуется терминальный сервер Windows.
Однако слушатель отверг такое решение, поскольку основными пользователями в его системе были дизайнеры, а им требуется специфичное ПО, отсутствующее в Linux. Проблемы же возникают в основном с программами, где предусмотрен доступ в Internet: с почтовыми клиентами, браузерами и т. п. Установка антивирусных средств и обновление самой системы мало чем помогают. Поэтому, когда он услышал на занятии, что в Linux программа способна физически работать на одной машине, а отображать данные на другой, без потери качества изображения и скорости работы, у слушателя возник вполне естественный, с сто точки зрения, вопрос о возможности отображать данные программ, работающих под управлением Linux, на компьютерах с Windows. Тогда все программы, обращающиеся в Internet, можно перевести на Linux, где они не подвержены вирусам и прочим возможностям взлома. Все файлы, получаемые клиентами из Internet, будут сохраняться исключительно на машине Linux, а там, где установлена Windows, останутся только окна с соответствующими программами.
Об используемых технологиях
В UNIX в качестве графической оболочки применяется система X Window, у которой имеется много различных реализаций - коммерческих, полукоммерческих и т. д. Что касается Linux, то на данный момент в основном используются XFree86 и xorg. Из-за проблем с лицензированием первая система отсутствует в современных дистрибутивах Linux, поэтому все чаще встречается xorg.
X Window построена по принципу клиент-сервер. Однако принцип взаимоотношения клиента и сервера поставлен «с ног на голову». Обычно под сервером или серверным приложением понимают какое-либо программное обеспечение, реализующее хранение информации или сложные вычисления. А клиент — это программа, позволяющая осуществлять управление или получать доступ к информации. В X Window сервер — программа для отрисовки изображения на экране, а назначение клиента — отображать данные на сервере, с использованием функций библиотеки Xlib. Таким образом, сервер X Window содержит драйверы видеокарты, клавиатуры, мыши и других устройств ввода и позволяет клиентским программам «рисовать» на экране монитора. Клиент и сервер могут находиться на различных машинах в сети. Более того, допустимо, чтобы на одном сервере «рисовали» несколько клиентов, каждый из которых выполняется на разных машинах.
Программу с функциями Х-сервера можно расположить на отдельном устройстве или в другой системе в сети - будь то специальное устройство, так называемый X-терминал, или программа для любой операционной системы (в том числе Windows), лишь бы они обеспечивали функционал Х-сервера. Потенциально данные на Х-сервере способен отображать любой Х-клиент, но обычно вводят ограничения и указывают конкретные клиенты.
Для отрисовки окон используется специальное программное обеспечение - оконный менеджер (Window Manager). От него зависит, как выглядят окна и как они себя ведут. Оконный менеджер тоже Х-клиент, т. с. для отображения окон он посылает данные на Х-сервер. Некоторые программы Х-сервера, работающие под управлением Windows, имеют встроенный оконный менеджер.
И еще одна немаловажная для X Window программа - менеджер дисплеев (Display Manager). X-терминал - это устройство, на котором нет ни одной программы. Все программы (Х-клиенты) выполняются на каких-либо машинах, а на X-терминале только отображаются данные. После включения X-терминал подключается по протоколу X Display Manager Connect Protocol (XDMCP) к серверу, где установлен менеджер дисплеев, посредством которого клиент осуществляет вход в систему и запускает оконный менеджер. Так мы получаем полноценное рабочее место на машине UNIX с отображением рабочего стола на машине Windows. Все программы (включая окопный менеджер) будут выполняться на UNIX, а данные представит Windows.
Современные программы, реализующие функции Х-сервера, позволяют полностью эмулировать X-терминал, но они могут обойтись и без эмуляции. Если нет необходимости отображать весь рабочий стол UNIX, конкретные программы можно воспроизводить в отдельном окне Windows, запуская их на машине UNIX, правда, все равно придется заводить на ней учетную запись пользователя и выводить принадлежащие ему данные на Х-сервер.
Реализация х-сервера для windows
Итак, какие же программы реализуют работу Х-серве-ра на машине Windows? После непродолжительных поисков мне удалось найти три бесплатных сервера: Gygwin/X, WiredX на Java и условно бесплатный X-Deep/32.
Cygwin/X (http://x.cygwin.com). Широко известная в узких кругах компания Cygwin разрабатывает библиотеку cygwin1.dll для эмуляциии Linux API и занимается переносом на Windows набора популярных утилит GNU. Последние (gec, Id и т. д.) распространяются по лицензии GNU GPL, однако библиотека суд-win1.dll имеет собственную, отличную от GPL, лицензию, в соответствии с которой ее можно использовать в коммерческом программном обеспечении.
Cygwin/X это перенос X Window System на различные виды ОС Windows. Продукт работает на всех видах Windows, начиная с Windows 95 и закапчивая Windows Server 2003. Cygwin/X содержит Х-сервср, библиотеку X и набор стандартных Х-клиентов: xterm, xhost, xclock и др.
WeiredX (http://www.jcraft.com/weiredx). Компания JCraft специализируется на создании коммуникационных программ с использованием технологии Java. Большая часть программного обеспечения распространяется в соответствии с лицензией GNU GPL, в том числе сервер WeiredX. Кроме того, компания распространяет еще один сервер, но под коммерческой лицензией — WiredX.
WeiredX реализует все возможности стандартного Х-сервера, а поставляемый с ним набор утилит расширяет их: JSch организует передачу данных по защищенному каналу, JRexec является клиентом гехес и т. д.
X-Deep/32 (http://www.pexus.com/). К сожалению, на сайте производителя не указаны особенности данного Х-ссрвсра, лишь заявлено о полной совместимости с редакцией X11R6.5.1.
Подготовка машины linux
Для того чтобы Х-серверы могли взаимодействовать с машиной Linux, на пей следует, во-первых, завести учетные записи пользователей, а во-вторых, соответствующим образом настроить программу менеджера дисплеев, если планируется использовать полноценный вход в систему (наподобие Х-терминала).
При добавлении учетной записи важно помнить, что у пользователей обязательно должны быть домашний каталог и реальная оболочка shell.
С менеджерами дисплеев ситуация несколько сложнее, поскольку с Linux могут поставляться три менеджера: xdm, gclm (Gnome) и kdm (КОЕ). Каждый настраивается различными способами. Мы будем использовать kdm.
Для конфигурации kdm необходимо:
найти файл kdmrc. В разных дистрибутивах он находится в разных каталогах. Например, в Slackware Linux — в /opt/kde/share/config/kdm, в Red Hat Linux — B/etc/X11/xdm;
в файле kdmrc найти раздел [Xdmcp] и задать параметр Enable=true;
в том же каталоге, где расположен kdmrc, имеется файл Xaccess, где описываются X-терминалы, с которых возможно подключаться к менеджеру дисплеев. Чтобы всем разрешить такое подключение, в любую пустую строку необходимо поместить символ «*»;.
в файле /etc/X11/xdm/xdm-config, в начале последней строки в параметре DisplayManager.requestPort следует указать символ "!";
если система X Window на сервере не настроена, т. е. не предполагается работать в графическом режиме на самом сервере, то в файле /etc/X11/xdm/Xservers рекомендуется поставить символ комментария «#» в начале строки local/usr/X11R6/bin/X;
если kdm не был запущен, его следует запустить. Если он уже активен, то следует указать, чтобы он перечитал свой конфигурационный файл — killall -HUP kdm;
убедитесь, что kdm открыл на прослушивание порт 177: netstat -nip I grep 177.
Теперь kdm готов к использованию.
Установка и конфигурация GYGWIN/X
--> ЧИТАТЬ ПОЛНОСТЬЮ <--