Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Введение в системное администрирование Unix. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
1 Мб
Скачать
Можно писать 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]