Настройка UNIX машины
В момент запуска Х терминал скачивает файлы (включая программное
обеспечение для Х сервера) с удаленной машины в сети. После загрузки
терминала Х сервер управляет вводом, выводом, локальными клиентами, а
также протоколом обмена Х-ов. Программное обеспечение Х сервера работает
на Х терминале и не обязательно совместимо с программным обеспечением
машины, на которой оно находится.
TFTP и BootP
Вместе tftp (trivial file transfer protocol) с BootP (boot protocol server)
используются на удаленной машине для того, чтобы Х терминал скачал
программное обеспечение Х сервера и настроил файлы через сеть. Оба сервиса
обычно запускаются от inetd (Internet Daemon).
После включения Х терминал, если он настроен на загрузку из сети, рассылает
широковещательное сообщение, используя BootP (TCP/IP bootstrap protocol).
Это сообщение содержит адрес устройства Ethernet Х терминала, который
используется запускающей машиной в ответ на полученный запрос.
Когда ответ получен удаленной машиной, inetd (отвечая на запрос порта,
описанного в /etc/services) запускает демона BootP, который находится в
/etc/inetd.conf.
В файле inetd.conf создайте или раскомментируйте строки, относящиеся к TFTP
и BootP. Последний аргумент tftpd entry в нижеследующем примере - это путь
к каталогу, содержащему файлы, требующиеся Х терминалу. Хотя имена
каталогов не являются обязательными, ради безопасности они всегда должны
присутствовать, так как доступ tftpd будет ограничен для файлов в указанных
каталогах
Из простого файла /etc/inetd.conf:
# tftp сервис предназначен, в первую очередь, для загрузки. Большинство сайтов
# действует только на машинах, работающих как "boot серверы".
tftp dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.tftpd /usr/X11/lib/X11/ncd/
bootps dgram udp wait root /usr/sbin/tcpd /usr/sbin/in.bootpd
После активизации BootP демон сервера считывает файл базы данных
/etc/bootptab. Каждый вход содержит набор тегов, разделенных знаками ":" .
Имя машины должно быть первым тегом.
Используемые теги файла bootptab
- hd
домашний каталог файла загрузки (например /usr/X11/lib/X11/ncd/).
- ip
адрес Х терминала (например 10.0.0.1).
- sm
маска подсети (например 255.0.0.0). Чтобы понять назначение маски подсети и
других принципов IP сети, обратитесь к документу HOWTO по Linux NET-3.
- gw
адрес шлюза (например 10.0.0.1).
- ht
тип аппаратного обеспечения- в данном примере Ethernet
- ha
аппаратный адрес Х терминала (6-ти байтовый адрес Ethernet)
В соответствии с руководством UNIX по bootptab, тег 'ht' должен
предшествовать тегу 'ha'. При первом включении терминала, Ethernet адрес Х
терминала выводится на дисплей. Адрес появляется в виде 6 сдвоенных
шестнадцатеричных чисел, разделенных двоеточием (например
00:00:A7:12:26:19).
- tc
Продолжение таблицы или имя другой записи базы данных BootP. Смотрите
пример ниже.
- ds
IP адрес DNS (например 10.0.0.3). Не требуется, если DNS не используется
для разрешения имен машин.
- bf
Имя файла запуска Х терминала (Обычно модель терминала используется как имя
файла Х сервера (например Xncd19r)
Ниже приведен пример файла базы данных сервера протокола Boot
/etc/bootptab. Знак '\' используется для пропуска перевода строки.
# Это запись (дано имя default)
# с информацией, общей для всех клиентов BootP.
default:hd=/usr/X11/lib/X11/ncd/:\
ds=10.0.0.3:\
sm=255.0.0.0:\
gw=10.0.0.1:
# запись об Х терминале с именем машины myxterm
# заметьте, что тег tc ссылается на запись default
myxterm:ht=ethernet:\
ha=0x0000a7122619:\
ip=10.0.0.2:\
tc=default:\
bf=Xncd19r:
Когда подходящая запись аппаратного адреса в запросе на загрузку найдена,
bootpd посылает ответ с IP адресом из этой записи. Файл пересылается по
протоколу IP с использованием TFTP.
Имя машины может быть назначено Х терминалу, путем создания записи на
запускающей машине в файле /etc/hosts. Этот файл используется, чтобы
сопоставить имена машин и соответствующие IP-адреса. В данном примере Х терминалу
(адрес 10.0.0.2) было задано имя машины 'myxterm'.
10.0.0.1 linuxhost #имя машины
10.0.0.2 myxterm #Х терминал