[LinuxFocus-icon]
Домой  |  Карта  |  Индекс  |  Поиск

Новости | Архивы | Ссылки | Про LF
[an error occurred while processing this directive]
[Photo of the Author]
автор Guido Socher (homepage)

Об авторе:

Guido любит Линукс не только из-за того, что ему интересно разбираться в том, как работают операционные системы, но так же из-за людей, которые участвуют в его создании



Перевод на Русский:
Вася Леушин <basileus(at)newmail.ru>

Содержание:

 

Запуск удаленных приложений в Х11

[Illustration]

Резюме:

Многие пользователи при знакомстве с Линуксом думают, что его графический рабочий стол это просто еще одна " Windows" в которой можно запускать приложения в отдельных окнах. Некоторые, конечно, замечают, что можно иметь несколько рабочих столов, но все равно им кажется, что это Windows. X Window System (X11) это что-то гораздо большее! Это сетевая оконная система. Мы увидим, какие новые возможности она нам предлагает.



 

Общее понятие дисплея

Каждое графическое приложение X Window при запуске считывает переменную окружения DISPLAY, что бы выяснить на какой компьютерный экран посылать графические данные. Это, вместе с сетевыми возможностями системы X Window делает возможным удаленный запуск графических приложений. То есть вы используете ресурсы процессора одной машины при работе с приложением на другой. Весь GUI (графический интерфейс пользователя) появляется на той машине, с которой вы им управляете. Вы даже не замечаете, что используете два компьютера. Конечно, определенную роль здесь играет скорость передачи данных, но нормальной 10-мегабитной локальной сети вполне достаточно.


[run in an application remote]

Для чего это вам?
Существует множество сетевых графических приложений. Компании используют их для управления оборудованием находящимся может быть за тысячи километров, и вы можете использовать такие же приложения так, как если бы они были на вашем компьютере.
Допустим, у вас есть два компьютера: одна быстрая гигагерцевая машина и еще старенький Pentium-133 - вы вполне сможете оценить скорость вашей новой машины, даже не садясь за нее. Возможно, ваша сестра заняла быстрый компьютер - но вы все равно пользуете его.
[display] Как это работает?
Все приложения X Window (такие как например Gimp, Xterm, Konquerer, Netscape и т. д.) в действительности являются сетевыми клиентами, которые присоединяются к X-серверу. В задачу X-сервера входят: взаимодействие с графическим аппаратным обеспечением, рисование картинок на вашем экране, считывание данных с мышки и клавиатуры. Программы-клиенты (gimp, netscape) посылают серверу указания о том, как рисовать рамки и кнопки. Взамен они принимают от сервера команды с мышки и клавиатуры. Само собой разумеется, что потребуется аутентификация, иначе кто угодно может испортить чей-нибудь экран. Существуют две программы для управления доступом:
- xhost: используя эту программу, вы можете допустить любого пользователя с определенной машины передавать графику на ваш дисплей. Например: Вы работаете на машине с именем philosophus. Что бы дать доступ на ваш дисплей любой программе с хоста movietux вам нужно набрать команду:

xhost +movietux
Это должно быть набрано в оболочке philosophus'а


- xauth: Это более сложная программа, основанная на cookie. С ее помощью вы можете предоставлять доступ определенным пользователям, тем самым эта программа обладает более высоким уровнем безопасности, чем xhost. Аутентификация использует cookie из файла .Xauthority в домашней директории пользователя. Доступ дается только если удаленная машина содержит нужный cookie в этом файле. Что бы скопировать этот cookie с вашей машины (philosophus) на хост с которого вы хотите запускать программу (movietux), вы можете использовать один из следующих методов:

xauth extract - philosophus:0.0 | ssh movietux /usr/X11R6/bin/xauth merge
или
scp ~/.Xauthority movietux:


При запуске программы-клиента происходит следующее:
  1. Клиент проверяет переменную DISPLAY для поиска сервера или пытается подключиться к серверу на локальном хосте.
  2. Сервер проверяет, имеет ли клиент допуск к передаче "картинок" к нему. Если имеет - тогда сервер рисует графику.
Переменная окружения DISPLAY имеет следующий синтаксис:

bash:export DISPLAY=hostname:displaynumber.screennumber
tcsh:setenv DISPLAY hostname:displaynumber.screennumber

Я не буду говорить о displaynumber и screennumber, обычно это 0.0. Вот пример для bash:

export DISPLAY=philosophus:0.0

 

Запуск удаленного приложения

А теперь от теории перейдем к практике и проверим, как это все работает. Вы снова сидите за компьютером philosophus и хотите запустить что-нибудь с movietux
  1. Сообщите вашему X-серверу, что клиенты с movietux имеют допуск к рисованию картинок на вашем экране:
    xhost +movietux
  2. Заходите на удаленный хост movietux:
    slogin -l username movietux
  3. Теперь вы вошли на movietux, и все ваши команды исполняются на нем
  4. export DISPLAY=philosophus:0.0
  5. Запускайте программу напр.
    netscape &
если movietux - мощная машина, вы заметите, что рендеринг html-страниц в netscape проходит гораздо быстрее, чем, если бы вы запустили его локально на вашей машине. В тоже самое время вы даже не замечаете, что netscape работает не локально, потому что вы действуете мышкой и клавиатурой как обычно.
Круто, не так ли?  

Перенос дисплея на удаленный хост

Хотя запускать приложения удаленно это так просто, все же бывает нужно набрать еще кое-какие команды для установки DISPLAY (все это можно автоматизировать).  

Страница отзывов

У каждой заметки есть страница отзывов. На этой странице вы можете оставить свой комментарий или просмотреть комментарии других читателей.
 talkback page 

Webpages maintained by the LinuxFocus Editor team
© Guido Socher, FDL
LinuxFocus.org

Click here to report a fault or send a comment to LinuxFocus
Translation information:
en --> -- : Guido Socher (homepage)
en --> ru: Вася Леушин <basileus(at)newmail.ru>

2002-01-02, generated by lfparser version 2.19