Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Введение в системное администрирование Unix. Учебное пособие
.pdf
Можно писать X-овые программы, используя библиотеку Xlib. Многие
так и пишут, хотя это весьма тяжело - уж больно невысок уровень Xlib'а.
В помощь программистам было создано несколько toolkit'ов - библиотек
более высокого уровня, в которых реализованы различные widget'ы.
Widget - непереводимый термин X Window. Склеен из двух слов Window и Gadget (приспособление), является графическим объектом с
привязанными к нему свойствами и реакциями на действия
пользователя. Примеры widgetow: "кнопка", "менюшка", "окошко с
текстом", "линейка прокрутки",...
Известны следующие toolkit'ы:
Xaw - Anthena Widgets. Очень черно-белый, очень плоский, весьма
небогатый. Зато - бесплатный. Посмотрите, как выглядят программы
xterm, xedit, xman. Они сделанны на Xaw.
xview - Набор библиотек и объектов, использованных в реализации
набора пользовательских утилит Sun-овской версии X Window - "Open
Windows". Весьма симпатично. Круглые кнопки, "шприцы-иголки"
(замечательная вещь!), очень хорошо продуманный интерфейс
пользователя, в том числе активно используемая трех-кнопочная мышь.
Исходные тексты библиотек xview открыты, предоставляются
бесплатно. Однако набор DeskSet - 15 пользовательских утилит
входящих в OpenWindows, сделанный на библиотеке xview, SunSoft готов
предоставить только за плату. В бинарном виде - весьма дешево ($100).
В исходных текстах - весьма дорого ($200K)
Motif - Библиотека поставляются организацией OSF за не совсем
маленькую плату. Исходные тексты библиотек недоступны, либо
чрезмерно дороги. Кнопки - квадратные, да и вообще Motif'овские
приложения до безобразия напоминают MS Windows (что, IMHO,
является серьезным преступлением)
В борьбе BSD и Unix V победил, как известно, System V, а в войне
круглых и квадратных кнопок выиграл Motif.
Конфигурирование X Window
В Linux используется X11 в реализации XFree86. Чтобы его
Введение в системное администрирование UnixМ.Е. Мошков
41

сконфигурировать, выполните команду xf86config
Запуск X Window
На некоторых машинах он сам запускается. А также иногда удается
запустить его вручную командами: startx и/или openwin
Solaris:
1. Установите переменные окружения:
OPENWINHOME=/usr/openwin export OPENWINHOME
LD_LIBRARY_PATH=/usr/openwin/lib export LD_LIBRARY_PATH
PATH=/usr/openwin/bin:$PATH export PATH
XAPPLERESDIR=/usr/openwin/lib/app-defaults export XAPPLERESDIR
2. Запустите X Window командой
openwin
"Нормальные" Unix'ы:
1. Установите переменные окружения:
PATH=/usr/bin/X11:$PATH
XAPPLERESDIR=/usr/lib/X11/app-defaults
2. Запустите X Window командой
startx
"Ненормальные" Unix'ы (Unixware).
Когда регистрируете пользователя, ответьте Yes на вопрос "Хотите
графический DeskTop". Тогда после login'а X Window будет запускаться
автоматически. Если вы прозевали, и ответили No, то никаким
осмысленным способом запустить X Window для себя вам не удастся.
Настройки пользовательского окружения X Window
Введение в системное администрирование UnixМ.Е. Мошков
42

При наличии пользовательских настроечных файлов, лежащих в
домашнем каталоге пользователя, используются они. Если их нет,
используются стандартные, общественные, обычно лежащие в каталоге
/usr/lib/X11 или /usr/openwin/lib
Персональные и общественные пользовательские настройки хранятся в
файлах:
$HOME/.Xdefaults
$HOME/.OWdefaults
/usr/lib/X11/Xdefaults
/usr/openwin/lib/Xdefaults
/usr/openwin/lib/app-defaults/*
После любых исправлений файл с ресурсами необходимо перезачитать:"
xrdb -merge .Xdefaults
Окружение (desktop) - т.е. программы, которые стартуют автоматически
при запуске X Window находится в файлах:
Solaris:
$HOME/.openwin-init
/usr/openwin/lib/openwin-init
"Нормальнные" X windows:
$HOME/.xinitrc
/usr/lib/X11/xinit/xinitrc
Настройки window-manager'a - т.е. - поведение окон, менюшки
пользователя, раскладка команд на клавиши мышки, ...
Solaris:
$HOME/.openwin-menu
$HOME/.openwin-menu-*
/usr/openwin/lib/openwin-menu
/usr/openwin/lib/openwin-menu-*
Введение в системное администрирование UnixМ.Е. Мошков
43

Linux
$HOME/.fvwmrc
/usr/lib/X11/fvwm/system.fvwmrc
Введение в системное администрирование UnixМ.Е. Мошков
44

Начальная загрузка операционной системы
В данной лекции описана начальная загрузка операционной системы,
ВООТ-процедура, процесс INIT, внутренняя структура файловой
системы unix, специальные файлы, создание специальных файлов и т.д.
Boot-процедура
Boot, bootstrapping - слова, обозначающие сейчас "Загрузить/пнуть,
процесс начальной загрузки", на самом деле произошли из английской
фразы "Pull itself up by its own boot straps" (Поднять себя за шнурки
собственных ботинок)
Начинается все с Boot-prom'a - небольшой программы, которая хранится
в нестираемой памяти компьютера и начинает выполняться сразу после
включения.
Естественно, boot-prom умеет делать многое: форматировать диски,
инсталлировать операционную систему, запускать тесты hardware.
Однако главное его предназначение - найти на диске и запустить на
выполнение файл /unix - ядро операционной системы. И своего
собственного разума на это ему обычно не хватает, поэтому он в первую
очередь загружает с жесткого диска "загрузчика операционной системы",
а уж тот делает все остальное.
SUN
Boot-prom загружает "BOOT BLOCKS" - 1-ю ПРОГРАММУ
НАЧАЛЬНОЙ ЗАГРУЗКИ. "boot-blocks" расположены в 1-15 секторах
раздела, содержащего корневую файловую систему "/". Обычно корневая
файловая система располагается на разделе номер 0.
"Boot- blocks" можно записать на корневой раздел загрузочного диска
(обычно это внутренний диск со SCSI-номером 3) командой installboot.
Для этого выполняется что-нибудь такое:
installboot /dev/rdsk/c0t3d0s0
Введение в системное администрирование UnixМ.Е. Мошков
45

Boot-blocks "умеет читать" формат файловой системы unix - ufs . Он
находит на корневой файловой системе файл "/ufsboot" - 2-Ю
ПРОГРАММУ НАЧАЛЬНОЙ ЗАГРУЗКИ - и загружает ее.
/ufsboot находит ядро /kernel/unix и загружает его.
Ядро Unix загружается в оперативную память. Затем подключает
дополнительные загружаемые модули с драверами устройств. Как
только ядро "набирает" достаточное количество драверов, чтобы
самостоятельно смонтировать корневую файловую систему, оно тут же
это и делает, после чего начинает действовать самостоятельно, не
используя кода начальных загрузчиков.
Перехват в boot-prompt:
STOP+A
Загрузка в single user:
bo: boot -s
Motorola 922
Boot-prom загружает с диска ЗАГРУЗЧИК - файл /stand/boot,
Загрузчик загружает ядро /stand/unix
Поскольку boot-prom не в состоянии вместить кода для работы со
стандартной unix'овской файловой системой, файлы unix и boot лежат в
отдельном разделе жесткого диска - разделе /stand. На нем создана
"ОЧЕНЬ ПРОСТАЯ ФАЙЛОВАЯ СИСТЕМА" bfs (Boot File System),
чтобы boot-prom'у было полегче найти и считать с диска загрузочные
файлы.
Перехват в boot-prompt:
После того как на консоли появится сообщение: "Idle MPU: none" нажать
клавишу ПРОБЕЛ
Загрузка в single user:
Введение в системное администрирование UnixМ.Е. Мошков
46

Во время начальной загрузки на несколько секунд появляется
приглашение: "Press _что-то_to enter system_maintence. Нажать требуемую
клавишу
Linux
BIOS загружает блок начальной загрузки активного раздела.
Он грузит загрузчик LILO (LInux LOader). Lilo загружает файл /vmlinuz
Параметры начальной загрузки записываются в файле /etc/lilo.conf После
любых изменений в этом файле необходимо выполнить команду
lilo
Перехват в Lilo-prompt:
Left_ALT сразу после появления сообщения "Lilo ..."
Загрузка в single user:
Lilo: linux root=/dev/hda2 single
Загрузка в еще более single user:
Lilo: linux init=/bin/sh
mount -n -o remount /dev/hda2 /
insmod de4x5
ifconfig eth0 195.232.171.30
route add -net 195.232.171.0 gw 195.232.171.30
insmod nfs
HP-UX
В ПЗУ HP 9000 проживает "PDC" - "Processor Dependent Code" - чтоб
поговорить с ним, надо нажать клавишу ESC в первые секунды
загрузки.
Введение в системное администрирование UnixМ.Е. Мошков
47

На загрузочном диске есть Boot-раздел формата LIF (линейная файловая
система) В LIF-томе 4 "файла"
ISL - "операционная" программа
HPUX - собственно загрузчик ядра
AUTOBOOT - текстовый файл, в котором написано имя ядра по
умолчанию
Итак: PDS вызывает ISL командой
bo scsi.6.0 isl
ISL загружает ядро командой
hpux /stand/vmunix
Перехват в PDC-prompt:
Нажать ESC в первые 10 секунд
Загрузка в single user:
PDC> bo pri isl
ISL> hpux -is /stand/vmunix
HP-UX: GSP/MP - удаленный доступ к консоли
Плата для внешнего управления аппаратурой и доступа к консоли:
GSP - Guardian Service Processor - в старых (до 2003) серверах
MP - Management Processor - в Itanium-серверах
предопределенный администраторский логин:
Admin/Admin
предопределенный IP:
GSP - 192.0.0.192/0.0.0.0
Введение в системное администрирование UnixМ.Е. Мошков
48

MP - 192.168.1.1/0.0.0.0
############ как подключиться к MP с unix-хоста:
route add 192.0.0.192 {my.own.ip.addres}
ping 192.0.0.192
arp -a | grep 192.0.0.192
arp -s 192.0.0.192 {GSP:ether:net:addres}
telnet 192.0.0.192
MP-команды
^E CF - перехват управления на себя (из RO в RW)
co - COnsole (переход из console в MP-prompt - ^B)
vfp - Virtual Front Panel (^Q,ma - возврат в главное меню)
cm - Command Menu
cl - Console Log viewer
sl - Show chassis Log
he - HElp menu
x - eXit
Процесс init
Ядро инициализирует себя и после этого запускает процесс init. А
init - все остальные процессы, программы, которые необходимы для
нормального функционирования операционной системы.
Все дальнейшие действия в системе определяются этим процессом. Все,
что нужно делать init -у, определяет специальная таблица.
Процесс init всегда находится на каком-либо "УРОВНЕ
ВЫПОЛНЕНИЯ". Уровень выполнения определяет состояние и
поведение всей системы. Уровень обозначается цифрой (или буквой)
0,1,2,3,4,5,6,s,S
0 - prom монитор - Полный останов системы;
1, s, S - single user mode. Однопользовательский режим;
2 - многопользовательский режим без NFS-сервера;
3 - многопользовательский режим с NFS-сервером;
Введение в системное администрирование UnixМ.Е. Мошков
49

6 - перезагрузка;
Примерный фрагмент управляющей таблицы /etc/inittab
bchk::sysinit:/etc/bcheckrc/dev/console 2>&1
brc::sysinit:/etc/brc > /dev/console 2>&1
is:3:initdefault:
rc:12345:wait:/etc/rc > /dev/console 2>&1
r0:0:wait:/etc/rc0 > /dev/console 2>&1
r2:23:wait:/etc/rc2 > /dev/console 2>&1
r3:3:wait:/etc/rc3 > /dev/console 2>&1
pf:12345:powerfail:/etc/powerfail > /dev/console 2>&1
co:12345:respawn:/etc/sysmonitor console console
t1:23:respawn:/etc/sysmonitor tty01 9600
t2:23:off:/etc/sysmonitor tty02 9600
Формат таблицы:
ИМЯ:Уровни_выполнения:вид_действия:запускаемая команда
ИМЯ: - просто имя строчки - они все должны быть разными
вид_действия:
sysinit запустить один раз после начальной загрузки;
на соответствующем уровне выполнения:
wait - запустить один раз и дожидаться, пока не окончится;
respawn - запустить параллельно, а если окончится,
перезапускать снова;
off - ничего не делать (просто игнорировать эту строку).
Если посмотреть внимательно на таблицу, то можно разобраться, что же
в действительности происходит при загрузке и откуда берутся все эти
загадочные сообщения.
Сперва init запускает процессы, которые "sysinit"
Отработав все строки "sysinit" уровня, init идет все дальше по
Введение в системное администрирование UnixМ.Е. Мошков
50
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
