В момент запуска Х терминал скачивает файлы (включая программное обеспечение для Х сервера) с удаленной машины в сети. После загрузки терминала Х сервер управляет вводом, выводом, локальными клиентами, а также протоколом обмена Х-ов. Программное обеспечение Х сервера работает на Х терминале и не обязательно совместимо с программным обеспечением машины, на которой оно находится.
Вместе 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
домашний каталог файла загрузки (например /usr/X11/lib/X11/ncd/).
адрес Х терминала (например 10.0.0.1).
маска подсети (например 255.0.0.0). Чтобы понять назначение маски подсети и других принципов IP сети, обратитесь к документу HOWTO по Linux NET-3.
адрес шлюза (например 10.0.0.1).
тип аппаратного обеспечения- в данном примере Ethernet
аппаратный адрес Х терминала (6-ти байтовый адрес Ethernet)
В соответствии с руководством UNIX по bootptab, тег 'ht' должен предшествовать тегу 'ha'. При первом включении терминала, Ethernet адрес Х терминала выводится на дисплей. Адрес появляется в виде 6 сдвоенных шестнадцатеричных чисел, разделенных двоеточием (например 00:00:A7:12:26:19).
Продолжение таблицы или имя другой записи базы данных BootP. Смотрите пример ниже.
IP адрес DNS (например 10.0.0.3). Не требуется, если DNS не используется для разрешения имен машин.
Имя файла запуска Х терминала (Обычно модель терминала используется как имя файла Х сервера (например 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 #Х терминал