Ключевые слова: Х-терминал, linux, LTSP, Linux Terminal Server Project, терминальный linux-сервер, бездисковая станция, ПК без жесткого диска, использование старых компьютеров, diskless workstation, thin client, asplinux, использование Linux в офисе, X-terminal
Производительность Х-терминала в первую очередь зависит от его видеосистемы, то есть связки видеокарта + монитор. Процессор в расчет практически не берется, так как в отрисовывании окошек на Х-терминале он принимает очень скромную роль. Объем оперативной памяти также не особо критичен (все, что больше 8 Мбайт, должно подойти).
С монитором ситуация довольно простая. Он должен обеспечивать приличное качество изображения в приемлемой для пользователя разрешающей способности и частоте обновления экрана (последнее важно лишь для мониторов на электронно-лучевой трубке). Конечно, при прочих равных, чем больше разрешение монитора, тем лучше. Рациональный минимум – 800х600.
С видеокартой все обстоит несколько сложнее. Во-первых, скорость вывода на экран графической информации должна быть высокой, а соответственно про ISA-карты можно забыть сразу, а AGP-картам отдавать преимущество перед картами с интерфейсом PCI. Как уже было упомянуто в этой книге, лучше отдать предпочтение видеоадаптерам, которые поддерживаются проектом XFree86 версий 4.х, чем совместимым с версией 3.3.6. И даже если вам в руки попала AGP-карта поддерживаемая в XFree86 версии 4.х и у неё достаточно видеопамяти, поверьте, радоваться еще рано. Приведу реальный пример из жизни. Настраивал я как-то Х-терминал с такой конфигурацией: PII-233/RAM 32Mb/AGP Matrox G100 4Mb/PCI rtl8139 100 Mbit. Вроде бы очень даже достойная для терминала конфигурация, я бы даже сказал излишняя. О видеокарте Matrox на Х-терминале вообще можно только мечтать, так как видеоадаптеры производства этой фирмы издавна славятся своим качеством работы в 2D и хорошей поддержкой в XFree. Быстрая графическая шина AGP и достаточный объем видеопамяти (4 Мб) теоретически должны были обеспечить наилучшее быстродействие, а на практике было впечатление, что у данного Х-терминала включились тормоза, причем особенно это было заметно при выполнении прокрутки в документах OpenOffice (рабочая область при прорисовке несколько раз мигала). Интересно, что установка этого видеоадаптера в еще более быстрый Х-терминал (Celeron 1 GHz), никак не обозначилась на скорости его работы. Я начал разбираться с параметрами, которые были доступны драйверу mga (команда man mga). Справочная информация оказалась очень содержательной и я стал подбирать параметры для тонкой настройки этого драйвера. Так, например, отключение аппаратного ускорения Option "NoAccel" вызвало жуткое замедление работы графической подсистемы. Помог в решении проблемы скорости только один параметр Option "ShadowFB", но неожиданно появилась новая проблема: после щелчка “мышкой” с экрана исчезало изображение курсора. Если “мышкой” подвигать, то курсор снова появлялся. Если быть кратким, то день возни с параметрами видеокарты так ничего и не дал. Единственное, что меня тогда насторожило, так это то, что иногда Х-терминал вообще не запускался. На экране появлялось искаженное изображение и компьютер “зависал”. Как позже выяснилось, данный видеоадаптер был с аппаратным дефектом, что и сказывалось на его работоспособности. У вас может сложиться мнение, что данная история не несет в себе никакой поучительной нагрузки, так как видеокарта в итоге оказалась бракованная. Но не следует забывать, что Х-терминалы используют, как правило, устаревшее оборудования, а стало быть нужно всегда ожидать, что рано или поздно вам придется столкнуться с трудноуловимыми аппаратными сбоями.
Если в Х-терминале используется сервер XFree версии 3.3.6, то пользователя подстерегает еще одна проблема: отсутствие поддержки сглаженных шрифтов этим сервером. В принципе это не так уж и страшно, но кроме этого я столкнулся также с проблемами запуска приложений KDE, а именно: корректного отображения на экране шрифтов и значительного замедления отображения на экране окон этих программных продуктов. Подозреваю, что данная проблема скрыта за использованием устаревшего Х-сервера, но в некоторых случаях это единственный выход заставить Х-терминал работать.
В документации, посвященной настройки клиентов LTSP, вы часто можете встретить утверждение, что лучше отказаться от использования серверов версии 3.3.6, а также что практически любую видеокарту можно запустить с драйвером vesa или на худой конец с драйвером vga. Работать в vesa режиме конечно можно, но комфортными такие условия явно не назовешь. Во-первых, частота регенерации экрана в 60 Гц подойдет только пользователям жидкокристаллических мониторов (правда, иногда мне удавалось заставить работать Х-терминал в VESA-режиме и при больших частотах), а во-вторых, отсутствие полноценной аппаратной поддержки значительно замедлит процесс отображения графической информации на экране Х-терминала. Более того, в процессе формирования изображения клиента большую роль будет играть центральный процессор сервера (он вынужден будет заполнять дополнительными вычислениями отсутствующую аппаратную акселерацию), что в конечном итоге негативно скажется на работе остальных пользователей.
Шрифты, точнее сказать их поддержка – это пожалуй самое слабое место X-Windows. Даже имеющаяся сейчас полная поддержка шрифтов типа TrueType все равно находится на уровень ниже чем в операционных системах Windows и MacOS. Тут и повышенные требования к самим шрифтам, и стабильность сервера шрифтов (xfs) и даже отображение их на экране, в общем работать можно, но хотелось, чтобы все было лучше. Конечно, не будем спорить о преимуществах и недостатках метода сглаживания экранных шрифтов в операционной системе Linux, это дело привычки, но, на мой взгляд, в Windows они выглядят немного лучше. Проблемы со шрифтами не чужды и Х-терминалам. Помню был случай, когда я настраивал Х-терминал с видеокартой S3 Trio64 (86C764X) 1Mб PCI. Несмотря на то, что для работы с этой картой в проекте LTSP был рекомендован как сервер XF86_S3 так и XFree86 я решил опробовать ее на новом Х-сервере версии 4.2.99. На удивление сервер стартовал без проблем, и на экране я увидел графическую заставку ввода имени пользователя и пароля в режиме монитора 800х600 85 Гц. Я сначала обрадовался, но потом понял что сделал это рано и зря. На экране постоянно появлялись артефакты (искажения изображения), что сводило все мои усилия на нет. Ответным действием было запрещение акселерации (в параметрах файла /opt/ltsp/i386/etc/lts.conf):
X_DEVICE_OPTION_01 = "noaccel"
После перезагрузки Х-терминала артефакты исчезли, но значительно замедлилась работа графической системы терминала. Обратившись к файлу справки Х-сервера, я узнал, что аппаратная акселерация состоит из многих составляющих, и путем экспериментов было выяснено, что этими компонентами для данной s3-карты являются:
X_DEVICE_OPTION_01 = "XaaNoSolidFillRect"
X_DEVICE_OPTION_02 = "XaaNoScreenToScreenCopy"
X_DEVICE_OPTION_03 = "XaaNoColor8x8PatternFillRect"
К моему величайшему сожалению, применение только этих трех ограничений вызвало практически равносильное падение производительности Х-терминала, как в случае с X_DEVICE_OPTION_01 = "noaccel". Интересно другое, что при работе этой видеокарты на обычном компьютере с операционной системой Linux подобных артефактов не наблюдалось. По видимому, ошибка была скрыта в алгоритме работы с удаленным Х-сервером.
Благо у меня в запасе была еще одна видеокарта производства все того же фирмы S3 Trio64V+ (86C765) 2Mб PCI. После установки ее в Х-терминал без всяких дополнительных опций никаких артефактов замечено не было. И не смотря на это, мне все же пришлось перевести ее в режим работы с сервером XF86_S3, так как при работе с XFree86 наблюдалось нарушение кернинга шрифтов (неправильное отображение межбуквенных расстояний), когда одни буквы "налазили" на соседние, а пробел между словами иногда вообще нельзя было отличить.
Если делать вывод по особенностям работы видеосистемы Х-терминалов, то следует отметить, что ее скорость - главная составляющая хорошей работы пользователя Х-терминала, поэтому у Х-терминала два главных компонента: видеокарта и монитор.