Linux - статьи

Cygwin: начинающим пользователям Linux посвящается


Андрей Иванченко,

Сейчас только ленивый не пишет на тему "Linux против Windows". Но почему против? У обеих систем есть свои плюсы и минусы - и при организации локальной вычислительной сети можно удачно сочетать компьютеры с разными ОС. Если вы начинающий администратор ЛВС или у вас дома есть сеть, вы выросли на продуктах Microsoft и хотите поработать с Linux - может, стоит попробовать?

Желающим скрестить Windows и Linux часто предлагают воспользоваться системой VMWare. Но для начинающего пользователя Linux такой вариант более чем экстремален. Да и вообще, вряд ли стоит экспериментировать на машине с хорошо настроенной Windows, начиненной гигабайтами важной информации. Лучше установить в сети компьютер с Linux и работать на нем через сеть. Для администрирования Linux-машины можно воспользоваться стандартным telnet или, что лично мне нравится больше, putty. Настроив SSH-соединение, можно сразу входить через putty под учетной записью root.

Но многим, особенно начинающим пользователям Linux, трудно привыкнуть к управлению системой из строгой командной строки - им подавай графический или веб-интерфейс. Для таких пользователей есть соответствующие программы - webmin для управления системой и swat для управления сервером samba через веб-интерфейс.

Для удаленного доступа к Linux-машине с помощью графического интерфейса (по X-протоколу) существует несколько программных продуктов, позволяющих запустить X-сервер под управлением Windows. Но все они коммерческие - а ведь нам всегда хочется чего-то хорошего и бесплатного. И такой программный продукт есть, называется он Cygwin.

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

Установка Cygwin проста - запускаем install и выбираем, какие именно утилиты нам нужны. Маленький совет: установите все предлагаемые пакеты. Потом, после настройки, вы всегда успеете удалить лишние. Если же вы настоящий борец за свободное место на жестком диске, устанавливайте только набор пакетов Xfree86 из cygwin. Устанавливать документацию на японском языке, сервер шрифтов и оконные менеджеры вовсе не обязательно. Да и сами шрифты можно не устанавливать - на linux-машине их и так достаточно, к тому же "правильных".

После установки на компьютере появится каталог cygwin со структурой подкаталогов, аналогичной дереву каталогов Linux. Для того чтобы настроить X-сервер, нужно подкорректировать содержимое файла startxwin.bat, который находится в каталоге cygwin\usr\X11R6\bin - заменить строку запуска: Start Xwin

на такую: start XWin -screen 0 1024 710 -query 192.168.4.1 -once

где:

  • -screen 0 1024 710 - номер и размеры дисплея, на который будет выводиться изображение;
  • -query 192.168.4.1 - IP-адрес Linux-машины, которая "слушает" запросы xdmcp;
  • -once говорит о том, что после завершения сеанса работы с удаленной машиной X-сервер нужно выключить.


Вероятно, вы обратили внимание на "нестандартное" разрешение дисплея 1024 x 710. Ну и что - наш сервер, какое разрешение хотим, такое и указываем.

Теперь нам необходим конфигурационный файл для запуска Х-сервера - XF86Config. Его можно взять или в Сети, или на своей Linux-машине (в каталоге /etc/X11/XF86Config), если там настроен X-сервер. При вводе текста в кодировке KOI8-R рекомендуется, чтобы в этом файле присутствовали следующие строки:
Option "LeftAlt" "Meta"
Option "RightCtrl" "Control"
Option "XkbLayout" "ru"
Option "XkbOptions" "grp: ctrl_shift_toggle, grp_led: scroll"
В этих строках определяется раскладка и способ переключения между языками ввода. Этот файл должен находиться в каталоге cygwin/etc/X11.

В секциях, описывающих видеокарту, монитор, экран, клавиатуру, ставим устройство "dummy": Section "Device" Identifier "dummy" Driver "dummy" EndSection Section "Monitor" Identifier "dummy" EndSection Section "Screen" Identifier "dummy" Device "dummy" Monitor "dummy" EndSection Section "ServerLayout" Identifier "dummy" Screen "dummy" InputDevice "Keyboard1" "CoreKeyboard" EndSection

Теперь пора внести коррективы в файлы на Linux-машине. Чтобы на ней запускались XDM-сессии, следует запустить демон XDM. Я, например, делаю это так: в файле /etc/inittab заменяю строчку: X:5: respawn:/etc/X11/prefdm -nodeamon

на такую: X:35: once:/usr/bin/X11/xdm

Тем самым мы подменяем стандартное графическое приглашение для регистрации на приглашение XDM (хотя еще вопрос, какое приглашение "стандартнее": XDM или KDM/GDM). При этом остается возможность получить графический вход на удаленных терминалах, даже если linux-машина запущена с уровнем выполнения 3 (текстовый режим). Но в этом случае xdm-сервер работает нестабильно, лучше запускать linux-машину с уровнем выполнения 5 (графический режим), а в каталоге /etc/sysconfig создать файл desktop, в котором прописать желаемый вид приглашения на регистрацию пользователя в системе - XDM, KDM, GDM: DISPLAYMANAGER=XDM

В файле xdm-config, чтобы XDM принимал запросы xdmcp, нужно "закомментировать" строку: ! DisplayManager.requestPort: 0

В файле /etc/X11/xdm/Xaccess нужно убрать комментарий в строке: # * any host can get a login window

- чтобы можно было регистрироваться с любого компьютера или вписать адрес хоста, с которого разрешен прием xdmcp-запросов. Если в файле /etc/sysconfig/desktop указан вид приглашения на регистрацию, отличную от XDM, теряется возможность ограничить доступ для определенных хостов по X-протоколу через файл Xaccess.

Теперь можно запустить X-сервер на Windows-машине из файла Startxwin.bat. Если все настроено правильно, мы получим приглашение зарегистрироваться.

После регистрации перед нами откроется рабочий стол Linux-машины в той графической оболочке (GNOME, KDE и др.), которая выбрана для данного пользователя. Попробуйте ввести в текстовом редакторе русский текст или прочитать файл с русскими буквами - все шрифты отображаются нормально? Если вместо кириллицы выводятся квадратики, значит, необходимо вернуться к правке файла cygwin/etc/X11/XF86Config, найти раздел с описанием путей к шрифтам: FontPath "/usr/X11R6/lib/X11/fonts/local/"

и закомментировать все эти строчки, а вместо них вписать путь к серверу шрифтов на Linux-машине: FontPath "tcp/192.168.4.1:7100"

Теперь необходимо установить на Linux-машине автозапуск сервера шрифтов XFS и подкорректировать его файл конфигурации (обычно это /etc/X11/fs/config), закомментировав в нем строчку и#no listen = tcp

При необходимости добавляем пути к нужным шрифтам в параметр catalogue (у меня, например, русские буквы в программе AbiWord не отображались до тех пор, пока я не добавил к вышеуказанному параметру путь к шрифтам этой программы - /usr/share/AbiSuite/fonts).

Вот и вся настройка. Надеюсь, теперь вам будет легче освоить Linux, имея на компьютере под управлением Windows полноценный рабочий стол этой ОС.


Содержание раздела