Разработка многотерминальной системы на основе ОС Linux

Морев Н. В.


Содержание

Введение

X-терминал это такая специализированная машина, которая умеет выполнять практически одну единственную програму -- X-сервер. Но благодаря клиент-серверной природе основной графической среды Unix -- X Window, эта одна единственная программа позволяет программам, выполняющимся на другой машине, взаимодействовать с пользователем, сидящим перед терминалом не хуже, чем перед сидящим за локальной консолью.

Преимущества X-терминала

Снижение прямых затрат

Рабочие места системы крайне нетребовательны к ресурсам. Им не нужны жесткие диски и/или дисководы. Производительность рабочих мест (терминалов) определяется в основном производительностью терминал-сервера, т.к. приложения реально работают на именно сервере, а терминалы лишь отображают информацию и снабжают приложения данными с устройств ввода -- клавиатур и мышей. Поэтому даже морально устаревшие 486 компьютеры с 16 мегабайтами оперативной памяти могут использоваться в качестве терминалов для работы с ресурсоёмкими графическими приложениями.

Централизация управления

В терминалах не содержится никакого прикладного программного обеспечения, а все прикладное ПО устанавливается и обновляется на серверах и полностью подконтрольно администратору. Лёгкость в управлении системой снижает число возможных ошибок при администрировании и экономит время при диагностике неполадок. Кроме централизации управления для облегчения администрирования, получают дополнительную возможность и обычные пользователи: доступ к своему личному «рабочему столу» в системе возможен с любого её терминала.

Низкая стоимость владения

Т.к. в терминалах нет необходимости ни в жёстких дисках, ни в дисководах, ни в мощных вентиляторах, характерных для современных компьютеров, количество механических составляющих обычно сводится к минимуму, а это, в свою очередь, повышает отказоустойчивость рабочих мест. Так достигается уменьшение затрат на обслуживание аппаратного обеспечения рабочих мест. Кроме того, при задействовании со временем всё более ресурсоёмких приложений, требуемая производительность на рабочих местах достигается обновлением аппаратных составляющих только лишь терминал-сервера. В связи с этим срок морального старения рабочих мест значительно больше, чем обычно.

Недостатки X-терминалов

Цели и требования

Цель этой работы -- создание учебного компьютерного класса из некоторого количества X-терминалов и одного сервера.

Назначение класса X-терминалов

Обеспечение одновременной работы с удаленной машиной (сервером) нескольких пользователей. Перенос основных вычислительных ресурсов (ОП, процессор, дисковое пространство) с клиентских машин на сервер и их эффективное разделение между X-терминалами.

Определение пользователя

Студент, знакомый с основами работы с приложениями в оконной среде X Window или изучающий их.

Подробное перечисление функций

Создаваемая система должна обеспечивать удаленную загрузку и выполнение программного обеспечения ОС Linux.

Конфигурация X-терминала

Процессор i486 или выше, объем ОП 16 MB или выше. Наличие дисковода, монитора, клавиатуры, сетевой карты обязательно. Жесткий диск, мышь, звуковая карта и прочее не обязательны.

Конфигурация сервера

Зависит от количества X-терминалов. Минимальные требования: процессор Pentium, объем ОП 32 MB, жесткий диск 1 GB, сетевая карта. Монитор, клавиатура, мышь и прочее не обязательно.

Внешний проект

С точки зрения пользователя X-терминал представляет собой «черный ящик» с клавиатурой и монитором, загружающий посредством ПО, записанного на дискете или в ПЗУ сетевой карты, через сеть все необходимое ПО для работы. После загрузки пользователь работает за X-терминалом также, как он бы работал за локальной консолью.

Проект архитектуры

Организация бездисковой загрузки

Компьютер может загружаться с загрузочной дискеты или специального ПЗУ, установленного на сетевой карте. Последовательность загрузки выглядит следующим образом:
  1. Все настройки для сетевого интерфейса компьютера получаются с сервера по протоколу BOOTP или DHCP, которые специально для этого предназначены.
  2. По протоколу TFTP из места, полученного с BOOTP/DHCP сервера, скачивается ядро для последующей загрузки.
  3. После того, как ядро запустилось, оно попытается примонтировать корневую файловую систему. Место ее расположения также получается от BOOTP/DHCP сервера, и она подключается с помощью NFS (Network Filesystem). Другой вариант -- использовать в качестве корневой ФС ramdisk (образ ФС, находящийся в ОЗУ компьютера). В этом случае образ этой ФС также загружается по сети с TFTP сервера.

Организация удаленного выполнения графических приложений

Для организации удаленного выполнения графических приложений используются следующие программы:
Xserver
организует для удаленных программ доступ к локальным ресурсам: монитор, клавиатура, мышь. (запускается на терминале)
XDM
предоставляет терминалу окно для ввода логина и пароля и входа в удаленную систему, управляет запуском сеанса работы вошедшего пользователя, например, запускает оконный менеджер и какие-нибудь приложения. (запускается на сервере)
chooser
(необязательно) выдает терминалу список серверов, на которых запущен XDM, о которых он знает. Пользователь может выбрать из списка любой сервер и подключиться к нему.

Реализация

Установить на сервер ОС Linux Red Hat 7.3. Настроить и проверить сетевые интерфейсы. Включить поддержку системы XWindow. Создать пользовательские учетные записи. Все действия по настройке, описанные ниже, можно не выполнять, если использовать специально настроенное ПО, поставляемое проектом LTSP (http://www.ltsp.org/http://www.ltsp.org/).

Организация бездисковой загрузки

Необходимо создать загрузочную дискету или записать в ПЗУ сетевой карты специальный образ, содержащий поддержку сетевой карты терминала (т.н. Ethernet TCP/IP Net Loader). Такие образы поставляются проектом Etherboot (http://www.slug.org.au/etherboothttp://www.slug.org.au/etherboot). Записать образ на загрузочную дискету можно с помощью команды
# cat floppyload.bin ne2000.lzrom >/dev/fd0
Необходимо скомпилировать ядро для клиентской машины, включив поддержку ramdisk, NFS, драйвера сетевой карты, автоконфигурации ip-интерфейса на уровне ядра с помощью BOOTP. Далее полученное ядро скопировать на сервер в каталог /tftpboot и модифицировать с помощью утилиты mknbi.
# cd /tftpboot 
# mknbi-linux zImage -output=kernel -rootdir=/nfsroot
На сервере надо проделать следующие действия
  1. Открыть доступ по NFS к корневой файловой системе клиента.
  2. Настроить сервер BOOTP. В файле /etc/bootptab написать:
    .default				
    :sm=<маска подсети>			
    :ds=<IP адрес DNS сервера>		
    :ht=ethernet				
    :dn=<доменное имя>			
    :gw=<IP адрес маршрутизатора по умолчанию>
    :sa=<IP адрес TFP сервера>		
    :bf=<место расположения ядра>		
    :rp=<место расположения корневой ФС>	
    :hn
    
    Затем туда же добавить записи для каждой клиентской машины вида:
    <доменное имя клиента>			
    :ha=<MAC адрес клиента>		
    :ip=<IP адрес клиента>
    
  3. Настроить TFTP сервер. Для этого в файле /etc/inetd.conf написать:
    tftp dgram udp wait root /usr/sbin/tcpd in.tftpd /tftpboot
    

Организация удаленного выполнения графических приложений

Чтобы сервер воспринимал XDMCP-запросы терминалов, проделать следующие шаги:
  1. Установить сервер шрифтов XFS и разрешить ему принимать входящие соединения. Для этого в файле /etc/rc.d/init.d/xfs добавить опцию -port 7100 в строку запуска xfs. Затем в файле /etc/X11/fs/config закомментировать строку
    no-listen = tcp
    
    После этого перезапустить XFS командой
    service xfs restart
    
  2. В файле /etc/X11/xdm/xdm-config закомментировать строчку
    DisplayManager.requestPort: 0
    
    В файле /etc/X11/xdm/Xaccess написать строчку
    *
    
    что означает, что к серверу может подключиться любой терминал.
  3. В файле /etc/inittab заменить строчку
    id:3:initdefault:
    
    на
    id:5:initdefault:
    
  4. Настроить XWindow на забор шрифтов с XFS-сервера. Для этого в файле /etc/X11/XF86Config вписать строчку
    FontPath "unix/:7100"
    
На терминале запустить Xserver командой
/usr/X11R6/bin/X -query serverhost.serverdomain
Чтобы эта команда запускалась автоматически при старте системы, можно записать ее в файл /etc/inittab следующим образом:
x:5:respawn:/usr/X11R6/bin/X -query serverhost.serverdomain

Тестирование

Чтобы проверить, что сервер действительно принимает XDMCP-соединения, проделать следующее:
  1. Перезапустить систему сервера.
  2. Попробовать зайти в систему с локальной консоли.
  3. Попробовать загрузить по сети X-терминал.
  4. Попробовать зайти в систему с удаленной консоли.

Заключение

В данной работе было показано, как создать X-терминал на основе ОС Linux. Была выбрана именно эта ОС по причине того, что в последние годы Linux неуклонно набирает популярность среди образовательных и государственных учреждений, появляются промышленные решения на ее основе. Она также очень популярна среди технически продвинутых пользователей и профессионалов в области информационных технологий. Главная причина ее популярности -- открытость и возможность модификации ее исходного кода, бесплатность самой ОС и большинства приложений, созданных для нее, UNIX-подобность. Почему это способствует распространению Linux в вузах:
Открытость исходных кодов
Студенты имеют возможность изучать принципы построения операционных систем, системного и прикладного ПО на конкретных примерах. Вузы получают возможность самостоятельно модифицировать уже готовое ПО для собственных нужд, вместо того, чтобы писать его с нуля.
Бесплатность
В условиях университета, где существует огромное количество компьютерных лабораторий, платить за все используемое ПО получается очень дорого. Зачастую стоимость программ, установленных на одном компьютере превышает стоимость самого компьютера. Не спасают даже льготы для образовательных учреждений, предоставляемые производителями ПО. Сократить расходы позволяет использование терминал-серверных решений или бесплатного ПО, аналогичного по функциональности коммерческому.
UNIX-подобность
Операционная система UNIX была создана в 1960-х годах и основные принципы ее построения до сих пор не потеряли актуальности. Сегодня существует множество ОС, входящих в семейство UNIX-подобных, и Linux -- одна из них. Любой специалист по ИТ обязан знать хотя бы основы работы в ОС семейства UNIX.
Под Linux существует множество «свободного»1 программного обеспечения, в том числе и пригодного для целей обучения студентов.
Изучение Linux
bash, сама ОС Linux.
Программирование
мощные текстовые редакторы: Vim, Emacs, fte; компиляторы и интерпретаторы различных языков программирования: Pascal (gpc, Free Pascal -- совместим с Turbo Pascal), C/C++ (gcc, g++), Java (gcj, Jikes, Kaffe, Sun SDK), Prolog (gprolog, swi-prolog), ассемблер (gas, nasm, picasm -- для PIC), эмулятор и ассемблер машины MIX Кнута.
Расчеты
численные методы (Octave, Matlab), символьные вычисления (Maxima, Wolfram Mathematica).
Изучение БД
СУБД и клиенты для них (MySQL, PostgreSQL).
Веб-программирование
Perl, PHP, Java.
Подготовка отчетов
текстовые процессоры (AbiWord, OpenOffice).
Работа в Internet
браузеры (Mozilla, Opera); почтовые клиенты (Pine, Evolution).
В терминальном классе можно запускать не только приложения для Linux. Возможно организовать такую систему, где на одном рабочем столе будут соседствовать приложения Linux и Windows. Кроме того класс X-терминалов можно объединить по сети в вычислительный кластер, использующийся для более эффективного решения численных задач.

Список литературы

1
Использование бездисковых X-терминалов на базе Linux-PC. Виктор Вагнер. / Проект <<Пингвин при галстуке>>. (http://ppg.ice.ru/ppg/xterminalshttp://ppg.ice.ru/ppg/xterminals, 13.10.2003)

2
Почему LTSP? / LTSP.RU -- Linux TERMINAL SERVER Project (Russia). (http://www.ltsp.ru/root.php?c=main&t=whyhttp://www.ltsp.ru/root.php?c=main&t=why, 13.10.2003)

3
XDM and X Terminal mini-HOWTO / The Linux Documentation Project. (http://www.tldp.org/HOWTO/XDM-Xterm/index.htmlhttp://www.tldp.org/HOWTO/XDM-Xterm/index.html, 16.11.2003)

4
Network Boot and Exotic Root HOWTO / The Linux Documentation Project. (http://www.tldp.org/HOWTO/Network-boot-HOWTO/index.htmlhttp://www.tldp.org/HOWTO/Network-boot-HOWTO/index.html, 16.11.2003)

5
Linux XDMCP HOWTO / The Linux Documentation Project. (http://www.tldp.org/HOWTO/XDMCP-HOWTO/index.htmlhttp://www.tldp.org/HOWTO/XDMCP-HOWTO/index.html, 1.12.2003)

6
Thinclient HOWTO / The Linux Documentation Project. (http://www.tldp.org/HOWTO/Thinclient-HOWTO/index.htmlhttp://www.tldp.org/HOWTO/Thinclient-HOWTO/index.html, 1.12.2003)

О документе...

Разработка многотерминальной системы на основе ОС Linux

This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.48)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -nonavigation -split 0 -local_icons -address kolyuchiy@gmail.com -no_auto_link report.tex

The translation was initiated by Kolia Morev on 2004-04-14


Сноски

... «свободного»1
т.е. подпадающего под лицензию GPL, которая обязывает открывать исходные коды для публики и разрешает их модифицировать любому программисту. (``free'' as in ``free speech'')


kolyuchiy@gmail.com

Обновлено Tue Apr 15 21:27:20 2014 +0400