Для большинства систем вполне хватает стандартной конфигурации ядра, однако в ряде случаев оговоренных ниже возникает необходимость переконфигурирования ядра. К этим случаям можно отнести:
· Добавление или удаление периферии (драйверов устройств) а также псевдодрайверов. В случае удаления периферии удалять драйвер устройства из ядра совсем не обязательно, но крайне желательно, т.к. в этом случае ядро будет меньше по обьему и будет работать более эффектино. Прежде чем удалять драйвер устройства убедитесь не зависят ли от него драйвера других устройств проверив файлы в директории /usr/conf/master.d в таблицах зависимости в секции DRIVER_DEPENDENCY. Особое внимание следует обратить на файл core-hpux.
· Изменение системных параметров (tunable parameters). В тех случаях когда система работает с большим количеством пользователей часто возникает необходимость изменения стандартных системных параметров. Эти параметры определяются в секции TUNABLE в файлах /usr/conf/master.d. Большинство из них находится в файле core-hpux.
|
|
· Инсталирование специализированного програмного обеспечения HP (подсистем). Если вы добавляете в систему специализированное програмное обеспечение например поддержку LAN, ATM, FDDI и.т.п в этом случае также требуется модификация ядра.
· Добавление файловых систем отлдичных от HFS.
· Добавление, удаление или модификация swap и (или) dump областей, устройства консоли или корневой файловой системы.
Драйвера по своим возможностям а также по методу доступа и управлению ими можно разделить на три основных типа:
· Символьные драйвера. Работа с этими драйверами происходит в побайтном режиме без использования буферного кэша. К таким драйверам можно отнести драйвера таких устройств как драйвера последовательных портов, терминалов, магнитных лент …
· Блочные драйвера. Этот тип драйверов позволяет проводить обмен блоками данных. Так например обмен с диском происходит фиксироваными блоками (секторами), даже в том случае если идет операция с данными количество которых меньше размера блока всеравно физически будет прочитан или записан один блок. При работе эти драйвера используют системный буферный кэш.
· Драйвера низкого уровня (raw drivers) Этот тип драйверов производит обмен с блочными устройствами напрямую минуя буферный кэш с ситемы.
Кроме драйверов устройств существует множество других драйверов не имеющих непосредственного отношения к периферии компьютера. Такие драйвера называются псевдодрайверами. Вот примеры некоторых из них:
/dev/kmem обеспечивает доступ к физической памяти компьютера
|
|
/dev/mem обеспечивает доступ к виртуальной памяти ядра
/dev/null нулевое устройство. Призаписи в него данные удаляются, а при чтении считывается 0 байт
lvm (Logical Volume Manager) обеспечивает построение и доступ к логическим дискам
Драйвера адресуются старшим номером устройства (major number). Помимо него также существует младший номер (minor number) для адресации одного из клонов драйвера. Например в случае с драйвером диска младший номер может означать номер диска.
$ ls -l /dev/dsk/
total 0
brw-r--r-- 1 root sys 31 0x002000 Jun 10 1996 c0t2d0
brw-r--r-- 1 root sys 31 0x005000 Jun 10 1996 c0t5d0
brw-r--r-- 1 root sys 31 0x006000 Jun 10 1996 c0t6d0
$ ls -l /dev/rdsk/
total 0
crw-r----- 1 root sys 188 0x002000 Jun 10 1996 c0t2d0
crw-r----- 1 root sys 188 0x005000 Jan 3 16:47 c0t5d0
crw-r----- 1 root sys 188 0x006000 Jun 10 1996 c0t6d0
Первая команда выводит файлы блочных дисковых устройств, вторая файлы raw дисковых устройств. Как создаются файлы устройств будет показано чуть позже. Доступ к драйверу осуществляется через специальную структуру данных называемою коммутатором устройств каждый элемент которой содержит указатели на соответствующие функции драйвера (d_open(), d_close(), d_strategy(), d_read(), d_write(), d_ioctl, d_xpoll(), d_intr(), …), так называемые точки входа. Старший номер является указателем на элемент коммутатора устройств. Блочные и символьные устройства имеют свои собственные коммутаторы. Список драйверов можно посмотреть воспользовавшись программой lsdev.
Изменение системных параметров
К одним из основных системных параметров относится параметр MAXUSERS который является макросом на основании которого вычисляются множество других параметров (например nproc вычисляется как 20+8*MAXUSERS). Этот параметр не указывает, как может показаться на первый взгляд на максимальное число пользователей в системе. На системах с небольшим количеством пользователей (рабочие станции) он обычно равен 32, на больших системах (T500) его значение может превышать 200. Перечислим краткий список основных системных параметров:
Параметр | Значение по умолчанию | Описание |
dbc_max_pct | 50 | Максимальный размер буферного кэша в процентах от обьема RAM |
maxdsiz | 67108864 | Максимальный размер сегмента данных |
maxssiz | 8388608 | Максимальный размер стека |
maxtsiz | 67108864 | Максимальный размер сегмента кода |
maxfiles | 60 | Максимальное количество открытых файлов на процесс |
maxuprc | 75 | Максимальное число процессов пользователя |
maxusers | 32 | Макрос через который определяются большинство других параметров |
nfile | 2172 | Максимальное число открытых файлов в системе |
nflock | 200 | Максимальное количество заблокированных файлов |
npty | 60 | Максимальное количество псевдотерминалов в системе |
semmns | 128 | Максимальное количество семафоров |
shmmax | 67108864 | Максимальный обьем разделяемой памяти |
shmmni | 200 | Максимальное количество идентификаторов разделяемой памяти |
shmseg | 120 | Максимальное количество сегментов разделяемой памяти на процесс |
Для изменения системных параметров можно воспользоваться утилитой SAM либо выполнить изменения конфигурационных файлов и пересобрать ядро вручную. При использовании SAM после запуска sam необходимо:
· Открыть меню “SAM Kernel Configuration”
· Выбрать “Configurable parameters”
· Выбрать нужный параметр из списка
· Активировать пункт меню “Actions->Modify Configurable Parameter”
· Ввести новое значения параметра
После выхода из раздела “Configurable parameters” SAM предложит создать новое ядро и перезагрузить систему.