Введение в ос linux

Вид материалаДокументы

Содержание


Рабочий стол
Pid user pri ni size rss share stat %cpu %mem time command
Подобный материал:
1   ...   4   5   6   7   8   9   10   11   ...   62

Рабочий стол


С появлением универсальных высокоуровневых инструментариев стала обретать плоть идея полного воплощения метафоры "рабочего стола", впервые реализованная в системах семейства MacOS. Смысл рабочего стола в том, чтобы предложить принципиально иной способ взаимодействия человека и компьютера -- способ, основанный на манипуляции единичными именованными объектами. Каталоги превращаются в "папки с документами", причём каждый тип документов можно "открыть" с помощью специального "документатора". Программы превращаются в эдакие поместилища абстрактных функциональностей: "Интернет", "Почта", "Видео" и т. п. Рабочий стол особенно потребен человеку, чья область деятельности далека от компьютерного дела, для кого он -- не вычислительная машина, а инструмент решения отдельных -- типовых и, чаще всего, непрофильных -- задач.

Компьютер так стремительно вошёл "в каждый дом", что давно уже стал бытовым прибором для игр, чтения электронной почты, просмотра WWW, а в последнее время -- музыкальным центром и видеопроигрывателем. Грешно требовать от садящейся за клавиатуру домохозяйки или какого-нибудь оболтуса строгого следования принципам проективной системы. Лучше дать им в руки красивую и сравнительно безопасную игрушку, которая способна удовлетворять бытовые их нужды. Таких игрушек для X11 несколько. Две мощные среды "офисного" плана -- KDE (основанное на Qt переосмысление коммерческой среды CDE) и Gnome (основанная на GTK) -- содержат всё необходимое для деловой работы (включая собственные офисные приложения и средства просмотра WWW). Или, например, среда XFCE (основанная также на GTK) -- крепко сколоченный минималистский вариант CDE, простой и ясный, как выдвижной ящик.

Мефодий выбрал одну из таких игрушек -- KDE, начав с оформления рабочего стола на свой вкус. Когда ему, наконец, наскучило перекрашивать меню и украшать рабочий стол безделушками, он попробовал заняться собственно делом. В примере отображён снимок экрана в один из моментов его работы, когда он попытался воспользоваться для работы с файлами специально разработанной для KDE программой (konqueror, которая служит заодно и броузером) вместо уже привычной ему командной строки. При этом Мефодия насторожило время, которое ему потребовалось на выполнение вполне привычных простейших операций над несколькими файлами и каталогами: для каждого потребовалось отдельное движение мышью, да и в целом всё стало происходить как-то гораздо медленнее, чем обычно, а компьютер то и дело принимался хрустеть жёстким диском.



Работа в KDE

До сей поры Мефодий считал, что его -- не такой уж новый -- компьютер вполне подходит для работы в Linux, и ничто этому утверждению не противоречило. Для того, чтобы проверить, чем же занимается система, он запустил команду top, нажал "M" для того, чтобы посмотреть, какие процессы занимают больше всего памяти и обнаружил довольно неприятную, хотя и вполне терпимую картину:

00:55:08 up 13:20, 13 users, load average: 1,71, 1,87, 0,97

29 processes: 28 sleeping, 1 running, 0 zombie, 0 stopped

CPU states: 60,6% user, 14,6% system, 6,2% nice, 0,0% iowait, 18,4% idle

Mem: 54232k av, 53076k used, 1156k free, 0k shrd, 1628k buff

18032k active, 22620k inactive

Swap: 200772k av, 108288k used, 92484k free 15812k cached


PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND

15410 methody 13 5 9448 8980 8096 S N 0,0 16,5 0:01 kdeinit

15379 methody 9 0 9656 7928 7184 S 0,1 14,6 0:06 kdeinit

15404 methody 9 0 9652 7612 7428 S 0,0 14,0 0:02 kdeinit

15395 methody 9 0 9596 7376 7372 S 0,0 13,6 0:02 kdeinit

15406 methody 9 0 10084 7216 6192 S 0,0 13,3 0:09 konqueror

15397 methody 9 0 8592 7140 6560 S 0,5 13,1 0:03 korgac

15387 methody 9 0 8464 6920 6748 S 0,0 12,7 0:02 kdeinit

15390 methody 9 0 8488 6644 6640 S 0,0 12,2 0:01 kdeinit

15393 methody 9 0 8576 6636 6632 S 0,0 12,2 0:02 kkbswitch

15407 methody 9 0 6864 6164 6064 S 0,0 11,3 0:00 kdeinit

15377 methody 9 0 7592 5844 5440 S 0,0 10,7 0:04 kdeinit

15380 methody 9 0 6564 5736 5624 S 0,0 10,5 0:00 kdeinit

15346 methody 9 0 6652 5028 4744 S 0,1 9,2 0:02 kdeinit

15368 methody 9 0 6864 4972 4972 S 0,0 9,1 0:02 kdeinit

15376 methody 9 0 6164 4504 4504 S 0,0 8,3 0:01 kdeinit

15356 methody 9 0 6608 4436 4432 S 0,0 8,1 0:01 kdeinit

15366 methody 9 0 6008 4436 4436 S 0,0 8,1 0:01 kdeinit

15343 methody 9 0 5248 4388 4156 S 0,1 8,0 0:00 kdeinit

15385 methody 9 0 5412 3984 3876 S 0,0 7,3 0:01 apt-indicator

15341 methody 9 0 4540 3768 3612 S 0,0 6,9 0:00 kdeinit

15338 methody 8 0 2260 1444 1368 S 0,0 2,6 0:00 kdeinit

15411 methody 15 0 1092 1040 844 R 2,3 1,9 0:01 top

15200 methody 9 0 628 520 520 S 0,0 0,9 0:00 xinit

15159 methody 9 0 912 508 508 S 0,0 0,9 0:00 bash

15209 methody 9 0 640 476 472 S 0,0 0,8 0:01 startkde

15185 methody 9 0 564 408 408 S 0,0 0,7 0:00 startx

15364 methody 9 0 304 276 256 S 0,0 0,5 0:00 kwrapper

Загрузка компьютера во время работы KDE

Первое, что бросилось ему в глаза -- множество процессов, запущенных явно средой KDE (кому же ещё может принадлежать программа kdeinit?), Мефодий подсчитал число процессов, начинающихся на "kde" (ps ax | grep kde | grep -v grep | wc -l) -- их оказалось 17 штук. Каждый из этих процессов затребовал у системы по три-четыре мегабайта памяти (поле SIZE), из которых полтора-два (поле RSS) немедленно использовал. Не так уж и много, если бы такая программа запускалась одна. Но две дюжины kdeinit вполне способны израсходовать всю оперативную память компьютера, если объём его физической памяти равен, как на компьютере Мефодия, 64 мегабайта (из них порядка девяти мегабайтов заняло ядро -- эта память не отображается в поле mem -- и сколько-то уходит на сам X-сервер и прочие программы, не принадлежащие Мефодию).

Впрочем, даже в таком состоянии Linux продолжает работать довольно-таки бодро. Дело в том, что большинство из этих процессов (по словам top -- все, коме одного, самого top, об это говорит строка "1 running") в данный момент неактивны (sleeping). Большинство полученных ими ресурсов система давно уже отправила в область подкачки (swap) на диске. Затруднения начнутся, если несколько неактивных программ "проснутся": система начнёт поднимать из swap их ресурсы, а чтобы для них хватило места в оперативной памяти -- откачивать туда память других программ (отсюда и неожиданная дисковая активность, на которую Мефодий обратил внимание). Хуже всего, если для работы всех активных процессов одновременно не хватает места, тогда процесс откачки-закачки будет отнимать большую часть процессорного времени, для полезных задач его просто не останется. Определить такую ситуацию (она называется "дребезг", threshing), можно по высоким значениям полей system, а ещё по постоянно ненулевым значениям в полях si и so команды vmstat.

procs memory swap io system cpu

r b w swpd free buff cache si so bi bo in cs us sy id

0 1 0 106092 1352 1168 19380 14 10 265 33 127 407 14 4 82

Вывод команды vmstat

Этот опыт произвёл отрицательное впечатление на Мефодия, и он решил устраивать себе графическое рабочее место на основании какого-нибудь менее громоздкого инструмента. Впрочем, провести границу, где заканчиваются обязанности диспетчера окон и начинаются ухищрения рабочего стола, очень трудно. Видимо, разумно считать, что диспетчер окон делается средой рабочего стола, когда появляются пользовательские приложения с использованием его особых свойств и его библиотек. Если главная задача рабочего места -- запускать xterm, то достотачен даже очень старый диспетчер окон twm (он есть в составе X.Org, но редко используется по причине некрасивого, "плоского" оформления интерфейса). Вместо него можно использовать диспетчеры, подобные IceWM или OpenBox, обладающие большими возможностями, и при этом нетребовательными к ресурсам. Диспетчеры в среде XFCE, WindowMaker или fwvm, предоставляют множество возможностей, дополнительных модулей и мелких удобств. Они гибко настраиваются, не "вытягивая" за собой ресурсоёмких программных структур, используемых в KDE или Gnome.

Поразмыслив, Мефодий решил остановиться на WindowMaker: система меню показалась ему приятной для глаз, а способ быстрого запуска -- удобным. Кроме того, его позабавили "активные иконки", шевелящиеся в момент запуска соответствующего приложения.



(1) Такие системы -- не теоретическая выдумка, они вполне реальны и многочисленны. Например, графический интерфейс совершенно ни к чему на сервере, который занимается только маршрутизацией пакетов в сети.

(2) Каким пользователям разрешено запускать и останавливать графическую систему -- зависит от профиля системы.

(3) В некоторых вариантах X Window System экран по умолчанию раскрашивается в чёрно-белую крапинку.

(4) Эта функция не будет работать, если в конфигурационном файле X-сервера включён параметр "DontVTSwitch".

(5) Кроме этого файла в домашнем каталоге пользователя можно обнаружить файл .Xresources, очень похожий по функции и аналогичный по синтаксису. Разница между этими файлами в использовании: .Xresources загружается только в процессе исполнения xinitrc при помощи утилиты xrdb, а .Xdefaults в дополнение к этому читается автоматически средствами libX11.

(6) Не путать с диспетчером экранов, который занимается совсем другим: подменяет утилиту login.

Конец формы