44864

Запуск системы X Window

Доклад

Информатика, кибернетика и программирование

Несколько более успешный но все еще не самый правильный способ выхода в графический режим состоит в выполнении команды xinit. Программа xinit она расположена в каталоге usr X11R6 bin предназначена для запуска сервера системы X Window и хотя бы одной программы-клиента. Если в командной строке не указано какой именно Xсервер запускать xinit ищет в домашнем каталоге пользователя файл . Если такого файла нет xinit по умолчанию выполняет следующий скрипт: X :0 т.

Русский

2013-11-14

24.6 KB

0 чел.

Запуск системы X Window

Запустить X Window можно несколькими способами. Это можно сделать, непосредственно запустив на выполнение подходящий сервер из каталога /usr/X11R6/bin. В результате вы увидите на экране серый прямоугольник с крестиком курсора мыши посередине. Но дальше ничего не произойдёт, поскольку не запущен менеджер окон и ни одной программы-клиента. Поэтому просто нажмите комбинацию клавиш <Ctrl>+<Alt>+<Backspace> для того, чтобы завершить работу X-сервера.

Несколько более успешный (но все еще не самый правильный) способ выхода в графический режим состоит в выполнении команды xinit.

Программа xinit (она расположена в каталоге /usr/X11R6/bin ) предназначена для запуска сервера системы X Window и хотя бы одной программы-клиента.

Если в командной строке не указано, какой именно X-сервер запускать, xinit ищет в домашнем каталоге пользователя файл .xserverrc, чтобы выполнить содержащийся в нем скрипт запуска сервера. Если такого файла нет, xinit по умолчанию выполняет следующий скрипт:

X :0

т. е. запускает программу с именем X на дисплее с номером 0. При этом предполагается, что в одном из каталогов, перечисленных в путях поиска, найдется программа с именем X. Это должна быть ссылка на подходящий сервер. Используя скрипт .xserverrc, удостоверьтесь, что по команде exec в нем запускается существующий X-сервер. В противном случае загрузка будет происходить очень медленно и завершится немедленным выходом.

Если в командной строке запуска xinit не указана клиентская программа, которую надо запускать, программа xinit ищет в домашнем каталоге пользователя файл .xinitrc, чтобы выполнить его как скрипт, запускающий клиентские программы. Если такого файла не существует, xinit по умолчанию выполняет вместо этого скрипта команду:

xterm -geometry +1+1 -n login -display :0

Если вы после установки Linux файл .xinitrc не создан, то запустите команду xinit из командной строки, вы увидите почти пустой рабочий стол с единственным окном терминала. Поскольку менеджера окон нет, вы ничего не можете сделать с этим окном (переместить, изменить размер и т. д.), но вы можете в этом окне запустить другие программы, в том числе менеджер окон. Перейдите, например, в каталог /usr/X11R6/bin и дайте команду fvwm или twm (один из этих оконных менеджеров обычно по умолчанию установлен). После этого вид экрана несколько изменится, вы сможете перемещать окна (обычным способом, захватывая мышкой заголовок окна), а по щелчку левой кнопкой по пустому полю рабочего стола получите выход в меню.

Если остановиться на таком способе вызова графического интерфейса, то каждый раз при его запуске придется повторять одну и ту же последовательность команд. Естественно, что пользователю стоит воспользоваться возможностью создания скрипта .xinitrc для автоматизации этой рутинной работы.

Ниже приведен пример скрипта .xinitrc, который запускает часы, несколько терминалов и оставляет менеджер окон в качестве "последнего" клиента.

#!/bin/sh

xrdb -load $HOME/.Xresources

xsetroot -solid gray &

xclock -g 50x50-0+0 -bw 0 &

xload -g 50x50-50+0 -bw 0 &

xterm -g 80x24+0+0 &

xterm -g 80x24+0-0 &

twm

Программы, запускаемые из .xinitrc, должны запускаться в фоновом режиме, если только они не завершаются немедленно. Иначе эти программы будут препятствовать запуску других программ. Однако одна из запущенных программ (обычно менеджер окон или эмулятор терминала) должна выполняться не в фоновом режиме, а на переднем плане, чтобы работа скрипта не завершалась (завершением работы этой программы пользователь сообщает программе xinit, что закончил работу и что сама программа xinit должна завершиться). В приведенном примере, если менеджер окон правильно сконфигурирован, то для завершения работы в X-сессии достаточно выбрать команду Exit в меню менеджера twm.

Аргументы, заданные в командной строке вызова xinit, позволяют обойти выполнение скриптов .xinitrc и .xserverrc. В командной строке может быть указана альтернативная программа-клиент и/или альтернативный сервер. Клиентская программа должна быть первым аргументом в командной строке вызова xinit. Для того чтобы вызвать конкретный X-сервер, добавьте двойное тире (после указания программы-клиента и ее аргументов), после которого укажите имя нужного сервера.

Имена программы-сервера и программы-клиента должны начинаться со слэша (/) или точки (.). В противном случае они воспринимаются как аргументы, добавляемые в командную строку вызова соответствующей (предыдущей) программы. Таким образом, можно добавлять аргументы (например, задавать цвета фона и текста), не вводя заново всю командную строку.

Если конкретное имя сервера не указано и следом за двойным тире идет двоеточие с последующей цифрой, xinit будет воспринимать это число как номер дисплея вместо предполагаемого по умолчанию нуля. Вообще все следующие за двойным тире аргументы добавляются к командной строке вызова сервера.

Вот несколько примеров командной строки вызова программы xinit.

[user]$ xinit

Этой командой будет запущен сервер, на который указывает ссылка (линк) X, и выполнен пользовательский скрипт .xinitrc, если таковой существует, а иначе просто запущен xterm.

[user]$ xinit -- /usr/X11R6/bin/Xqdss :1

Таким образом, можно запустить какой-то конкретный сервер на альтернативном дисплее.

[user]$ xinit -geometry =80x65+10+10 -fn 8x13 -j -fg white -bg navy

По этой команде будет запущен сервер, на который указывает ссылка X, и запускаемой по умолчанию команде xterm будут переданы аргументы, перечисленные в командной строке. Скрипт .xinitrc будет проигнорирован.

[user]$ xinit -e widgets -- .Xsun -l -c

В этом случае для запуска сервера используется команда .Xsun -l -c, а запускаемому по умолчанию программе-клиенту xterm будет переданы аргументы -e widgets.

Поскольку пользователю-новичку обычно не хватает квалификации для создания собственного варианта скрипта .xinitrc, администраторы сайтов могут помочь им в вызове графического интерфейса, создав общедоступный скрипт, выполняющий эту функцию. Такие скрипты обычно называются x11, xstart, или startx и являются удобным способом создания простого интерфейса для пользователей-новичков. Вот пример простейшего скрипта такого вида:

#!/bin/sh

xinit /usr/local/lib/site.xinitrc -- /usr/X11R6/bin/X bc

При инсталляции некоторых версий Linux создается более сложный вариант скрипта startx, который расположен в каталоге /usr/X11/bin. Для него существует и man-страница, в которой говорится, что этот скрипт создается просто как образец для администраторов сайтов, и предназначен для создания собственных вариантов такого скрипта.

Стандартный вариант скрипта startx сводится к выполнению всего-навсего трех команд:

xauth add $display . $mcookie

xauth add `hostname -f`$display . $mcookie

xinit $clientargs -- $display $serverargs

В конечном итоге, startx вызывает команду xinit, только предварительно формирует нужные значения аргументов командной строки для нее. Первый аргумент - имя файла xinitrc, причем если в домашнем каталоге пользователя есть файл .xinitrc, то берется он (с указанием пути), а если в домашнем каталоге нет такого файла, то берется общесистемный файл /etc/X11/xinit/xinitrc, т. е. "clientargs" = "/etc/X11/xinit/xinitrc".

Аналогично формируется значение переменной serverargs: если существует файл .xserverrc в домашнем каталоге пользователя, то переменная serverargs будет указывать на него. Если такого файла нет, то serverargs укажет на /etc/X11/xinit/xserverrc. Переменной display присваивается значение: 0. Далее в скрипте startx производится анализ аргументов, которые были заданы в командной строке при его вызове (эту часть мы пока не будем детально разбирать, поскольку для начала будем вызывать скрипт без параметров) и, наконец, в конец строки вызова xinit добавляется -auth $HOME/.Xauthority. Таким образом, сразу после установки системы (пока пользователь не создал файлов .xinitrc и .xserverrc в своем домашнем каталоге) будет вызываться в следующем виде:

xinit /etc/X11/xinit/xinitrc -- :0 /etc/X11/xinit/xserverrc -auth $HOME/.Xauthority

Команды xauth и опция -auth $HOME/.Xauthority, передаваемая X-серверу, служат для авторизации пользователя, запускающего графический режим.

Выбор и настройка менеджера окон

Менеджеров окон существует много, и можно организовать выбор менеджера окон на этапе загрузки графического режима. Вот пример, показывающий как можно сделать это с помощью файла .xinitrc:

#!/bin/sh

# $HOME/.xinitrc

usermodmap=$HOME/.Xmodmap

xmodmap $usermodmap

xset s noblank # отключаем хранитель экрана

xset s 300 2 # запуск screensaver-а через 5 мин.

xset m 10 5 # установка ускорения мыши

rxvt -cr green -ls -bg black -fg white -fn 7x14 \ -geometry 80x30+57+0 &

if [ "$1" = "" ] ; then WINMGR=wmaker # по умолчанию WINMGR=wmaker

else WINMGR=$1

fi

$WINMGR

Хотя это и не обязательно, можно сделать этот файл исполняемым с помощью команды

[user]$ chmod +x .xinitrc.

Этот вариант .xinitrc позволяет вам выбрать менеджер окон, попробуйте, например:

[user]$ startx startkde

Если администратор хочет создать одинаковое начальное окружение для всех пользователей, можно сделать так, чтобы по умолчанию для пользователя создавался скрипт .xinitrc, который ссылается на общий стартовый скрипт:

#!/bin/sh

. /usr/local/lib/site.xinitrc

Графическая среда KDE

Существует уже несколько графических сред, как свободно распространяемых, так и коммерческих. Из свободно распространяемых наибольшую известность приобрели KDE и GNOME.

После инсталляции некоторых дистрибутивов Linux по этой команде startx по умолчанию запускается GNOME. Это можно исправить. startx просто вызывает команду xinit с нужными параметрами, одним из которых является файл /etc/X11/xinit/xinitrc (если подобного файла нет в вашем домашнем каталоге). А в файле /etc/X11/xinit/xinitrc производится вызов либо файла Xclients из домашнего каталога пользователя, либо общесистемного файла /etc/X11/xinit/Xclients:

if [ -f $HOME/.Xclients ]; then

exec $HOME/.Xclients

elif [ -f /etc/X11/xinit/Xclients ]; then

exec /etc/X11/xinit/Xclients

Просмотрев, в свою очередь, файл /etc/X11/xinit/Xclients, вы увидите, что выбор графической среды определяется тем, что прописано в файле /etc/sysconfig/desktop.

Если при установке такой файл не был создан, создайте его сами и запишите в него одно слово: KDE (создать такой файл можно командой cat > /etc/sysconfig/desktop ). После перезапуска графической оболочки вы получите желаемый результат: будет запущена графическая оболочка KDE.

Использование менеджера дисплея

Систему X Window можно запускать автоматически при включении компьютера, используя программу, которая называется менеджером дисплея (X Display Manager - xdm ). В этом случае пользователь сразу видит привлекательную графическую среду, и нет необходимости специально запускать графический интерфейс командой startx. При этом сохраняется возможность переключиться в текстовую консоль, набрав <Ctrl>+<Alt>+<F#>, а потом вернуться обратно в графическую среду, используя комбинацию <Ctrl>+<Alt>+<F7>.

Для того, чтобы запускать xdm при загрузке ОС, надо отредактировать файл /etc/inittab. В этом файле имеется строка вида

id:3:initdefault:

определяющая уровень запуска по умолчанию. Замените эту строку строкой следующего вида:

id:5:initdefault:

Такое изменение заставляет Linux при запуске переходить на 5-й уровень. А в конце того же файла /etc/inittab обычно прописана строка

x:5:respawn:/usr/bin/X11/xdm -nodaemon,

которая означает, что на этом уровне запуска должен запускаться менеджер дисплея xdm.

Если вы решили запускать xdm при старте и хотите использовать, например, глубину цвета 24 бита на пиксел вместо применяемой по умолчанию 8 bpp (и ваша видеокарта и монитор поддерживают ее), вы должны изменить файл /etc/X11/xdm/Xservers (в нем всего одна строка) следующим образом:

:0 local /usr/X11R6/bin/X -bpp 24

Если вы установили KDE, то вместо xdm, вероятно, запускается kdm. Например, строка в /etc/inittab, определяющая менеджер дисплея, может иметь вид:

x:5:respawn:/etc/X11/prefdm -nodaemon,

а /etc/X11/prefdm есть ссылка на /usr/bin/kdm

Очень важное примечание:

Имейте в виду, что команда respawn в только что приведенной строке означает, что при попытках перезапуска системы будет происходить перезапуск менеджера дисплея. В частности, нажатие "магической" комбинации <Ctrl>+<Alt>+<Del> будет повторно запускать систему в той же конфигурации. Поэтому если вы после установки xdm будете как-то менять системные настройки и в результате ошибочных действий нарушите хрупкое равновесие системы X Window, вы попадете в очень затруднительную ситуацию. У меня, например, после одного из опытов с редактированием файла /etc/X11/XF86Config экран после загрузки стал черным и дальше компьютер ни на что не реагировал, кроме <Ctrl>+<Alt>+<Del>, а по этой комбинации происходила просто перезагрузка и выход в ту же ситуацию. На этот случай надо помнить, как перевести систему в однопользовательский режим,.


 

А также другие работы, которые могут Вас заинтересовать

38941. Применение лидаров для исследования загрязнения вод 226.5 KB
  Пробы любой воды за исключением воды наивысшей чистоты флуоресцируют. Так называемая синяя флуоресценция воды является источником значительных трудностей при флуоресцентных исследованиях но такая флуоресценция полезна для изучения качества воды с использованием лазерного дистанционного зондирования ЛДЗ. Очищенные сточные воды предприятий целлюлознобумажной промышленности можно контролировать с помощью флуоресцентного метода т. эти воды содержат сульфонат лигнина высокой концентрации.
38942. Лидар для исследования состава атмосферы 59.5 KB
  Лидар для исследования состава атмосферы Литвинов Действие лидаров Л этого типа чаще всего основано на неупругом обратном комбинационном рассеянии ОКР зондирующего лазерного излучения ЛИ молекулами газовых компонент ГК имеющих вынужденные колебательновращательные энергетические переходы при взаимодействии с зондирующим ЛИ. При этом с помощью Л по смещению спектральных линий принимаемого излучения ОКР устанавливается наличие в исследуемом участке атмосферы атм определенных ГК а по интенсивности этих линий концентрация...
38943. Лидар для измерения концентрации озона в атмосфере 34 KB
  Действие лидаров для исследования атмосферы основано на том что лазерное излучение распространяясь в реальной атмосфере оставляет в ней свет вызванный взаимодействием квантов излучения с неоднородностями в атмосфере. Это взаимодействие проявляются в упругими неупругом рассеянии лазерного излучения в атмосфере при котором обрся эхосигналы лаз. рассеяния они несут информацию о сввах и параметрах атмосферы что следует из формулы для пиковой мощности принимаемого эхосигнала: Pи пиковая мощность зандирующего импульса лаз. Зрачка...
38944. Применение лидаров для обнаружения и идентификации нефтяного поверхностного загрязнения вод 564 KB
  Если ЗЛИ имеет соответсвующую длину волны УФ то возникает флюоресценция свечение нефтяного пятна: стрелки 22 а также комбинационное рассеяние КР ЛИ стрелки 33 и на молекулах воды стрелки 44. Жизнеспособность фитопланктона свидетельствует о чистоте воды. Эффект флюоресценции воды можно использовать для индикации сильных органических загрязнений и т. О наличии на поверхности воды нефтяной пленки можно судить и по интенсивности отраженного ЛИ 11.
38945. Определение, назначение, действие, применение и классификация лидаров 244 KB
  Действие лидара основано на таких свойствах лазерного излучения как высокая мощность квазимонохроматичность направленность и малая длительность импульсов и таких физических процессах как упругое молекулярное и упругое аэрозольное рассеяние упругое резонансное и неупругое комбинированное рассеяние флюоресценция и поглощение лазерного излучения при его взаимодействии с атомами молекулами и другими частицами веществ в окружающей среде. При распределении зондированного лазерного излучения ЛИ от передающего устройства лидара в исследуемой...
38946. Типы и характеристики излучения лазеров для лидаров 26.5 KB
  Если в лидаре используется лазер с перестраиваемой частотой или длиной волны зондирующего излучения υи = с λи то лидар можно применять для лазерного химического анализа состава атмосферы Земли на основе эффекта комбинационного рассеяния молекулами химических соединений компонент атмосферы. Лидар с перестраиваемой λи зондирующего лазерного излучения может быть использован для химического анализа атмосферы Земли путем измерения интенсивности после прохождения исследуемой трассы. Поэтому исследуя зависимость интенсивности прошедшего в атмосфере...
38948. Физические процессы взаимодействия лазерного излучения с веществом 558 KB
  Физические процессы взаимодействия лазерного излучения с веществом. Действия лидаров для исследования атмосферы основано: лазерное излучение распространяясь в реальной атмосфере оставляет в ней след вызванный взаимодействием фотонов лазерного излучения с атомами и молекулами газов частицами аэрозолей и неоднородностями атмосферы обусловленными турбулентными вихревыми движениями воздуха. Это взаимодействие прежде всего проявляется в упругом и неупругом рассеянии лазерного излучения в атмосфере при которых в частности образуется...