Старые компьютеры в роли графических терминалов (ранее была опубликована в журнале "Downgrade" #4) http://ru54.com/~nostalgy http://nostalgy.net.ru ©2012 М.Бабичев (Антиквар) Во многих организациях, а также у некоторых домашних пользователей сохранились устаревшие, но работоспособные компьютеры, которые, с одной стороны, жаль выбрасывать, а с другой - непонятно, как использовать на практике, потому что современную операционную систему на них не установишь, а полноценно работать с DOS, Windows 3.1 или Windows 95 в настоящее время умеют лишь немногие, да и они зачастую вынуждены обращаться к более современному программному обеспечению. Если же речь идет об образовательных учреждениях - школах, ВУЗах - то здесь использовать старые программы и вовсе не получится, так как учебные планы предусматривают освоение учениками современного софта. Неужели это означает приговор для тысяч доживших до наших дней 486-х и "первых" Pentium'ов? К счастью, нет. Даже на таких компьютерах, в том числе не оснащенных жесткими дисками, пользователи могут работать со вполне современными операционными системами, например, Windows 2003/2008 Server или AltLinux Terminal 5.0. Для этого старые компьютеры нужно "переделать" в графические терминалы (консоли). Консолью с давних времен принято называть текстовый дисплей (монитор) и клавиатуру, соединенные через сеть с сервером, на котором, собственно, и работает пользователь. Однако, современная консоль может работать и в графическом режиме, поддерживать мышь, звуковой адаптер, CD/DVD и другое вспомогательное оборудование. Понятно, что с прорисовкой рабочих столов и с передачей на сервер сигналов с клавиатуры и мыши справится даже маломощный компьютер. Зато терминальный сервер должен иметь достаточные ресурсы для того, чтобы несколько человек могли одновременно запускать на нем разные "громоздкие" программные пакеты. Однако, ресурсы такого сервера, как "системы массового обслуживания", используются более рационально, чем ресурсы персональных компьютеров. Скажем, для работы 10 пользователей вместо 10 полноценных ПК может быть достаточно купить один сервер, имеющий лишь в 2-3 раза большие память и быстродействие, чем каждый из этих ПК. Не нужно оснащать терминалы источниками бесперебойного питания - достаточно оснастить таким источником сервер. То есть, терминальная система может быть экономически выгодной. А учитывая, что все данные пользователей хранятся на одном компьютере, она может быть выгодной и для администратора: не нужно заменять "посыпавшиеся" жесткие диски или переустанавливать давшие сбой ОС на пользовательских машинах, легче следить за порядком, бороться с вирусами, делать резервное копирование... Прежде всего, заметим, что реализовать терминальную систему можно различными способами: I. Сервер на базе Windows 2000/2003 Server и т.п.:
а) Терминал целиком загружает с дисковода или жесткого
диска RDP-клиент (Remote Desctop Protocol) DOSRDP II. Сервер на базе Linux с LTSP (AltLinux Terminal с пакетом Linux Terminal Server Project):
а) Терминал считывает с дисковода код сетевой загрузки
Etherboot 5.4.0, который с помощью DHCP и TFTP получает
с сервера LTSP-клиент (файл initrd.gz) Наиболее простыми в настройке, но наименее удобными и надежными в повседневном использовании являются способы Iа и Iб. В этих случаях интенсивно используются и изнашиваются дисководы и дискеты, поскольку при каждом запуске терминала в его память загружается DOS, и считывается клиент, занимающий практически весь объем дискеты. Понятно также, что такой запуск терминалов отнимает сравнительно много времени. Более надежными, удобными и быстрыми вариантами являются эти же способы, но с загрузкой DOS и клиентов с жестких дисков. Аналогичен им способ IIв, при котором загрузка производится с CD-диска. Жесткие диски и CD-приводы значительно быстрее и надежнее дисководов и дискет. Однако, необходимость использования на терминальных клиентах винчестеров или CD-приводов делает терминальную систему менее целесообразной: терминалы с "винчестерами" шумят и боятся ударов также, как и обычные ПК. Что же касается CD-приводов - оснастить ими каждый терминал может быть проблематично, а вот 3-дюймовый дисковод, как правило, есть на любом старом компьютере. Кроме того, не каждый старый компьютер содержит в BIOS подпрограмму загрузки с CD-диска. Вышеупомянутые варианты позволяют иметь наиболее простой терминальный сервер, задача которого - подключать к себе по сети клиенты с фиксированными IP-адресами, и работать с ними через протокол RDP. Так, в Windows Server достаточно настроить сетевой адаптер, свойства сети, и включить сервер терминалов. Сложнее настроить, но приятнее использовать варианты Iв и IIа. С дискет отсуществляется лишь начальная загрузка, то есть, на них содержится не полноценный клиент, а маленький (десятки килобайт) код Etherboot для обеспечения загрузки терминала по сети, который быстро считывается с дискеты, почти не изнашивая дисковод. Etherboot заменяет код сетевой загрузки PXE, записанный в микросхему ПЗУ сетевого адаптера (BOOT ROM). Конечно, если есть сетевые адаптеры с PXE BOOTROM, можно обеспечить наиболее удобные, надежные и "красивые" варианты запуска терминалов Iг и IIб. Однако, PXE содержат далеко не все сетевые платы. Рассмотрим более подробно порядок создания терминальной системы на базе Windows 2000/2003 Server. Прежде всего, нужно напомнить, что Windows - платная коммерческая программа, которую нужно лицензировать. ОС Windows Server стоит значительно дороже Windows для рабочих станций. Кроме того, для подключения терминальных клиентов к Windows Server, нужно дополнительно приобретать клиентские лицензии (о терминальных лицензиях см. Приложение 4). Тем не менее, даже при таком "полностью легальном" раскладе терминальная система может быть выгоднее, чем несколько ПК, на каждый из которых установлена отдельная лицензионная Windows. Кроме того, к терминалам для Windows Server предъявляются несколько меньшие системные требования, чем к терминалам системы AltLinux Terminal. Однако, ввиду того, что многие школы принудительно переводят на Linux, область применения терминальных серверов Windows сейчас заметно сократилась. Решив строить систему на базе Windows Server, определимся с выбором версии Windows. Автор испытывал Windows Server 2000 и 2003. Процесс установки и настройки этих систем примерно одинаков. Windows 2000 менее "тяжеловесна" (что может играть роль, если терминальный сервер сравнительно маломощен), однако, в ней используется версия 5.0 протокола RDP, которая не позволяет переназначать локальные диски клиентов на сервер (т.н. mapping) без использования сторонних программных средств типа Citrix Metaframe. "Маппинг" нужен, чтобы пользователи могли, например, записать файл с сервера на дискету, вставленную в дисковод терминала, или записать на сервер файлы через CD-ROM терминала. "Маппинг" должен поддерживаться как терминальным сервером, так и терминальным клиентом (из опробованных нами клиентов для этого пригоден лишь WtWare 4.5.11). Так вот, Windows 2003 Server содержит RDP версии 5.2, которая поддерживает "маппинг", а кроме того, позволяет получить на экране терминала больше, чем 256 цветов. Установка и начальная настройка Windows 2003 Server Rus 1. После ввода лицензионного ключа, появится окно "режимы лицензирования". Укажите вариант "на сервер", и выберите число подключений с запасом на будущее, например, если сейчас у вас 10 терминалов, стоит указать 15-20 подключений. 2. Окно "сетевые параметры" - выберите "особые параметры". 3. Протокол Интернета. Свойства. Укажите вручную IP-адрес сервера (сервер должен иметь фиксированный адрес!). В нашем примере - 192.168.0.1, маска сети 255.255.255.0. Если сервер не подключен к внешней сети, шлюз и DNS можно не указывать. 4. После завершения программы установки Windows и установки пакета обновлений R2, Windows запустится в обычном режиме. Если зайти в нее под именем "Администратор", автоматически появится окно "Управление данным сервером" (также его можно запустить через Пуск - Администрирование). Там надо выбрать пункт "Добавить или удалить роль", 5. После этого в окне "Параметры настройки" выбрать "Особая конфигурация". В списке "Роль сервера" будет строка "Сервер терминалов". По умолчанию там стоит "Нет". Измените этот параметр на "Да". После этого будет установлена и настроена служба терминалов. Теперь администратор может зайти на рабочий стол сервера через сеть. Но нужно сделать кое-что еще. 6. Пуск - Администрирование - Управление компьютером. Вкладка Служебные программы - Локальные пользователи - Пользователи. Создайте пользователей для терминалов. Например, по одному на каждый терминал. Так, у нас они называются K1, K2... K10, и заходят в систему без пароля. При создании пользователя поставьте галочки "запретить смену пароля пользователем" и "срок действия пароля не ограничен". Добавьте пользователей в группы "Пользователи" и "Пользователи удаленного рабочего стола", чтобы они могли заходить через терминал. 7. Однако, пользователи без пароля по умолчанию не могут работать через терминалы! Чтобы это исправить, выбираем Пуск - Администрирование - Локальная политика безопасности. Там открываем вкладку Локальные политики - Параметры безопасности. Ищем пункт "Учетные записи: ограничить использование пустых паролей". Вместо "Включен" устанавливаем параметр "Отключен". Вот, собственно и вся первоначальная настройка сервера. Теперь на нем можно работать с терминалов, на которых с дискет целиком загружаются такие клиенты, как DOSRDP или FRWT. Для использования терминалов, у которых начальная загрузка производится с PXE BOOTROM сетевой платы или с дискеты, содержащей код Etherboot, нужно дополнительно настроить на сервере службы DHCP и TFTP, и поместить в публичный каталог TFTP-сервера файлы терминального клиента WtWare 4.5.11. Но об этом позже... Для Windows 2000 Server Rus порядок установки несколько иной. Там при установке также нужно выбрать режим лицензирования "На сервер". После этого в окне "Компоненты Windows 2000" нужно поставить галочки на компонентах "Лицензирование служб терминалов" и "Службы терминалов". Затем, в окне "Установка служб терминалов" выберите "Режим сервера приложений". В следующем окне следует выбрать "Разрешения группы пользователей Windows 2000". Что касается сетевых параметров - нужно, как и для Windows 2003, выбрать "Особые параметры" сети... Рассмотрим теперь простейший вариант терминального клиента. Аппаратные требования к нему таковы. Минимум 486-й процессор с частотой желательно не менее 66 МГц, а лучше Pentium. Оперативная память - не менее 8 Мб для DOSRDP и FRWT, и не менее 16 Мб для WtWare. Мышь для COM-порта или PS/2. Видеоадаптер минимум ISA-шный с 512 Кб видеопамяти, что позволяет получить разрешение экрана от 640х480 (DOSRDP) до 800х600 (FRWT) при 8-битном цвете (256 цветов). Но лучше поставить PCI-ную видеокарту с 1-2 Мб памяти. Нужно заметить, что для "школьной" системы AltLinux Terminal 5 необходима PCI-ная видеокарта с 1 Мб памяти, как минимум. Сетевой адаптер может быть ISA-шным или PCI-ным, если терминалы будут работать с Windows Server, и ТОЛЬКО PCI-ным, если терминалы подключаются к AltLinux Terminal. Что касается необходимой скорости сети, то для 10 терминалов, работающих с Windows Server, может быть достаточно 10-мегабитной сети. Но для системы Altlinux Terminal LTSP 10-мегабитной сети явно недостаточно даже для 10 скромных терминалов (с низким разрешением экрана, без звука). Поэтому, если у вас больше 5-6 терминалов, используйте 100/1000-мегабитную сеть. Компромиссным решением может быть разделение сети из 10-12 машин на две части: одна с 10-мегабитными адаптерами, другая со 100-мегабитными. Обе части подключаются к общему свитчу (коммутатору). Если 10-мегабитная сеть коаксиальная, подключить ее к коммутатору можно через старый хаб, оборудованный BNC-разъемом. Если вам попадется такой хаб - не выбрасывайте его! Он может здорово пригодиться в роли "медиаконвертера". Клиент должен быть оснащен дисководом 3.5", либо маленьким жестким диском (например, твердотельным - карта памяти Compact Flash, подключаемая к порту IDE через переходник). DOSRDP. Желательно использовать DOSRDP XP версии 2.0 или 2.4. Это наиболее неприхотливый клиент, запускающийся из-под ДОС, и работающий с сетью через пакетный драйвер сетевого адаптера. Дистрибутив DOSRDP содержит программу установки SETUP.EXE, работающую под Windows, и позволяющую на основании указанных вами параметров создать готовую загрузочную дискету. Впрочем, можно обойтись и без SETUP. Скопируйте на загрузочную дискету или в отдельный каталог жесткого диска следующие файлы из дистрибутива:
1. пакетный драйвер вашей сетевой платы Также создайте файл RUN.BAT для запуска клиента, в которй включите, как минимум, следующие строки:
MOUSE
![]() Рис.1 Заставка DOSRDP Если все нормально, при запуске RUN.BAT загрузится DOSRPD, который покажет на экране графическую заставку (Рис.1), а затем - удаленный рабочий стол Windows. Скорее всего, этого не произойдет - ведь мы не отредактировали TCP.CFG. В нашем случае он будет иметь такой вид:
[COMMON] Проверьте адреса клиента и сервера, маску сети. Установите разрешение и глубину цвета, соответствующие возможностям ваших видеокарты и монитора. Скажем, для ISA-шной карты стоит начать с разрешения 640x480, а colordepth=4 (16 цветов) или 8 (256 цветов). colordepth=16 есть смысл ставить лишь для PCI-ных видеокарт при использовании системы Windows 2003. Строки keyboard и port менять не надо. FRWT. В нашем компьютерном классе с 10 машинами типа 486DX2-66 с 16 Мб ОЗУ и ISA-шными видеокартами с 512 Кб, клиенты DOSRDP работали недостаточно быстро, курсоры мышей перемещались по экранам с неприятной задержкой. Оказалось, что клиент FRWT 2.01, представляющий из себя загрузочную дискету с урезанным специализированным Linux'ом, обеспечивает заметно лучшее быстродействие. В отличие от DOSRDP, FRWT бесплатен, на него не нужно получать лицензию. Дистрибутив FRWT представляет из себя самораспаковывающийся или обычный образ дискеты 1.44 Мб. После распаковки образа на дискету, в ее корневом каталоге можно увидеть несколько файлов (help, licence, load, ramimage, vmlinuz, syslinux.cfg, term0.cfg, term1.cfg, logo.dis, logo.lss, f8.psf и ldlinux.sys). Нам нужно отредактировать файл term0.cfg. Его строки снабжены комментариями на русском языке, поэтому подробно их рассматривать нет необходимости. FRWT автоматически определяет сетевой адаптер, но если используется адаптер типа NE2000, ему необходимо установить адресс ввода-вывода 300h. Если перемычек на сетевой плате нет, значит адрес задается с помощью утилиты конфигурации адаптера, работающей в DOS. Нужно найти в сети утилиту именно для вашей модели сетевой платы (определяется надписью на ее главной микросхеме, например UM9003, UM9008, W89C904F, RTL8019...).
![]() Рис.2 Заставка FRWT WtWare. FRWT зарекомендовал себя, как весьма удачный терминальный клиент. Однако, и ему свойственны некоторые недостатки. Во-первых, он занимает всю дискету, и при каждом запуске клиента дисковод должен прочитать дискету целиком, что вызывает повышенный износ дисководов и дискет, и занимает значительное время. Во-вторыых, как говорилось ранее, FRWT не поддерживает т.н. "маппинга", или "подключения" дисков терминала к серверу, чтобы пользователи могли работать со своими съемными дисками. Этим требованиям соответствует система WtWare - результат дальнейшего развития FRWT. Однако, WtWare не является бесплатной, ее нужно лицензировать. Но существует бесплатная версия клиента - WtWare Lite. К сожалению, "маппинг" локальных дисков можно включить, по сути, лишь в одной версии WtWare Lite 4.5.11. В отличие от ранее рассмотренных терминальных клиентов, WtWare не загружается с локального гибкого или жесткого диска терминала. WtWare рассчитан на загрузку самого себя через сеть. Это позволяет упростить терминалы. В идеале они вообще могут не иметь никаких дисков, но их сетевые адаптеры должны быть оснащены т.н. PXE BOOTROM - микросхемой ПЗУ, в которую записан код PXE (подробнее о PXE см. Приложение 2). Однако в старых сетевых платах, стоящих, как правило, в 486-х или "Пентиумах", микросхемы BOOT ROM, если они и есть, содержат не PXE, а иной загрузочный код - RPL, предназначенный для популярного в 90-х годах способа сетевой загрузки бездискового компьютера с сервера Novell Netware в сети IPX. Что явно не годится для решения нашей задачи в сети TCP/IP. Однако, выход есть: используются дискеты, на которые записан небольшой (десятки килобайт) код Etherboot, загружающийся вместо кода PXE из ПЗУ сетевого адаптера, и работающий аналогично. Образ дискеты с Etherboot (EB-NET) для вашей модели сетевого адаптера можно загрузить с сайта http://rom-o-matic.net. Но лучше использовать уже созданные универсальные загрузчики Etherboot версий 5.2.2 или 5.4.0, автоматически определяющие достаточно большое количество сетевых адаптеров для шин ISA и PCI. Для подключения к Windows Server следует использовать версию 5.2.2. Для работы с AltLinux Terminal нужна версия 5.4.0. Установка и настройка терминальной системы, основанной на WtWare Lite, осуществляется следующим образом. Прежде всего, нужно запустить на машине с Windows Server серверы DHCP и TFTP. В Windows для этого есть штатные серверные приложения, но, пожалуй, проще использовать стороннюю свободную программу Tftpd32, которая весьма проста в настройке. Ее можно установить на отдельном компьютере, что немного снизит нагрузку на сервер терминалов. Впрочем, при небольшом количестве клиентов целесообразно запускать TFTPD32 на терминальном сервере. Рассмотрим Tftpd32 версии 3.35 с англоязычным интерфейсом. Размер пакета около 600 Кб. Распакуйте его в отдельный каталог сервера, например, C:\Tftpd32. Запустите программу (файл TFTPD32.EXE). В окне программы в строке "Current Directory" укажите путь к корневому каталогу терминального сервера. В этом каталоге будут находиться файлы, доступные терминальным клиентам. Например, C:\Tftpd32\TFTP_DIR. В строке "Server Interface" выберите адрес сетевого адаптера, к которому подключены терминальные клиенты. Ниже располагаются вкладки: "Tftp Server", "DHCP Server" и "Log Viewer". На вкладке "DHCP Server" нужно настроить следующие параметры:
- IP Pool starting address - начальный адрес пространства
IP-адресов, которые DHCP-сервер будет "раздавать" клиентам.
В нашем примере - 192.168.0.2 Затем следует нажать кнопку "Save" справа от вышеописанных строк. Настройки сохранятся в файле TFTPD32.INI в каталоге C:\Tftpd32. Внимание, если файл TFTPD32.INI имеет атрибут "Read Only" (только чтение), настройки не сохранятся. Этот атрибут надо убрать. Внизу окна программы нажмите кнопку "Settings" для осуществления дополнительных настроек. В окне настроек в группе Global Settings поставьте галочки напротив пунктов TFTP Server и DHCP Server, прочие галочки следует убрать. Будут работать только выбранные службы. В группе "DHCP Options" все по умолчанию - проверьте, чтобы все галочки были поставлены, а напротив строки "Bind DHCP to this address" стоял адрес сетевого адаптера, к которому подключены терминалы (в нашем примере 192.168.0.1). В группе "Advanced TFTP Options" нужно поставить галочку напротив пункта "PXE Compatibility" ("совместимость с PXE"). При этом галочка возле пункта "Option negotiation" автоматически уберется. Прочее по умолчанию. В пункте "Bind DHCP to this address", отмеченном галочкой, тоже должен стоять адрес сетевого адаптера, с которым работают терминалы (в нашем случае 192.168.0.1). Теперь перейдем к настройке WtWare Lite. Дистрибутив этой программы обычно содержится в файле с именем wtware.lite.4.5.11.ru.zip размером примерно 10 Мб. В этом архиве в каталоге /wtware.net/lite/4.5.11/ есть файл wtshell.nbi размером 1988096 байт. Его нужно скопировать в корневой каталог сервера TFTP (в нашем примере C:\Tftpd32\TFTP_DIR). Также в корневой каталог надо скопировать подкаталоги CONFIGS и PACKAGES из дистрибутива WtWare Lite. В каталоге CONFIGS содержится файл 00.00.00.00.00.00.wtc. Это пример файла конфигурации для терминального клиента. Система позволяет создать для каждого компьютера-терминала собственный файл конфигурации, имя которого должно соответствовать аппаратному MAC-адресу сетевого адаптера терминала (подробнее о MAC см. Приложение 1). Например, аппаратный адрес ISA-шного адаптера Realtek RTL-8019 52:54:4C:04:86:03. Следовательно, файлу конфигурации терминала с таким адаптером нужно дать имя 52.54.4C.04.86.03.wtc и поместить его в подкаталог /CONFIGS корневого каталога сервера TFTP. Подробное описание настроек конфигурационного файла содержится в документе CONFIG.HTM в подкаталоге DOCS дистрибутива WtWare Lite. Поэтому не будем их подробно рассматривать. Приведем лишь пример файла, который использовался в нашем классе на терминале номер 1:
win2kIP = 192.168.0.1 При подключении клиента K1 к терминальному серверу с адресом 192.168.0.1, на экране появляется окно входа в систему, в котором уже введено имя пользователя user1, который может входить без пароля. Просто нажав кнопку "Ok", пользователь заходит в Windows. Далее в файле указаны настройки мыши и монитора. Мышь без колесика подключена к порту COM1. Разрешение экрана 800х600, глубина цвета (bpp) 8 бит или 28=256 цветов. Строка floppy = on позволяет переназначать дисковод клиента на сервер. Эта возможность включена лишь в версии 4.5.11 WtWare Lite. Подробнее - см. Приложение 3. Строка redraw_delay определяет интервал (в миллисекундах) между перерисовками экрана. Уменьшение периода делает работу более комфортной, но повышает загрузку сети и сервера. 100 мс - это разумный компромисс.
Теперь осталось лишь приготовить загрузочные дискеты
с образами Etherboot 5.2.2. Для этого можно
воспользоваться WinImage или бесплатной программой
RAWRITE.EXE (работает в DOS и Windows 95/98). Запустив
RAWRITE, введите имя файла с образом (например,
eb-net.dsk), а затем букву дисковода (a). Если вы
работаете в Linux, образ Eherboot можно записать на
отформатированную дискету (она должна быть в это время
размонтирована) командой вида:
Начав загружаться с такой дискеты, на экране терминала
увидим надпись:
- горит ли индикатор линка с сетью на сетевой плате Но допустим, адаптер и сеть исправны, DHCP-сервер в сети обнаружен. В таком случае на экране появится что-то вроде: ...Me: 192.168.0.5, Server: 192.168.0.1, Gateway 192.168.0.1
То есть, загрузчик подключился к DHCP-серверу и тот
присвоил терминалу временный адрес 192.168.0.5. После
этого, если сервер TFTP запущен и настроен, на экране
возникнет сообщение:
- Настроить видеокарту и мышь Нам понадобится пункт "Настроить видеокарту и мышь". Нужно выбрать наиболее подходящий драйвер для видеокарты клиента. Поддерживаются многие модели видеокарт. Стоит начать с универсального драйвера VESA. Затем выбирают тип мыши, разрешение экрана и количество цветов. После чего терминал тестирует видеоадаптер в выбранных разрешении и цветности. На экране появляются движущиеся вертикальные цветовые полосы. В конце теста система определяет, сколько секунд заняло его выполнение. Выбирая разные драйверы видеокарты, можно определить, какой из них обеспечивает наименьшее время выполнения теста, то есть, максимальное быстродействие видеосистемы. Найденные оптимальные настройки следует вручную записать в файл конфигурации терминала на сервер. Если такой файл имеется, WtWare, если не нажимать в ходе его запуска клавишу "Del", отобразит на экране приглашение входа в Windows и долгожданный рабочий стол. LTSP. В последнее время многие школы, где использование терминальных систем наиболее целесообразно, принудительно переводятся на свободное программное обеспечение. Помимо школ, многие другие бюджетные и некоммерческие организации также не могут позволить себе покупку лицензии на Windows Server. К счастью, систему графических терминалов можно организовать и на базе Linux. Для этого на сервере Linux должен быть установлен, например, пакет LTSP (Linux Terminal Server Project). На своем опыте автор этой статьи убедился, что многолетний стаж работы с DOS и Windows отнюдь не обеспечивает легкого и безболезненного перехода на т.н. NIX-системы (здорово помогает в этом деле файловый менеджер MC - Midnight Commander, linux-"клон" старых добрых Norton Commander и FAR. Чтобы запустить MC, достаточно ввести в консоли команду "mc"). Те проблемы которые возникают у "виндузятника" при начале работы с Linux, ему приходится, как правило, решать самому, путем проб, ошибок и накопления собственного драгоценного опыта. Ведь "линуксоиды" в большинстве своем отнюдь не горят желанием объяснять "перебежчику из вражьего стана" какие-то "тривиальные" с их точки зрения вещи. Так, например, поставив на сервер вместо Windows 2003 AltLinux Terminal 4, я обнаружил, что те 486-е терминалы, которые хорошо работали с Windows, стартуя с дискет Etherboot 5.2.2, упорно не желают подключаться к AltLinux. Попытки "гуглить" в интернет-поисковике ответ на возникающую ошибку, давали что-то невразумительное, вроде "тарбол чрута". Хочешь послать подальше бывшего "виндузятника", надоедающего вопросами? Ответь ему при случае: "создай тарбол чрута".
Итак, "курение мануалов" оказалось малопродуктивным.
Сетевой загрузчик Etherboot 5.2.2 подключался к машине
AltLinux по сети, через DHCP получал IP-адрес, по TFTP
скачивал терминальный клиент отсюда: Kernel Panic - это критическая системная ошибка в Linux, нечто вроде BSOD ("синего экрана смерти") в Windows. Причина ошибки в том, что клиент не может подключиться к серверу при помощи службы NFS ("сетевая файловая система"). А подключиться ему надо, чтобы сменить свой временный корневой каталог на некий каталог, находящийся на сервере. Как видите, терминальный клиент в Linux работает совсем не так, как в Windows. Он не является изолированной системой, общающейся с сервером через терминальный протокол. У него с сервером общая распределенная сетевая файловая система. Более того, "сервером" (X-сервером, взаимодействующим с консольным оборудованием) является терминал, а мощная машина на базе Linux выступает в роли "клиента". Есть от чего впасть в "когнитивный диссонанс"...
Пытаясь решить проблему с помощью более удачного загрузчика,
я нашел Etherboot 5.4.0. Эта версия EB-NET весьма удачно
эмулирует PXE-код сетевой платы. Поэтому AltLinux отдает
терминалу для загрузки не nbi-образ клиента (nbi.img), а
PXE-образ, хранящийся в файле initrd.gz, который лежит в том
же каталоге, что и nbi.img. С initrd.gz процесс запуска
клиента пошел немного дальше, но кернел паник снова возникла.
На этот раз по причине проблем с сетевым адаптером.
Попробовал загрузить систему со специального CD-диска,
образ которого лежит на сервере в каталоге /opt/ltsp-boot.iso.
Та же проблема. Возникла мысль: похоже, этот клиент просто
не поддерживает ISA-шные сетевые платы. Заменил 486-ю материнскую
плату без PCI на Pentium (поставив те же 16 Мб ОЗУ), установил
в нее PCI-ную 10-мегабитную плату Realtek RTL-8029 (именно
ее, потому что на ней есть сетевой разъем BNC, а у нас
в классе древняя коаксиальная сеть)... Таким образом, терминальная система на базе "школьного" AltLinux Terminal версии 4 или 5 была запущена. Поставив вместо RTL-8029 современный сетевой адаптер Intel с PXE, я обнаружил, что терминал загрузился через PXE без помощи дискеты. Altlinux Terminal действительно поддерживает загрузку бездисковых терминалов "прямо из коробки". Но какой ценой это достигается? Возрастают требования к клиентам. Терминал должен быть оснащен сетевой платой и видеоадаптером для шины PCI. Следовательно, 486-е материнские платы, не оснащенные этой шиной, не годятся. Конечно, это если решать проблему "в лоб". Есть предположение, что, "покопавшись" с файлом initrd.gz, сведущий в Linux человек может усовершенствовать штатный образ клиента, заставив его работать с сетевыми адаптерами наподобие NE-2000, и ISA-видеокартами. Впрочем, скорее всего, радости от такого клиента будет немного, потому что терминальный клиент под Linux работает в целом медленнее клиента под Windows. Но попробовать все же стоит. Также есть смысл испытать и другие Linux-дистрибутивы, оснащенные LTSP, например, K12LTSP (K12Linux на базе Fedora) или EdUbuntu. Итак, в этой статье было показано несколько более или менее простых вариантов реализации терминальной системы, которая позволяет и поныне успешно использовать давно устаревшие компьютеры, выпущенные в 90-х годах. Начиная с 486-х машин с 8 Мб оперативной памяти и ISA-шными сетевыми и видеоадаптерами. Как наверняка уже убедился читатель, для этого не требуется каких-то особенно глубоких познаний и специального образования. Разумеется, далеко не все варианты терминальных систем были описаны. Так, например, не была рассмотрена мощная, но сложная коммерческая система Citrix Metaframe. Хотя для нее и существуют DOS-клиенты. Однако, без Citrix сейчас вполне можно обойтись. В стороне остались RDP-клиенты для Windows 9x и Linux, VNC-клиенты для работы в Linux из Windows, FreeNX, SSH... Просто потому, что для них нужны относительно "мощные" терминалы, вполне способные работать в качестве "полноценных" ПК. Либо требуется глубокое знание UNIX/Linux-систем. Автор же счел необходимым рассмотреть простые в реализации варианты, предъявляющие минимальные требования к аппаратуре "тонких клиентов", которые при отсутствии терминальной системы подвергаются беспощадной, но неоправданной утилизации, что является расточительным и варварским по отношению к природе. В наше время, когда все больше внимания уделяется экологии и энергосбережению, дешевые, долговечные, бесшумные и потребляющие мало энергии терминальные системы особенно актуальны. Тормозит их распространение главным образом недостаток популярной литературы на тему графических терминалов. Хочется надеяться, что данная работа позволит в какой-то степени заполнить этот пробел.
Важное дополнение от 10.11.2011
Антиквар Приложение 1. Некоторые вопросы, касающиеся сетевой аппаратуры
MAC-адрес уникален для каждой сетевой платы и
состоит из шести пар 16-ричных цифр. Узнать его
можно разными способами: Если MAC-адрес, который отображается пакетным драйвером или кодом Etherboot, выглядит наподобие 00:00:00:00:00:00, это говорит о том, что драйвер не подходит, либо адрес и прерывание сетевой карты заданы неверно (возможен конфликт адресов или прерываний, чтобы его разрешить, следует запустить в DOS программу настройки и тестирования этой сетевой платы). Сеть в этом случае будет недоступна. Бывает, что кабель к сетевой плате подключен, а светодиод "Link" ни на ней, ни на хабе не светится. Возможно, неисправен кабель или разъем. Но порой бывает, что в настройках сетевой платы, если она имеет разные сетевые разъемы (RJ-45, BNC, AUI), выбран другой сетевой интерфейс, например, BNC вместо витой пары. Либо жестко выставлен такой режим витой пары (10 или 100 Мбит, полный дуплекс или полудуплекс), который не поддерживается хабом. Еще бывает (на старых хабах), что вы подключили кабель к порту, который называется "Uplink") и предназначен для подключения к хабу верхнего уровня. К такому порту, впрочем, можно подключить сетевую плату - но через "перекрестный", "crossover" (а не "прямой") кусок витой пары. Учитывая, что терминалы бывают весьма древними, возможно, они подключаются к сети через "тонкий коаксиал". Такой сегмент сети в виде общей шины не должен нигде иметь разрывов, а на концах сегмента должны стоять сопротивления - "терминаторы" по 50 Ом. Если измерить в любой точки сети сопротивление между оплеткой и центральной жилой кабеля, оно должно быть близко к 25 Ом (мерить можно и при работающих компьютерах). Это означает, что сегмент сети на коаксиале электрически исправен. Приложение 2. Процесс сетевой загрузки терминального клиента при помощи PXE-кода в ПЗУ сетевой платы PXE (Preboot eXecution Environment, "пиикси") содержат многие современные 100/1000-мегабитные сетевые адаптеры для шины PCI, а также адаптеры, встроенные в материнскую плату. Работает PXE следующим образом: 1. При включении питания, BIOS компьютера-терминала выполняет тест системы, а затем ищет дополнительные ПЗУ, с помощью которых можно произвести загрузку (помимо подпрограмм загрузки с дисковода, CD-диска или винчестера IDE, встроенных в основной BIOS, существуют подпрограммы, записанные в микросхемы ПЗУ, установленные на дополнительные платы, такие как контроллер SCSI или сетевой адаптер). Найдя ПЗУ в сетевом адаптере, BIOS передает ему управление. 2. Код загрузки из ПЗУ сетевого адаптера инициализирует (запускает) сетевой адаптер, и отправляет в сеть широковещательный запрос к DHCP-серверу. Этот сервер служит для автоматической выдачи компьютерам сетевых реквизитов. DHCP назначает терминальному клиенту временный IP-адрес, указывает ему маску сети, адреса шлюза и сервера DNS... 3. Клиент делает запрос к TFTP-серверу. TFTP (Trivial FTP) - упрощенный вариант протокола FTP, задача которого - передать по сети файл с сервера на клиент. Терминал скачивает в свою оперативную память из корневого каталога сервера TFTP файл, в котором содержится образ терминального клиента. Какой файл передавать клиенту - указано в настройках сервера TFTP. 4. Терминал запускает загруженный образ клиента. Клиент должен уметь работать с сетевым адаптером, видеокартой, клавиатурой и мышью терминального клиента. То есть, он должен или автоматически определять это оборудование, или дополнительно считывать файл конфигурации из каталога TFTP-сервера. Если это оборудование работает нормально, клиент подключается к терминальному серверу через протокол RDP, и пользователь видит на экране приглашение входа в систему. Введя имя и пароль, он получает доступ к "рабочему столу" на сервере. Приложение 3. Использование дисководов терминальных клиентов Для того, чтобы работать со своей дискетой, пользователь должен вызвать специальное меню, переместив указатель мыши в нижний правый угол экрана терминала, удерживая при этом левую клавишу Ctrl (см. строку infobox = lctrl в файле настроек клиента WtWare).
![]() Рис. 3. Меню для подключения дискет в WtWare Lite В меню, помимо прочего, присутствует кнопка с надписью "подключить", нажав которую пользователь "монтирует" свою дискету, которая будет видна ему в Windows, как сетевой диск. Перед извлечением дискеты ее нужно таким же способом "размонтировать".
![]() Рис. 4. Дисковод терминала в окне "Мой компьютер"
Чтобы было удобнее работать с дискетой, вставленной в
дисковод терминала, ей следует назначить букву диска. Это
удобно делать в файловом менеджере FAR. Нажав комбинацию
клавиш Alt-F1 или Alt-F2, вызываем в левой или правой панели
список дисков, в котором также присутствует пункт "network".
Выбрав его, увидим примерно такой список: Приложение 4. Лицензирование терминального сервера Windows
К сожалению, терминальный сервер Windows требует приобретать
лицензии на подключаемые к нему терминалы. Чем больше терминалов
предполагается использовать, тем дороже лицензия. Лицензии не
нужны только в том случае, если терминальный сервер будет
использоваться для удаленного администрирования (в этом случае
допускается не более двух терминальных подключений). Терминальный
сервер Windows 2000/2003 напоминает программы, распространяемые
по лицензии shareware. Если терминальная лицензия не приобретена,
система отсчитывает определенное количество дней (Windows 2000 -
90 дней, Windows 2003 - 120), после чего терминалы перестают
работать. Рассказывают, что некоторые "админы", использовавшие
Windows Server неофициально и в некоммерческих целях, и потому
не желавшие покупать какие-то терминальные лицензии, поступали
гениально просто: перед установкой Windows Server они переводили
часы компьютера далеко вперед, например, в 2020-й год. После
того, как все терминалы поработают с сервером, и сервер
выдаст угрожающее сообщение типа... Приложение 5. Решение некоторых проблем с Altlinux Terminal 5.0 Те неискушенные пользователи Linux, которые установили Altlinux Terminal на школьный сервер в качестве готового терминального решения, могут, подобно мне, сталкиваться с некоторыми трудностями, решение которых не "лежит на поверхности", то есть, требует использования консоли. Наверное, стоит рассказать об этих случаях.
Привязка сетевых интерфейсов
Восстановление загрузчика системы Следует добавить, что изменить lilo.conf вы сможете только из-под учетной записи администратора (root-а). Зайти под root-ом в Altliunx Terminal можно только из-под текстовой консоли. То есть, запустите консоль (терминал), в ней укажите команду su, и введите пароль пользователя root. Теперь в этой консоли вы можете делать все без ограничений. Кстати, чтобы посмотреть информацию о разделах диска (узнать, на каком разделе корень файловой системы), введите в консоли команду df. # |