Разработка многотерминальной системы на основе ОС
Linux
Морев Н. В.
X-терминал это такая специализированная машина,
которая умеет выполнять практически одну единственную
програму -- X-сервер. Но благодаря клиент-серверной
природе основной графической среды Unix -- X Window, эта
одна единственная программа позволяет программам,
выполняющимся на другой машине, взаимодействовать с
пользователем, сидящим перед терминалом не хуже, чем перед
сидящим за локальной консолью.
Рабочие места системы крайне нетребовательны к ресурсам. Им
не нужны жесткие диски и/или дисководы. Производительность
рабочих мест (терминалов) определяется в основном
производительностью терминал-сервера, т.к. приложения
реально работают на именно сервере, а терминалы лишь
отображают информацию и снабжают приложения данными с
устройств ввода -- клавиатур и мышей. Поэтому даже
морально устаревшие 486 компьютеры с 16 мегабайтами
оперативной памяти могут использоваться в качестве
терминалов для работы с ресурсоёмкими графическими
приложениями.
В терминалах не содержится никакого прикладного программного
обеспечения, а все прикладное ПО устанавливается и
обновляется на серверах и полностью подконтрольно
администратору. Лёгкость в управлении системой снижает число
возможных ошибок при администрировании и экономит время при
диагностике неполадок. Кроме централизации управления для
облегчения администрирования, получают дополнительную
возможность и обычные пользователи: доступ к своему личному
«рабочему столу» в системе возможен с любого её терминала.
Т.к. в терминалах нет необходимости ни в жёстких дисках, ни
в дисководах, ни в мощных вентиляторах, характерных для
современных компьютеров, количество механических
составляющих обычно сводится к минимуму, а это, в свою
очередь, повышает отказоустойчивость рабочих мест. Так
достигается уменьшение затрат на обслуживание аппаратного
обеспечения рабочих мест. Кроме того, при задействовании со
временем всё более ресурсоёмких приложений, требуемая
производительность на рабочих местах достигается обновлением
аппаратных составляющих только лишь терминал-сервера. В
связи с этим срок морального старения рабочих мест
значительно больше, чем обычно.
- Приложения, требующие интенсивной графики работают
медленнее, чем на обычной системе.
- Работоспособность всех терминалов зависит от одного сервера,
к которому они подключены.
- Зависимость от надежности локальной сети.
Цель этой работы -- создание учебного компьютерного класса
из некоторого количества X-терминалов и одного сервера.
Обеспечение одновременной работы с удаленной машиной
(сервером) нескольких пользователей. Перенос основных
вычислительных ресурсов (ОП, процессор, дисковое
пространство) с клиентских машин на сервер и их эффективное
разделение между X-терминалами.
Студент, знакомый с основами работы с приложениями в оконной среде X Window или
изучающий их.
Создаваемая система должна обеспечивать удаленную загрузку и
выполнение программного обеспечения ОС Linux.
Процессор i486 или выше, объем ОП 16 MB или выше. Наличие
дисковода, монитора, клавиатуры, сетевой карты обязательно.
Жесткий диск, мышь, звуковая карта и прочее не обязательны.
Зависит от количества X-терминалов. Минимальные требования:
процессор Pentium, объем ОП 32 MB, жесткий диск 1 GB,
сетевая карта. Монитор, клавиатура, мышь и прочее не
обязательно.
С точки зрения пользователя X-терминал представляет собой
«черный ящик» с клавиатурой и монитором,
загружающий посредством ПО, записанного на дискете или в ПЗУ
сетевой карты, через сеть все необходимое ПО для работы.
После загрузки пользователь работает за X-терминалом также,
как он бы работал за локальной консолью.
Компьютер может загружаться с загрузочной дискеты или специального ПЗУ,
установленного на сетевой карте. Последовательность загрузки выглядит
следующим образом:
- Все настройки для сетевого интерфейса компьютера получаются с сервера по
протоколу BOOTP или DHCP, которые специально для этого предназначены.
- По протоколу TFTP из места, полученного с BOOTP/DHCP сервера,
скачивается ядро для последующей загрузки.
- После того, как ядро запустилось, оно попытается примонтировать корневую
файловую систему. Место ее расположения также получается от 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
На сервере надо проделать следующие действия
- Открыть доступ по NFS к корневой файловой системе клиента.
- Настроить сервер BOOTP. В файле /etc/bootptab написать:
.default
:sm=<маска подсети>
:ds=<IP адрес DNS сервера>
:ht=ethernet
:dn=<доменное имя>
:gw=<IP адрес маршрутизатора по умолчанию>
:sa=<IP адрес TFP сервера>
:bf=<место расположения ядра>
:rp=<место расположения корневой ФС>
:hn
Затем туда же добавить записи для каждой клиентской машины вида:
<доменное имя клиента>
:ha=<MAC адрес клиента>
:ip=<IP адрес клиента>
- Настроить TFTP сервер. Для этого в файле /etc/inetd.conf написать:
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd /tftpboot
Чтобы сервер воспринимал XDMCP-запросы терминалов, проделать следующие шаги:
- Установить сервер шрифтов XFS и разрешить ему принимать входящие
соединения. Для этого в файле /etc/rc.d/init.d/xfs добавить опцию
-port 7100 в строку запуска xfs. Затем в файле
/etc/X11/fs/config закомментировать строку
no-listen = tcp
После этого перезапустить XFS командой
service xfs restart
- В файле /etc/X11/xdm/xdm-config закомментировать строчку
DisplayManager.requestPort: 0
В файле /etc/X11/xdm/Xaccess написать строчку
*
что означает, что к серверу может подключиться любой терминал.
- В файле /etc/inittab заменить строчку
id:3:initdefault:
на
id:5:initdefault:
- Настроить 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-соединения,
проделать следующее:
- Перезапустить систему сервера.
- Попробовать зайти в систему с локальной консоли.
- Попробовать загрузить по сети X-терминал.
- Попробовать зайти в систему с удаленной консоли.
В данной работе было показано, как создать 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