Руководство системного администратора • третье издание { h h y с п п т п р



Pdf просмотр
страница22/82
Дата12.11.2016
Размер7.94 Mb.
Просмотров13129
Скачиваний0
ТипРуководство
1   ...   18   19   20   21   22   23   24   25   ...   82
% logger роса"
Строка, содержащая фразу "lest message" (тестовое сообщение, должна быть записана в файл /tmp/evi.log. Если этого не произошло, значит, файла не существует, установлены неверные права доступа к нему или демону syslogd не был послан сигнал отбоя. В первых версиях демона syslogd имеется константа NLOGS- В ней определяется общее количество действий, которое может быть задано в конфигурационном файле. Обычно она устанавливается равной 20. Если превысить это число, демон syslogd будет игнорировать лишние действия и просто отбрасывать регистрационные сообщения, которые посылаются ему, В более поздних версиях демона есть константа MAXUNAMES I также равная 20). ограничивающая количество пользователей, которые могут быть адресатами сообщения. При вызове демона syslogd с флагом -d ("debug", те. отладка) он выдает таблицу средств, уровней и действий, заданных в файле syslog.conf. Каждое входящее сообщение также выводится на экран вместе с информацией о том, как оно обрабатывается. Вот несколько строк из такой таблицы ООО СО О ОС Х 4 6 6 Н Н 4 НИМ НИХ Х Х Х Х Х Х Т Х Х Х Х Х Х Х Х Х Х Х Х Х ХО ООО ОС ООО ООО ООО ООО ООО О UNUSED: В этой таблице столбцы соответствуют средствам, а строки — действиям. Показанные значения — это уровни приоритета во внутреннем представлении х означает отсутствие уровня. Если в таблице есть строки с признаком UNUSED и без указания действия, то число адресатов все еше не превышает значения константы NLOGS. Если таких строк нет, обязательно проверьте, не превышен ли лимит. Для этого нужно просмотреть последнюю запись файла syslog.conf с помошью команды logger. Строки с признаком UNUSED и именем файла означают, что соответствующий журнальный файл не создан. Очень осторожно подходите к вопросу вывода регистрационной информации на системную консоль, /dev/console. Если консоль — это старый терминал VT100 и кто-то случайно нажмет на нем клавиши , вывод
244
Чость I. Основы ОДАЛИНИСТрИрОВОНИЯ
на консоль прекратится. Все вызовы системы Syslog будут заблокированы, и система начнет работать очень медленно. Хороший способ проверки подобной ситуации — послать регистрационное сообщение на консоль с помощью команды logger. Если команда зависает, нужно найти консоль-виновницу, нажать — и пересмотреть свою политику регистрации Вывод регистрационных сообщений на консоль опасен еще и тем, что при возникновении серьезной проблемы поток сообщений "парализует" консоль именно тогда, когда она больше всего нужна. Использование функций Syslog в сценариях Библиотечные функции openlogO. svslogO и closelogO позволяют программам обращаться к системе Syslog. Существуют версии этих функций для языков Си. Ниже мы рассмотрим лишь программирование сценариев. Чтобы импортировать определения библиотечных функций, нужно включить в начало сценария следующую строку u s e S y s : : S y s l o g ; Функция) инициализирует систему регистрации, передавая ей заданное имя средства openlog(идентификатор, опциирегистрации, средство
Сообщения регистрируются с указанными опциями и начинаются с идентификационной строки, переданной в первом аргументе. Если функция openlogQ не используется, то по умолчанию идентификационная строка равна текущему имени пользователя, в качестве опций задается пустая строка, а именем средства становится строка "user". Список возможных опций приведен в табл. 11.8.
Тоблицо 11.8. Опции регистроции для функции openlogQ Опция Нозначение p i d Включать идентификатор текущего процесса в каждое регистрационное сообщение г d e l a y Подключаться к демону syslogd немедленно (не ждать, пока сообщение будет доставлено) cons Посьихать сообщения на системную консоль, если демон syslogd недоступен n o w a i t Не вызывать функцию wait() для дочерних процессов, созданных с помощью функции fork() для записи сообщений на консоль К примеру, вызов функции openlogO может выглядеть так o p e n l o g ( " a d m i n s c r i p c " , " p i d , c o n s " , "daemon"); Библиотечная функция syslogO посылает сообщение демону syslogd. который регистрирует его с заданным приоритетом s y s l o g ( приоритет, сообщение, ...) ;
В журнальном файле к сообщению добавляются дата, время, имя компьютера и строка идентификации, заданная в функции openlogO. После
Глово 11. Сисгемо Syslog и журвольные фойлы
245
аргумента сообщение могут идти другие параметры, а формат сообшения напоминает спецификацию формата функции printf(). например s y s l o q ( " i n f o " , " D e l i v e r y t o '%s' f a i l e d a f t e r a t t e m p t s . " ,
$ u s e r , $ n A t t e m p t s ) ; Если есть спецификатор %m, то он заменяется сообщением об ошибке, номер которого извлекается из переменной еггпо (в ней хранится код самого последнего сообщения об ошибке UNIX). Строка приоритета вида "уровен^средство" задает уровень серьезности и название средства. Если функция не была вызвана и строка идентификации не задана явно, то функция также проверяет, выглядит ли второй аргумент как стандартное сообщение об ошибке UNIX, например a d m i n s c r i p t : User "nobody" n o t f o u n d i n / e t c / p a s s w d f i l e . Если проверка прошла успешно, часть строки перед двоеточием тайно принимается в качестве идентификационной строки. Эта удобная (хотя и недокументированная) особенность делает вызов функции ненужным. Тем не менее, не следует от этого отказываться, так как лучше задать имя средства один разв функции, чем постоянно повторять его в тексте программы. Функция закрывает файл регистрации. c l o s e l o g ( ) ; Ее нужно вызывать, если требуется повторно открыть файл с другими опциями. Хорошим стилем также считается вызов функции closelogO "Р" завершении работы программы. Приведем полный пример сценария u s e S y s : : S y s l o g ; o p e n l o g ( " a d m i n s c r i p t " , " p i d , c o n s " , " u s e r " ) ; s y s l o g ( " i n f o " , " T h o s e w h o m t h e g o d s w o u l d d e s t r o y , c h e y f i r s t t e a c h B a s i c " ) г c l o s e l o g ( ) ; Этот сценарии выдает сообшения следующего вида
Dec 28 2 2 : 5 6 : 2 4 m o e t . c o l o r a d o . e d u a d m i n s c r i p t [ 1 9 1 ] : Those whom t h e gods would d e s t r o y , t h e y f i r s t t e a c h B a s i c .
11 „6. Поиск полезной информации в журнальных файлах Система Syslog прекрасно подходит для сортировки и маршрутизации сообщений, нов результате все равно получается большой набор журнальных файлов. Они могут содержать много важной информации, носе бывает не так-то просто найти. Необходимо дополнительное программное обеспечение для анализа журнальных файлов и поискав них нужных сообщений. В данном сегменте рынка предлагается много бесплатных продуктов, и большинство из них работает примерно одинаково они сканируют недавние записи журнального файла, сравнивают их с регулярными выражениями из базы данных и определенным образом обрабатывают важные сообшения. Некоторые программы направляют пользователю отчет по электронной почте. Различия между программами проявляются в степени гибкости и размере баз данных с шаблонами.
246
Чость I. Основы одминиорировопий
Двумя наиболее распространенными программами обработки журнальных файлов являются утилиты swatch "Годна Аткинза (Todd Atkins) и logcheck
Крейга Роуленда (Craig Rowland). Первая из них доступна по адресу fip://ftp.stanford.edu/general/securily-ioo!s/sv/alcl"i/ а вторая — на узле hnp://www.psionic.com/abaciis/logcheck Утилита swatch — это сценарий, работающий по указаниям, оставленным в конфигурационном файле. Синтаксис JTOTO файла достаточно гибок, так как позволяет выполнять все существующие в языке Perl операции сравнения с шаблонами. Утилита swatch может обработать конфигурационный файл за один вызов, но обычно она выполняется автономно, отслеживая новые сообщения по мере их поступления. Недостатком является то, что конфигурационный файл, по сути, нужно создавать с нуля. Утилита не знает об особенностях работы системы и о том, какие регистрационные сообщения в ней генерируются. Утилита logcheck — это более простои сценарий интерпретатора sit. В дистрибутив входит также программа на языке С, которая помогает утилите logcheck запоминать свое текущее положение в журнальном файле. Благодаря этому у сообщения меньше шансов пройти незамеченным на этапе начальной загрузки или перезагрузки. Утилита может запускаться периодически с помощью демона сгоп, а не выполняться постоянно. С утилитой logcheck поставляются базы данных с шаблонами для нескольких версий UNIX. Даже если в самой утилите нет особой надобности, полезно просмотреть эти базы данных, так как в них могут содержаться очень интересные и полезные шаблоны. Недостаток обеих утилит состоит в том. что зараз они обрабатывают только один журнальный файл Если система Syslog направляет сообщения сразу в несколько файлов, нужно дублировать некоторые из них в каком-то центральном файле, который часто обнуляется, а затем передавать этот файл на последующую обработку одному из сценариев. Это проще, чем организовывать сложную сеть сценариев, управляющих несколькими журнальными файлами. Независимо оттого, какая система используется для сканирования журнальных файлов, есть ряд моментов, которые нужно проверить, чтобы в случае необходимости немедленно проинформировать системного администратора. Большинство сообщений, связанных с безопасностью, должно просматриваться немедленно. Важно отслеживать неудачные попытки регистрации. равно как вызовы команд su и sudo, чтобы предотвратить возможный взлом системы, пока еще не поздно. Если кто-то просто забыл или неправильно набрал пароль (как чаше всего бьгвает), то появление оперативной подсказки произведет хорошее впечатление и повысит репутацию системного администратора. Сообщения о нехватке места на диске должны помечаться и немедленно обрабатываться. Когда диск переполнен, работать на нем невозможно Многократно повторяемые сообщения заслуживают внимания, хотя бы ради профилактики.
Глово 11. Сисгемо Syslog и журвольные фойлы
247

Драйверы и ядро
UNIX-систему можно разбить натри основных уровня аппаратные средства ядро операционной системы пользовательские программы. Ядро скрывает доступ к аппаратным средствам системы благодаря абстрактному высокоуровневому интерфейсу программирования. Оно отвечает за реализацию многих концепций, которые пользователи и программы пользовательского уровня принимают как нечто само собой разумеющееся. Например, на базе аппаратных возможностей низкого уровня ядро реализует следующие элементы операционной системы UNIX: процессы (защита адресных пространств, разделение времени и ресурсоь процессора сигналы и семафоры виртуальную память (выгрузка, подкачка, отображение виртуальных адресов в физической памяти файловую систему (файлы, каталоги, пространство имен межзадачное взаимодействие (каналы и сетевые соединения. Ядро содержит драйверы устройств, которые управляют отдельными элементами аппаратного уровня остальная часть ядра в основном не зависит от внешних устройств. Взаимосвязь ядра и драйверов устройств аналогична связи между ядром и процессами пользовательского уровня. Когда процесс просит ядро прочитать первые 64 байта файла /ete/passwd. ядро транслирует эту просьбу в команду драйвера устройства, например "выбрать блок 3348 из устройства 3" Драйвер представляет эту команду в виде последовательности двоичных кодов, которые посылаются в управляющие регистры устройства. Ь
Чость I Основы ОДЛЛИНистрировония
Ядро написано преимущественно на языке С, но для низкоуровневой обработки частично использовался язык ассемблера. Много лет назад объектный код ядра U N I X имел довольно умеренные размеры (обычно гораздо меньше половины мегабайта. За последние годы на уровне ядра были реализованы сетевые и многопотоковые функции, а стоимость микросхем памяти сильно упала, поэтому теперь ядро занимает от 400 Кбайт до более чем 15 Мбайт.
12.1. Типы ядер
т
Ш
Все системы позволяют пользователю предоставить ядр' явную информацию о том, какие аппаратные средства присутствуют в системе. Некоторые ядра могут самостоятельно искать устройства. В Solaris ядро почти полностью является модульными может загружать драйверы устройств по мере необходимости. Ненужно сообщать системе заранее, какие устройства присутствуют, так как компания разработала очень четкую аппаратную архитектуру (сравнимую с архитектурой персональных компьютеров. Когда ядро обнаруживает новое устройство, подключенное к системе, оно ищет и загружает модуль соответствующего драйвера. В большинстве случаев данный механизм работает без сбоев. Как ив, в H P - U X поддерживается относительно небольшой н четко определенный круг аппаратных устройств. Как правило, система самостоятельно находит устройства безо собою вмешательства пользователя. В общем случае во FreeBSD и других системах на этапе компиляции ядра нужно явио указывать, какие устройства могут быть найдены в системе. Иногда следует также задать, где именно подключено устройство. Подобную информацию часто бывает трудно получить, так как производители персональных компьютеров не всегда ее предоставляют Приходится снимать корпус и самостоятельно находить ответы на вопросы наподобие следующего Какой микропроцессорный набор установлен на моей плате"
Linux находится посредине между Solaris и системами. Как и
I-гее BSD, Linux страдает от работы в среде персональных компьютеров, где очень сложно определить точный состав аппаратных устройств в системе. Ядро Linux также можно сконфигурировать вручную, сообщив ему заранее об имеющихся устройствах, в результате чего размер ядра получится очень большим. С другой стороны, допускается конфигурация в стнле Solaris, когда драйверы загружаются по мере необходимости. Поддержка модулей в Linux ие столь универсальна, как в Solaris, но п основном это связано с недостатками архитектуры персональных компьютеров. В табл. 12.1 указано местоположение каталога, в котором выполняется построение ядра, и стандартное имя инсталлированного ядра в каждой из четырех тестовых систем.
Тобпицо 12.1. Местоположение ядер в тестовых системах Система
Катопог для построения ядро Ядро
Solaris
-
/kcrnel/unix
HP-UX
/stand
/stand/vmunix
Linux
/usr/erc/linux
/vmlinuz или /boot/vmlinuz
FreeBSD
/usr/sre/sys
/kernel Слова 12. Дройверы и ядро
249

12.2. Зачем нужно конфигурировать ядро При инсталляции системы создается базовое ядро, которое рассчитано на работу практически в любой аппаратной среде. В это ядро входит множество драйверов устройств и дополнительных пакетов. Имеет смысл переконфигурировать его, чтобы адаптировать к конкретной системе удалить модули, которые никогда не будут использоваться, и отключить ненужные опции. Незадействова[ пше компоненты ядра не влияют на работу системы, однако занимают драгоценную память-
Современные ядра лучше справляются с выгрузкой ненужных драйверов, чем их предшественники, но большинство опций по умолчанию включено. В наши дни заниматься переконфигурированием ядра для повышения эффективности его работы уже не так актуально, как раньше, но. тем не менее, это хорошая привычка.
Еше одна причина, по которой может потребоваться переконфигурировать ядро, заключается в необходимости добавить поддержку нового типа устройства (те. нового драйвера. Файл драйвера нельзя просто записать в каталог ядра его нужно интегрировать в структуры данных и таблицы ядра. В некоторых системах для этого следует добавить в конфигурационные файлы ядра сведения о новом устройстве, те. перестроить ядро заново. В других системах требуется выполнить специальную программу, которая сама внесет необходимые изменения.
[\/| Инструкции по добавлению нового драйвера приведены в параграфе 12-8.
В ряде систем реализована концепция загружаемого драйвера устройства, которая в большинстве случаев подразумевает, что новый код можно загружать в ядро в процессе его работы Однако это опасная процедура, не всегда приводящая к нужным результатам. Компилировать ядро не так уж сложно. Сложнее восстановить его работу, если что-то было сделано не так.
12.3. Конфигурирование ядра в Solaris На этапе загрузки ядро Solaris опрашивает системную шину на предмет наличия устройств и инициализирует драйвер для каждого найденного устройства. Ядро поддерживает концепцию загружаемых модулей и загружает код только для тех устройств, которые реально присутствуют (если не поступило других указаний. Благодаря средствам автоматического конфигурирования в Solans редко возникает необходимость создавать собственное ядро. В идеальном мире ядро
Solaris правильно идентифицировало бы свою аппаратную сред в 100% случаев. К сожалению, нестандартные или просто дефектные устройства (либо драйверы ОС Solaris) могут превратить процедуру автоконфигурирования в источник нескончаемых мучений. Учитывая сказанное, давайте рассмотрим, как конфигурировать ядро
Solaris на случай, если это когда-нибудь понадобится Область построения ядра Чтобы процедура загрузки драйверов по запросу работала правильно, в
Solaris принята специальная организация каталогов. Система ожидает, что в
250
Чость I. Основы одминистрировония
определенных местах файловой системы находятся нужные каталоги, в которых содержатся модули заданного гипа:
• /kernel — модули, общие для компьютеров с одинаковым набором инструкций процессора р I a I fo г m / имя г и am форм ы kc г и el — модули, специфичные для конкретного гипа компьютера, например Ultra Enteiprise;
• /platform/имя_класса_устройста/\хгж\ — модули, специфичные для конкретного класса аппаратных устройств, например для всех машин семейства "sun4u";
• /usr/kernel — аналогичен каталогу /kernel. Определить имя платформы и имя класса устройств можно с помощью команд uname -i и unamc -ш соответственно. Рассмотрим пример
% u n a m e х
SIJKW, U l t . r a - E n t e r p r i s e к uname -m sun4u Когда система Solaris загружается, она просматривает следующую последовательность каталогов
' p l a t f o r m / имя платформы k e r n e l : / k e r n e l : / u s r / k e r n e l пытаясь нийтп ядро. В первую очередь ищутся файлы с именем nnix, а затем — genunix. Второе имя обозначает платформно-независичую часть базового ядра. В каждом из перечисленных каталогов может содержаться несколько стандартных подкаталогов табл. 12.2). Чтобы избежать ненужной детализации. мы в дальнейшем будем ссылаться на обобщенный каталог K E R N E L , означающий любой каталог ядра
Тоблицо 12.2. Подкотологи •отопого /KERNEL в Soloris Подкаталог Содержимое, a r v Загружаемые объектные файлы для драйверов устройств и файлы конфигурации, содержащие адреса всех устройств t r i s c Загружаемые объектные файлы для рахтачных подпрограмм ядра
CpL Процессорные модули для машин UltraSPARC s i r r j o a Модули STREAMS ьрагс9 разрядное ядро i s Модули ядра, связанные с файловыми системами exec Модули для расшифровки форматов исполняемых файлов s c h e d Модули планирования процессов s y s Загружаемые сисчсмные функции q e n u n i x Стандартное платформно-незанисимос ядро
LiIllX Базовое 1шатформно-зависимое ядро Обычно нет необходимости менять файлы в зтих каталогах, если только не выполняется инсталляция нового драйвера. Единственным исключением могут быть файлы с расширением conf в каталоге KERNEL/drv. в которых Слова 12. Дройверы и ядро
2 5 1
содержатся параметры конфигурации конкретных устройств. Но даже их нужно менять только тогда, когда этого требует производитель устройства. Конф игу р и ров ан и е ядра посредством файла Файл /etc/system в Solans является главным конфигурационным файлом ядра. Директивы и переменные, которые могут появляться в этом файле, перечислены в табл. 12.3. Переменным нужно назначать значения с помошью директивы s e t . Таблица 12.3. Директивы и переменные, используемые в фойле /etc/system Имя Тип Назначение r o o t f s
D Задает тип файловой системы корневого раздела r o o t d e v
D Задает местоположение корневого раздела f o r c e l o a d
D Задает драйверы (модули, которые должны быть загружены e x c l u d e
D Задает модули, которые ненужно загружать moddir
D Задает альтернативное местоположение модулей s e t
D Залает переменные настройки ядра (например, maxusers) m a x u s e r s
V Определяет размеры таблиц и ряд других параметров p t _ c n t
V Задает число доступных псевдотерминалов max n p r o c V Задает максимальное число процессов maxuprc
V Задает максимальное число пользовательских процессов
D — директива, V — переменная. Система обращается к файлу /etc/system вовремя начальной загрузки, поэтому модифицировать его нужно крайне осторожно, иначе система не сможет загрузиться. С помощью команды boot -а можно задать путь к резервной копии файла, если она была создана (если ее нет, а имеющаяся версия не работает, укажите /dev/null). Пример файла Рассмотрим образец файла /etc/system для простого ядра roctfs:ufs rootdev:/sbus@l,f8000000/e5p@G,800000/sde3, 0:a Эти строки говорят о том, что корневая файловая система будет иметь тип UFS ( U N I X File System — файловая система UNIX) и располагаться в разделе sd3a. Синтаксис, используемый для задания устройства, содержащего корневую файловую систему, идентичен синтаксису, применяемому в программе мониторинга орепргош системы Sun. Для каждой платформы он свой, поэтому обратитесь к имеющейся документации или проследите символические ссылки в каталоге /dev. tnodair: / p l a c f o r m / S U N W , U l t r a - E n i : e r p r i s e / k e r n e l : / p l a t C o r r c / s u n 4 u / k e r n e l :
/ k e r n e l : / u s r / k e r n e l Данная строка (перенос был сделан, так как она не умещалась иа странице) задает путь поиска загружаемых модулей. Эта запись рекомендуется
252
Чость I. Основы одминистрировония
на странице руководства kernel, но она не задана по умолчанию, поэтому ее нужно установить самостоятельно. e x c l u d e : s y s / s h m s y s f o r c e l o a d : d r v / s u p e r p l o t t e r Первая строка исключает из ядра подсистему совместного использования памяти, что позволяет немного уменьшить его размер (на самом деле это плохая идея, так как система может начать работать неправильно. Вторая строка задает загрузку драйвера "суперграфопостроителя". s e t m a x u s e r s = 6 4 Эта строка обеспечивает настройку размеров таблиц ядра на поддержку одновременной работы х пользователей. Отладка конфигурации Поскольку Solaris динамически формирует системную среду, отладка сбойной машины может оказаться сложным делом. К счастью, в этой системе предусмотрены средства, позволяющие отобразить текущую конфигурацию компьютера. Команда priconf выводит на экран сведения, относящиеся к обшей конфигурации машины, включая ее тип. номер модели, объем памяти и данные о сконфигурированных аппаратных средствах. Строки, которые описывают устройства (точнее, нх драйверы, оформлены таким образом, что информация о периферийных устройствах отображается в виде дерева. Команда sysdef — это улучшенная версия команды prtconf. помимо обычной информации она также выдает список драйверов псевдоустройств, настраиваемых параметров ядра и имен загруженных модулей. Если модифицируется стандартное ядро важного компьютера, не забывайте добавить копию выходных данных команды sysdef в файлы документации поэтому компьютеру. Информацию о динамически загружаемых модулях можно пол\чить с помошью команды modinfo. Подобным образом в Solaris загружаются драйверы устройств, драйверы файловых систем и модули STREAMS. Не удивляйтесь, если в выводе команды modinfo будет содержаться свыше пятидесяти позиций. Дополнительная информация приводится в параграфе. Построение ядро HP-UX В HP-UX применяется старый подход к построению ядра все драйверы включаются водно большое ядро. Имеется также сложный и запуганный конфигурационный файл. К счастью, администрапганая утилита SAM позволяет существенно упростить весь проиесс. Настоятельно рекомендуем начать осваивать процедуру построения ядра именно с этой утилиты. Ее графический интерфейс прост достаточно выбрать команду вменю, и ядро будет построено. Единственный недостаток заключается в том, что нужно быть готовым после активизации команды "Process new kernel" немедленно перегрузиться. В этом параграфе мы рассмотрим, как создавать ядро вручную, так как эта процедура обычно не описана в документации и не столь очевидна, как в случае применения утилиты SAM. Процесс ручного построения ядра более Слова 12. Дройверы и ядро
253
управляем, поскольку' можно сконфигурировать и скомпилировать ядро, а затем дождаться нужного времени для перезагрузки системы. Кроме того, не требуется иметь под рукой терминал и тратить время па многочисленные движения мышью, когда достаточно ввести всего несколько команд.
Конфигурирование ядра H P - U X осуществляется посредством файла
/stand/system. Предварительно необходимо скопировать этот файл под другим именем мы воспользуемся именем system.example. Файл system обычно генерируется утилитой SAM, поэтому он труден для понимания ив нем отсутствуют комментарии. Единственный способ узнать, что означают все эти загадочные команды и переменные. — использовать саму утилиту SAM. Но можно просто загрузить ее и распечатать копию окна с конфигурационными параметрами. Это позволит получить список имен настраиваемых переменных, а также краткое описание их назначения с указанием стандартных значении. Наш файл system.example представляет собой список драйверов, подсистем и переменных, которые будут встроены в ядро. Устройства обычно перечислены первыми, за ними идут подсистемы. В конце указаны переменные сих значениями.
GSCtoPCI asioG с sdisk sctl cdfs rfs_core
STRMSGSZ 65535 dump lvol nstcpty 60 Как видите, расшифровать этот список невозможно без помощи утилиты
SAM. Если переменной присваивается значение по умолчанию, то она вообще не включается в файл. В табл. 12.4 перечислены некоторые наиболее часто используемые переменные вместе сих стандартными значениями. Таблица 12.4. Полезные переменные фойло system в HP-UX Переменная По умолчанию Описание maxfi.les_li.itt
1024 Неизменяемое максимальное число открытых файлов водном процессе m a x u s e r s
60 Максимальное число одновременно работающих пользователей гс
75 Максимальное число пользовательских процесеои n p r o c
276 Максимальное число процессов n f i l e
910 Максимальное число открытых файлов n f l o c k s
200 Максимальное число блокировок файлов n i n o d e
476 Максимальное число открытых индексных дескрипторов Максимальное число псевдотерминалои n s t r t e l
60 Максимальное число сеансов telnet n k t h r e a d
499 Максимальное число потоков ядра
254
Чость I. Основы одминистрировония
После окончания редактирования файла system.example остается построить ядро с помошью команды mk kernel. По умолчанию эта команда берет установки из файла /stand/system и создает ядро с именем /stand/vmunix.test. С помошью опции -s можно указать другой конфигурационный файла с помошыо опции -о — другое имя ядра В нашем случае команда будет иметь следующий вил
* m k _ k e r n e l - во / s t a n d / v m u n i x - example
Перезагрузиться можно в любое удобное время. Если нужно, чтобы новое ядро загружалось автоматически, скопируйте старое ядро /stand/vmunix куда-нибудь и поместите иа его место новое ядро.
12.5. Конфигурирование ядра Linux Процедура конфигурирования ядра Linux совершенствуется уже довольно долгое время, однако она все еше достаточно примитивна в сравнении с другими операционными системами. Весь процесс сосредоточен вокруг файла
/usr/src/linux/.config. В этом файле приведена вся информация, касаюшаяся конфигурирования ядра, но его формат очень труден для понимания. Для упрощения работы в Linux предусмотрено несколько сценариев, реализующих различные интерфейсы конфигурирования ядра Если в системе установлена оболочка X Windows, то удобнее всего воспользоваться командой make xconlig. Она отображает окно конфигурации, в котором можно выбрать драйверы устройств, добавляемые к ядру (или компилируемые в качестве загружаемых модулей. В отсутствие графической среды на помошь придет команда make menuconllg, работающая на основе библиотеки curses". Наконец, есть старая команда make conllg. которая отображает запрос на изменение каждою конфигурационного параметра и не позволяет менять сделанные ранее установки. Мы не рекомендуем ею пользоваться. Все эти команды просты, так каких действие сводится к установке нужных опций. Тем не менее, они мало подходят для ситуации, когда нужно поддерживать несколько версий ядра для различных архитектур или аппаратных конфигураций. В любом случае генерируется файл .config, имеющий примерно такой вид
* A u t o m a t i c a l l y g e n e r a t e d make c o n f i g : don't e d i t
*
# Code m a t u r i t y l e v e l o p t i o n s
#
CONFIG_EXPERIMENTAL=y
»
S P r o c e s s o r t y p e a n a f e a t u r e s
ц
# CONFIG_M3 S Ь J.S no С seL
# CONFIG_M486 is n o t s e t
# CONrIG_M586 is n o t s e c
If С ON F IG_M 5 8 oTSC is n o t s e t
CONFIG_M686=y
CON FIG_X8 6_WP_WORKS_OK-y
* Библиотека curses содержит функции, формирующие псевдографический интерфейс в терминальном окне.
I пово 12. Дроиверы и ядро
•^ьь

CONFIG_X86_INVLPG=y
COMF1G_X8 6_BSWAP=y
CONFIG_X8 у
CONFIG_X8 6_TSC=y
CONFIG__X86_GOOD_APIC=y Как видите, содержимое файла не слишком понятно не дается никаких пояснений относительно того, что означают теги


Поделитесь с Вашими друзьями:
1   ...   18   19   20   21   22   23   24   25   ...   82


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал