Содержание

Ключевые слова: Х-терминал, linux, LTSP, Linux Terminal Server Project, терминальный linux-сервер, бездисковая станция, ПК без жесткого диска, использование старых компьютеров, diskless workstation, thin client, asplinux, использование Linux в офисе, X-terminal

OpenOffice

Наверное, самый распространенный офисный пакет для 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 Кбайт. Из главы "Администрирование сети Х-терминалов" вы узнаете, как настроить систему на автоматическое удаление этого файла при увеличении его размера.

Пока интересно, читаем дальше!

Авторское право © Сеник Николай, 2004-2006