Форум Chatic.ru

Регистрация | Напомнить пароль? |  На главную

Все форумы » Компьютеры » Софт и ОС


[Новые сообщения] | [Поиск]

Быстрый ответ Ответить
 Эмулятор интерфейсов Linux для Windows-программ
Открыть меню
MaZyR
29 ноября 2007
Сообщение #1


Новичок
  • 17

Группа: Гости
Сообщений: 0
Регистрация: --
Наград: Х
ICQ:--
Эмулятор интерфейсов Linux для Windows-программ


Возможно, вы - системный администратор, которому хочется иметь возможность управлять со своего "административно-командного" Windows-компьютера Linux-машинами в сети. Другой вариант, если к вашей Windows-машине подключен монитор лучшего качества чем к машине, работающей под Linux. Или вы просто хотите получать доступ к Linux-десктопу с Windows-ноутбука, использующего беспроводную сеть. Во всех этих случаях вам может пригодиться возможность работать с X-Window в Windows.

На уровне интерфейсов программирования Windows и Linux, мягко говоря, мало совместимы между собой. Однако для упрощения переноса программ с Linux на Windows была разработана система CygWin, эмулирующая интерфейсы Linux для Windows-программ. Первоначально система CygWin предназначалась для портирования консольных приложений, однако затем в рамках CygWin появилась инициатива CygWin/X, призванная эмулировать интерфейс X-Window. Как следует из всего вышесказанного, главной задачей CygWin/X является упрощение процесса портирования графических Linux-приложений (CygWin/X поддерживает программирование с помощью GNOME и X-API), однако эту систему можно использовать и для работы с удаленными Linux-десктопами. Именно о таком ее использовании пойдет далее речь.

Для того чтобы установить CygWin/X на компьютере, сначала нужно установить CygWin. Установить и то и другое можно с помощью специальной программы-инсталлятора, входящей в состав пакета.
Программа-инсталлятор предлагает два варианта установки: напрямую из Интернета, или с предварительной загрузкой пакетов на локальный компьютер. Если вы собираетесь устанавливать CygWin/X на несколько машин или хотите проверить пакеты на предмет безопасности, лучше выбрать второй вариант.

Программа инсталлятор CygWin напоминает менеджер пакетов Linux. С помощью программы вы можете выбрать нужные вам пакеты (пакеты в CygWin представляют собой zip-архивы). Пакетов очень много, но они сгруппированы по категориям, что упрощает выбор нужных. Кроме того, можно просматривать список пакетов, отсортированных по именам, независимо от категорий. Инсталлятор CygWin учитывает зависимости между пакетами, так что при выборе одного пакета, будут автоматически выбраны все пакеты, необходимые для его установки.

С помощью той же программы-инсталлятора можно загрузить исходные тексты всех компонентов CygWin/X (пакет распространяется под лицензией GPL). Запустив CygWin, вы увидите окно консоли, похожей на консоль Windows. Пакет CygWin входит множество стандартных Linux-программ, включая bash, gcc, ssh. Если вы установили CygWin/X, сервер X-Window запускается стандартной командой startx. Если эта команда вызвана без параметров, будет запущен графический терминал XTerm (рис.2).

может принимать и обрабатывать запросы других программ (клиентов), в том числе и удаленных. Любая графическая программа, предназначенная для X-Window, рассматривается как клиент.

Существуют два пути соединения клиентов с удаленным X-сервером.

Первый путь заключается в открытии сервера для подключения с удаленных машин (по умолчанию X-сервер принимает только запросы с локального адреса). Для того, чтобы заставить сервер принимать запросы с другого компьютера, нужно внести адрес этого компьютера в список доступа сервера. Делается это с помощью утилиты xhost (она входит в состав пакета nettools дистрибутива CygWin/X).

В терминале CygWin/X даем команду:
xhost host_addr (где host_addr – адрес удаленного компьютера)

Теперь, для того, чтобы запустить программу с другого компьютера с отображением на локальном X-сервере (через telnet, ssh или с его терминала) нужно дать команду следующего вида:
somexprog –display host_addr:display_num
Обратите внимание на то, что перед ключом display нужно ставить один символ «–», а не два.
В этой команде host_addr – адрес локальной системы, в которой запущен CygWin/X, а display_num – номер X-дисплея (обычно – 0.0).

Можно также в сеансе telnet установить переменную окружения:
DISPLAY=host_addr:display_num
В этом случае программы можно будет запускать без ключа –display.

Другой способ запуска связан с использованием клиента ssh, который поддерживает функцию X11 Forwarding. С помощью этой функции вы сможете связывать удаленные графические программы с локальным X-сервером без указания дополнительных ключей.
У использования ssh есть еще одно преимущество – высокая безопасность (хотя в локальных сетях это может быть и не очень важно).

В состав CygWin входит свой клиент ssh, однако можно использовать и сторонний Windows-клиент, например PuTTY. Если вы используете PuTTY, не забудьте включить функцию X11 Forwarding, так как она по умолчанию отключена. При любом методе работы с CygWin/X у вас есть возможность запустить на вашем рабочем столе удаленные графические сессии сразу нескольких Linux-машин, что может пригодиться, например, при отладке и тестировании сетевых приложений. В состав CygWin/X входит поддержка OpenGL и GLX. Конечно, играть в Linux-игры или просматривать видео на Kaffeine с помощью CygWin/X – не лучшая идея. С другой стороны, CygWin/X может пригодиться тем, кто пользуется в основном текстовыми интерфейсами.

Вот простой пример: установив консольное соединение с Linux-системой, например, с помощью той же программы PuTTY, вы можете запустить mc в окне Windows-терминала. Но в этом случае псевдографические элементы окна mc будут отображены неправильно, и пользоваться программой будет не очень удобно. С помощью CygWin/X вы сможете запустить графический терминал удаленной машины, например, konsole, а в нем - mc. Поскольку в этом случае “картинка” формируется на Linux-машине, окно mc будет отображено корректно.
Перейти в начало страницы
 
Быстрый ответ Ответить
1чел. читают эту тему (гостей: 1)
Пользователей: 0


Рейтинг@Mail.ru