Ключевые слова: Х-терминал, linux, LTSP, Linux Terminal Server Project, терминальный linux-сервер, бездисковая станция, ПК без жесткого диска, использование старых компьютеров, diskless workstation, thin client, asplinux, использование Linux в офисе, X-terminal
Наверное, самый распространенный офисный пакет для Linux – это OpenOffice (сайт http://www.openoffice.org/). Базируясь на исходном коде StarOffice, он разрабатывается сообществом свободных программистов при спонсорской поддержке Sun Microsystems. Этот программный продукт распространяется под двумя лицензионными соглашениями, одно из которых GNU/GPL подразумевает его свободное использование, а, стало быть, это самое дешевое решение для организации офисной работы. Проект OpenOffice включает в себя 5 офисных программ:
OpenOffice Writer – текстовый редактор, аналог Microsoft Word;
OpenOffice Calc – табличный процессор, аналог Microsoft Excel;
OpenOffice Math – средство для создания математических формул;
OpenOffice Impress – пакет для создания презентаций;
OpenOffice Draw – программа для создания рисунков (векторный графический редактор).
OpenOffice может также похвастаться своей кросплатформенностью, так как его версии доступны для пользователей Linux, Windows, Solaris, Macintosh и FreeBSD, а доступность его исходного кода позволяет выполнить компиляцию и для большего числа операционных систем.Внешний вид окна OpenOffice представлен на рис. 7.17.
Рис. 7.17. Внешний вид офисного пакета OpenOffice
Конечно, OpenOffice тоже имеет свои недостатки: во-первых, он достаточно ресурсоемкое приложение. Так, OpenOffice Writer с открытым пустым текстовым документом занимает в виртуальной памяти 140 Мбайт, по-моему многовато для текстового редактора, а если включить поддержку орфографии у большого количества языков, то требования к памяти станут просто огромными. Совместимость с форматами Microsoft Office находится на очень высоком уровне, но все же имеются значительные недочеты. Запуск OpenOffice, открытие и сохранение документов происходят довольно медленно, и особенно это заметно на больших электронных таблицах, содержащих сотни листов. Стабильность приложений OpenOffice хоть и находится на серьезном уровне, но все же недостаточна для того, чтобы утверждать, что это на 100% устойчивый программный продукт.
Исходя из практического опыта работы в OpenOffice после использования Microsoft Office, можно утверждать, что практически все функции пакета от Microsoft можно выполнить средствами пакета OpenOffice. Хотя придется привыкнуть к новым горячим клавишам, расположению элементов меню и типу параметров в диалоговых окнах. У рядового пользователя на освоение функций работы в OpenOffice уходит примерно неделя.
При работе на Х-терминале у пакета OpenOffice есть целый ряд преимуществ по сравнению с использованием его на традиционном персональном компьютере. Во-первых, требовательность к системным ресурсам подразумевает наличие у пользовательского компьютера как минимум 256 Мбайт оперативной памяти. Во-вторых, пользователю нужен быстрый процессор для комфортной работы с OpenOffice, что значительно увеличивает стоимость персонального компьютера. В Х-терминальной модели, сервер и так имеет большой объем оперативной памяти и мощный процессор, следовательно требования OpenOffice для него обычны. К тому же, сервер обслуживает многопользовательскую среду, а стало быть использование памяти у него намного эффективнее. Рассмотрим данное утверждение более детально.
Если бы программы с внешнего носителя информации просто переписывалась бы в оперативную память и выполнялась там, то мы имели бы дело с очень простой и нерациональной схемой использования ресурсов компьютера. На самом деле программы в памяти компьютера состоят из программного кода, данных и стека. Если посмотреть на эти составляющие более внимательно, то можно заметить, что во-первых, данные подразделяются на изменяемые (переменные) и не изменяемые(константы). Стек, служит для хранения временных данных, таких, как адреса возврата из подпрограмм, локальных переменных, аргументов функций, а, следовательно, его содержимое уникально для каждого экземпляра программы. Код программы никогда не изменяется во время выполнения, а потому достаточно иметь один экземпляр кода в памяти, для всех запущенных программ. В погоне за эффективным использованием оперативной памяти компьютеров, создатели операционных систем пошли еще дальше, и вместо использования статически скомпилированных программ, они придумали способ повторного использования кода путем создания разделяемых библиотек. В состав динамических разделяемых библиотек выносятся наиболее часто используемые функции, чтобы все программы, работающие в операционной системе, могли использовать их во время выполнения, а не включать их код в тело программы на стадии компиляции.
На примере офисного пакете OpenOffice давайте рассмотрим эффективность использования приложений в Х-терминальной среде. Ниже приводится результат работы команды top на реальной Х-терминальной системе, упорядоченный по используемой оперативной памяти (комбинация клавиш Shift + M):
$ top
15:04:00 up 94 days, 5:42, 3 users, load average: 0,13, 0,30, 0,50
188 processes: 166 sleeping, 22 running, 0 zombie, 0 stopped
CPU states: 1,5% user 0,5% system 0,0% nice 0,0% iowait 97,8% idle
Mem: 1030108k av, 966692k used, 63416k free, 0k shrd, 45172k buff
669796k actv, 29804k in_d, 18808k in_c
Swap: 2048248k av, 398488k used, 1649760k free 295592k cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
9690 ira 15 0 146M 144M 39216 S 0,3 14,3 2:12 0 soffice.bin
8589 ula 15 0 94404 87M 28880 S 0,1 8,6 0:25 0 soffice.bin
2451 sasha 15 0 84028 76M 3016 S 0,0 7,5 104:34 0 galeon-bin
9769 serg 15 0 72700 63M 31816 S 0,3 6,2 0:12 0 soffice.bin
30548 sasha 15 0 88288 63M 27960 S 0,3 6,2 3:28 0 soffice.bin
9624 nata 15 0 76056 61M 25368 S 0,0 6,1 0:11 0 soffice.bin
6768 mikola 15 0 89932 56M 28600 R 0,0 5,5 0:52 0 soffice.bin
6319 disp 15 0 31484 18M 3520 S 0,0 1,8 0:04 0 galeon-bin
9741 ira 15 0 18632 15M 9780 S 0,0 1,5 0:03 0 galeon-bin
8302 mikola 15 0 14120 13M 7108 S 0,0 1,3 0:02 0 evolution-mail
9799 ira 15 0 14440 12M 10432 S 0,0 1,2 0:00 0 ark
8120 mikola 15 0 12508 10M 8504 S 0,0 1,0 0:04 0 sim
8296 mikola 15 0 9584 9552 4744 S 0,0 0,9 0:01 0 evolution
9809 ira 15 0 9024 9024 7468 S 0,0 0,8 0:00 0 kdeinit
9739 disp 15 0 9160 8092 5888 S 0,0 0,7 0:13 0 sol
9807 ira 15 0 7736 7724 6488 S 0,0 0,7 0:00 0 kdeinit
9804 ira 15 0 6904 6900 5688 S 0,0 0,6 0:00 0 kdeinit
9839 ira 15 0 7156 6852 5880 S 0,0 0,6 0:00 0 kdeinit
8318 mikola 15 0 6832 6776 3628 S 0,0 0,6 0:00 0 evolution-addre
9801 ira 15 0 6564 6560 5392 S 0,0 0,6 0:00 0 kdeinit
7491 ula 15 0 3228 3184 1996 S 0,0 0,3 0:00 0 wombat
10330 root 15 0 4520 3148 448 S 0,0 0,3 0:14 0 cupsd
6912 mikola 15 0 3184 3032 960 R 0,0 0,2 0:00 0 xterm
854 xfs 15 0 6148 3004 436 S 0,0 0,2 3:38 0 xfs
8441 mikola 15 0 2928 2924 1732 S 0,0 0,2 0:00 0 wombat
...
Так как нас интересуют только процессы soffice.bin (OpenOffice), то заметим, что в системе их запущено 6. Столбец “SIZE” указывает на общий размер программы в памяти, то есть “код”+”данные”+”стек”. Исходя из этого показателя, только на запуск офисного пакета нужна память в размере: 146 + 92 + 71 + 86 + 74 + 88 = 557 Мбайт. Но, если взять во внимание значение столбца “SHARE”, которое равняется объему памяти в разделяемых динамических библиотеках, то реальная память под офисный пакет OpenOffice сократится до 557 - ( 38 + 28 + 31 + 27 + 25 + 28 ) = 380 Мбайт. Итого, имеем экономию оперативной памяти почти 32%, а с увеличением количества пользователей эта экономия стает еще более ощутимой.
OpenOffice я бы назвал главным офисным приложением, так как без текстового редактора Writer и табличного процессора Calc, очень сложно работать. И в моей практике был случай, когда после 4-х месяцев исправной работы на Х-терминалах эти приложения стали, мягко выражаясь, “безбожно тормозить”. Пользователи начали жаловаться, что они ждут открытия файла по несколько минут, и что печать на принтере тоже осуществляется очень медленно. Начав анализировать сложившуюся ситуацию, я стал замечать, что, действительно, на запуск любого из приложений OpenOffice версии 1.1.0. тратится больше 15 секунд, а также при открытии и печати файлов возникает пауза в 1-2 минуты, в результате которой загрузка процессора держится на отметке в 100%, причем занят процессор именно процессом soffice.bin. В поисках возможного решения данной проблемы я обнаружил, что не у всех пользователей возникли такие неприятности. Так, пользователи, которые недавно стали работать на Х-терминалах, подобных временных задержек не испытывали, а опираясь на эту информацию я сделал вывод, что в процессе работы пользователя приложения OpenOffice собирают какую-то информацию, на анализ которой потом и тратится процессорное время, что, безусловно, мешает нормальной работе пользователей. Исходя из такой предпосылки, я начал сравнивать содержимое каталогов ~/.openoffice у пользователей, у которых были временные задержки, и тех у которых их не было. В конфигурационных файлах принципиальных отличий мне найти не удалось, а вот размер файла ~/.openoffice/user/psprint/pspfontcache у некоторых пользователей меня приятно порадовал, так как достигал 8 Мбайт. Наблюдалась интересная закономерность: чем больше был этот файл, тем медленнее была работа приложений OpenOffice. Открыв содержимое этого файла, я увидел нечто похожее на:
FontCacheDirectory:1077711251:/usr/X11R6/lib/X11/fonts/Type1
File:l047036t.pfa
1;1051256346;71
Luxi Mono
1088236480;;2;8;5;1;1;0;0;0;0;0;0;0;0;l047036t.afm
Luxi Mono
1088236480;;2;8;5;1;1;0;0;0;0;0;0;0;0;l047036t.afm
Luxi Mono
1088236480;;2;8;5;1;1;0;0;0;0;0;0;0;0;l047036t.afm
Luxi Mono
1088236480;;2;8;5;1;1;0;0;0;0;0;0;0;0;l047036t.afm
...
Судя по названию и содержимому файла, это своеобразных кэш шрифтов, которые использовались в документах OpenOffice и установлены в системе. Не долго думая, я переместил этот файл в другую временную папку и снова запустил OpenOffice. Офисный пакет запустился практически мгновенно, также быстро он открывал файлы и печатал их на принтере. Самое интересное то, что файл ~/.openoffice/user/psprint/pspfontcache был создан снова, но теперь он был значительно скромнее в размерах, всего навсего 13,5 Кбайт. Из главы "Администрирование сети Х-терминалов" вы узнаете, как настроить систему на автоматическое удаление этого файла при увеличении его размера.