Частным случаем задачи (2) является добавление и настройка драйверов устройств.
Сейчас мы рассмотрим, как именно следует выполнять эти задачи,
включая те или иные команды в /etc/system.
Конфигурация ядра Solaris, которая определяет технические параметры
системы, может быть изменена в файле /etc/system. Файл содержит
настройки ядра, отличные от принятых по умолчанию. Этот файл
используется при загрузке системы. Изменения, внесенные в /etc/system, оказывают действие на конфигурацию ядра после
перезагрузки.
Помните, что перед внесением изменений в любой файл конфигурации следует сделать его резервную копию - про запас.
Файл /etc/system содержит команды, которые представляют собой список
пар имя=значение. Строки комментариев начинаются с символа "*"
(звездочка) или "#" (решетка). Все команды, за специально
оговариваемыми исключениями, можно давать в любом регистре как
строчными, так и заглавными буквами. Длина команды не должна
превышать 80 символов.
В командах перед именем параметра указывается пространство имен
set semsys:seminfo_semmni=100
Следующие пространства имен являются общими для всех платформ под Solaris:
drv - драйверы устройств;exec - aoutexec - coffexec - для обеих платформ:
elfexecintpexecjavaexecfs - sched - реализация алгоритма планировщика задач;strmod - sys - модули исполнения системных вызовов;misc - другие Только для платформы SPARC реализованы
dacf - cpu - Фактически, каждое пространство имен представляет собой каталог, в
котором находится тот или иной ipc находится
в пространстве имен misc и располагается в каталоге /kernel/misc.
Загрузка такого
modload misc/ipc
В файле /etc/system допустимы следующие команды:
exclude: <namespace>/<modulename> - запрет загрузки include: <namespace>/<modulename> - разрешение загрузки forceload: <namespace>/<modulename> - требовать загрузки rootdev: <device name> - установить иное устройство для загрузки,
чтобы изменить принятое по умолчанию при загрузке или установленное
командой boot среды OpenBoot;rootfs: <root filesystem type> - указать тип файловой системы
загрузочного устройства;moddir: <first module path>[[{:, }"second ...>]...] - установить
список каталогов, в которых следует искать set [<module>:]<symbol> {=, |, } [~][-]<value> - установить
Здесь мы рассмотрим параметры, влияющие на максимальное количество процессов, которые можно запустить в системе, и на максимальное количество процессов, которые может запустить один пользователь.
Основным параметром является maxusers, который влияет на значения
параметров max_nprocs и maxuprc.
Параметр maxusers в прошлом определял максимальное разрешенное
количество одновременно работающих в системе пользователей. Размер
многих таблиц в ядре вычислялся с использованием этого параметра. В
настоящее время старое значение этого параметра утратило смысл, но
некоторые maxusers. Это
максимально допустимое количество процессов в системе, размер
структур квотирования в системе и размер кэша имен каталогов
(directory name lookup cache - DNLC). По умолчанию maxusers равно
меньшему из двух чисел - объему памяти системы в мегабайтах или 2048.
Может принимать любое значение от 1 до 2048, при явной установке в /etc/system - от 1 до 4096, но следует указывать разумные значения.
Значение maxusers явно мало, если система выдает сообщения
out of processes
Значение maxusers по умолчанию скорее всего будет велико для систем с
малым количеством запущенных процессов и большим объемом памяти -
серверов баз данных, вычислительных серверов и т.п.
Еще одним важным параметром является max_nprocs: он ограничивает
максимальное количество процессов, которые можно одновременно
запустить в системе. Влияет на вычисление значения maxuprc. Кроме
того, значение max_nprocs влияет на:
Значение max_nprocs по умолчанию - 10 + (16 x maxusers), диапазон
значений - от 266 до максимально возможного идентификатора процесса
( maxpid ). Изменение этого параметра понадобится, если потребуется
запускать более 30 000 процессов одновременно.
Кроме ограничения на общее количество одновременно запущенных
процессов, существует ограничение на количество процессов,
запускаемых одним пользователем. Это количество контролируется
параметром maxuprc.
По умолчанию этот параметр равен разности max_nprocs и reserved_procs, где reserved_procs - это параметр, отвечающий за
резервирование некоторого количества идентификаторов процессов для
пользователя root (даже если вся таблица процессов заполнена
процессами пользователей, для процессов root оставляется резерв строк
в этой таблице). По умолчанию reserved_procs устанавливается равным
5.
Количество процессов, которое имеет право запустить один
пользователь, можно только уменьшить - сделать его большим, чем max_nprocs - reserved_procs, нельзя.
Превышение пользователем ограничения, установленного параметром maxuprc, приводит к выдаче сообщения
out of per-user processes for uid N
Для более детального изучения
Некоторые полезные /etc/system. Если требуется загрузить modload.
Предположим, нам потребовалось проверить количество семафоров в ядре
и мы обнаружили, что
sysdef | tail -20 * * Streams Tunables * 9 maximum number of pushes allowed (NSTRPUSH) 65536 maximum stream message size (STRMSGSZ) 1024 max size of ctl part of message (STRCTLSZ) * * IPC Messages module is not loaded * * * IPC Semaphores module is not loaded * * * IPC Shared Memory module is not loaded * * * Time Sharing Scheduler Tunables * 60 maximum time sharing user priority (TSMAXUPRI) SYS system class name (SYS_NAME)
Стандартные /kernel:
ls -l /kernel total 2856 drwxr-xr-x 2 root sys 512 Мар 17 10:42 dacf drwxr-xr-x 2 root sys 3072 Мар 17 11:16 drv drwxr-xr-x 2 root sys 512 Мар 17 11:10 exec drwxr-xr-x 2 root sys 512 Мар 17 10:52 fs -rwxr-xr-x 1 root sys 1438036 Ноя 4 2002 genunix drwxr-xr-x 2 root sys 512 Мар 17 11:07 ipp drwxr-xr-x 2 root sys 512 Мар 17 10:50 mach drwxr-xr-x 3 root sys 1024 Мар 17 11:07 misc drwxr-xr-x 2 root sys 512 Мар 17 10:43 sched drwxr-xr-x 2 root sys 1024 Мар 17 10:53 strmod drwxr-xr-x 2 root sys 512 Мар 17 10:49 sys
Загружаем
modload /kernel/misc/ipc
Теперь он загружен и будет отображаться программами мониторинга:
modinfo | grep ipc 146 feab6fb2 332 - 1 ipc (common ipc code) sysdef | tail -28 * * IPC Messages * 2048 max message size (MSGMAX) 4096 max bytes on queue (MSGMNB) 50 message queue identifiers (MSGMNI) 40 system message headers (MSGTQL) * * IPC Semaphores * 100 semaphore identifiers (SEMMNI) 60 semaphores in system (SEMMNS) 30 undo structures in system (SEMMNU) 25 max semaphores per id (SEMMSL) 100 max operations per semop call (SEMOPM) 10 max undo entries per process (SEMUME) 32767 semaphore maximum value (SEMVMX) 16384 adjust on exit max value (SEMAEM) * * IPC Shared Memory * 8388608 max shared memory segment size (SHMMAX) 100 shared memory identifiers (SHMMNI) * * Time Sharing Scheduler Tunables * 60 maximum time sharing user priority (TSMAXUPRI) SYS system class name (SYS_NAME)
Для выгрузки modunload:
modunload ipc usage: modunload -i <module_id> [-e <exec_file>] modunload -i 146 can't unload the module: Device busy
Если
Изменим файл /etc/system:
set semsys:seminfo_semmni=101 set semsys:seminfo_semopm=101
После перезагрузки картина будет иной, но ipc придется загрузить
вручную, так как он относится к
modload misc/ipc sysdef * * IPC Semaphores * 101 semaphore identifiers (SEMMNI) 60 semaphores in system (SEMMNS) 30 undo structures in system (SEMMNU) 25 max semaphores per id (SEMMSL) 101 max operations per semop call (SEMOPM) 10 max undo entries per process (SEMUME) 32767 semaphore maximum value (SEMVMX) 16384 adjust on exit max value (SEMAEM) *
Вывод sysdef в этом примере сильно сокращен.
/dev /devices, а затем -
соответствующие символические ссылки на него в /dev.
К счастью, эти задачи можно решать автоматизированно: в Solaris есть
утилита devfsadm, которая автоматически распознает вновь подключенные
устройства и создает необходимые файлы в /devices и /dev.
Для получения информации об уже установленных устройствах следует
пользоваться программами prtconf, sysdef и dmesg.
Программа prtconf выдает информацию о конфигурации системы в том
виде, в котором она иерархически представлена в системе; с помощью prtconf можно выяснить, "увидела" ли система то или иное устройство.
Программа sysdef дает больше информации о системе, она выводит не
только список аппаратуры в системе, но и перечень псевдоустройств и
загруженных
Программа dmesg выдает сообщения из файла протокола и список
устройств, обнаруженных при последней перезагрузке системы. Эти
сообщения можно также посмотреть в файле /var/adm/messages.
При загрузке ядро системы в состоянии выполнить автоматическую
самонастройку, определяя, какие именно устройства подключены к
системе. Если вы подключили любое новое устройство к компьютеру
(например, новый накопитель), и оно в настоящее время не видно ядру,
следует создать файл / и перезапустить систему:
touch reconfigure; reboot
После перезагрузки система увидит новое устройство, если только оно вообще поддерживается данной версией системы.
Вместо создания файла / и перезапуска допустимо при
загрузке системы дать команду из строки начального загрузчика:
boot -r
Этот способ менее предпочтителен, потому что не позволяет запланировать перезапуск на более поздний срок и требует интерактивного вмешательства администратора.
Начиная с версии Solaris 8 можно добавлять и удалять устройства из
системы без ее перезагрузки, для этого служит утилита devfsadm. Ее
можно запускать интерактивно, но если запущен демон автоконфигурации devfsadmd, то в этом нет надобности - изменения будут сделаны
автоматически. Программы devfsadm и devfsadmd работают с файлом /etc/path_to_inst, в котором находится список устройств в системе.
При добавлении новых устройств записи в файле не перенумеруются - к
старым посто добавляются новые.
В случае, если файл /etc/path_to_inst был удален или неверно
отредактирован, система не сможет загрузиться. В этом случае можно
загрузиться с CD-ROM и переписать файл с дистрибутивного диска.
Еще одним важным файлом в контексте разговора об устройствах в
Solaris является файл /etc/name_to_major, который служит для
отображения имен устройств в major номера файлов устройств; этот файл
создается при формировании содержимого каталога /devices, например,
при работе devfsadmd.
Существует несколько способов установить программу или
Например, требуется найти более наглядное средство наблюдения за
процессами, чем ищем top и загружаем его на
свой компьютер. Если прямо с sunfreeware его получить не удается,
набираем имя файла top-3.5-sol9-intel-local.gz в строке поиска Google
и получаем достаточное количество ссылок на ftp-серверы, где он
лежит. Такое бывает часто: сервер sunfreeware перегружен и не всегда
готов принять посетителя.
Теперь распаковываем подарочек...
gunzip top-3.5-sol9-intel-local.gz
и в нашем распоряжении оказывается файл pkgadd, что именно отсюда мы будем
pkgadd -d top-3.5-sol9-intel-local The following packages are available: 1 SMCtop top (intel) 3.5 Select package(s) you wish to process (or 'all' to process all packages). (default: all) [?,??,q]: y ERROR: Entry does not match available menu selection. Enter the number of the menu item you wish to select, or the token which is associated with the menu item, or a partial string which uniquely identifies the token for the menu item. Enter ?? to reprint the menu. Select package(s) you wish to process (or 'all' to process all packages). (default: all) [?,??,q]: all
Ошибка (сообщение ERROR в 6-й строке листинга) вызвана тем, что мы
поторопились ввести y в ответ на вопрос: привычка сказывается. Честно
напишем all, чтобы установить все программы, которые доступны в
Processing package instance <SMCtop> from </export/home/top-3.5-sol9-intel-local> top (intel) 3.5 William LeFebvre Using </usr/local> as the package base directory. ## Processing package information. ## Processing system information. 4 package pathnames are already properly installed. ## Verifying disk space requirements. ## Checking for conflicts with packages already installed. ## Checking for setuid/setgid programs. The following files are being installed with setuid and/or setgid permissions: /usr/local/bin/top <setgid sys> Наконец вопрос, на который как раз следует ответить утвердительно: Do you want to install these as setuid/setgid files [y,n,?,q] y Installing top as <SMCtop> ## Installing part 1 of 1. /usr/local/bin/top /usr /usr/local/doc/top/Changes /usr/local/doc/top/FAQ /usr/local/doc/top/INSTALL /usr/local/doc/top/Porting /usr/local/doc/top/README /usr/local/doc/top/SYNOPSIS /usr/local/man/man1/top.1 [ verifying class <none> ] Installation of <SMCtop> was successful.
Проверить, удачно ли установился
pkginfo | grep top application SMCtop top system SUNWdtcor Solaris Desktop /usr/dt filesystem anchor system SUNWdtdst CDE Desktop Applications system SUNWdtdte Solaris Desktop Login Environment system SUNWdtezt Solaris Desktop Extensions Applications system SUNWdthez Desktop Power Pack Help Volumes system SUNWdtlog System boot for Desktop Login system SUNWdtmaz Desktop Power Pack man pages system SUNWeuodf UTF-8 Core OPENLOOK Desktop Files system SUNWsadmi Solstice Enterprise Agents 1.0.3 Desktop Management Interface
Как видно,
Удалить pkgrm, например, pkgrm SMCtop.
Иногда бывает необходимо не просто установить README и INSTALL
дистрибутива
Коммерческая версия компилятора С фирмы Sun не поставляется с бесплатным набором компакт-дисков дистрибутива Solaris. Его надо покупать отдельно, это можно сделать со страницы http://wwws.sun.com/software/sundev/suncc/buy/index.html.
Компания Sun предоставляет возможность использовать ее компилятор С в течение 60 дней бесплатно. Для этого с той же страницы надо загрузить trial-версию. Она является полнофункциональной - просто при установке следует выбрать вариант установки trial, и временный серийный номер продукта будет сгенерирован автоматически.
Кроме коммерческого компилятора можно работать с бесплатной версией
GNU C под Solaris. Ее можно получить с http://www.sunfreeware.com или найти
через центральный портал проекта GNU gnu.org. GNU C можно загрузить в
виде gcc.
Загрузим файл gcc_small-3.3.2-sol9-intel-local.gz и установим gcc для того, чтобы иметь возможность компилировать программы из
исходных текстов:
pkgadd gcc_small-3.3.2-sol9-intel-local.gz pkgadd: ERROR: no packages were found in </var/spool/pkg>
Ошибка: файл d:
gunzip gcc_small-3.3.2-sol9-intel-local.gz ls gcc_small-3.3.2-sol9-intel-local pkgadd -d gcc_small-3.3.2-sol9-intel-local The following packages are available: 1 SMCgcc gcc (intel) 3.3.2 Select package(s) you wish to process (or 'all' to process all packages). (default: all) [?,??,q]:
Далее действуем, как в предыдущем примере.
Если необходимо, то можно получить довольно много бесплатного программного обеспечения под Solaris со страницы http://www.sun.com/bigadmin/features/articles/x86_desktop.html.
Затем его можно установить вышеописанным образом.
При README и INSTALL, которые присутствуют в
дистрибутиве наряду с исходными текстами.
Чтобы узнать, какие pkginfo:
pkginfo application SMCtop top system SUNW1251f Russian 1251 fonts ALE SUNW5ttf Traditional Chinese BIG5 True Type Fonts Package ALE SUNW5xmft Traditional Chinese (BIG5) X Window s Platform minimum required Fonts Package system SUNWGlib GLIB - Library of useful routines f or C programming system SUNWGtkr GTK - The GIMP Toolkit (Root) system SUNWGtku GTK - The GIMP Toolkit (Usr) system SUNWTcl Tcl - Tool Command Language system SUNWTiff libtiff - library for reading and w pkginfo -l SMCtop PKGINST: SMCtop NAME: top CATEGORY: application ARCH: intel VERSION: 3.5 BASEDIR: /usr/local VENDOR: William LeFebvre PSTAMP: Steve Christensen INSTDATE: Апр 21 2004 14:47 EMAIL: steve@smc.vnet.net STATUS: completely installed FILES: 13 installed pathnames 4 shared pathnames 5 directories 1 executables 1 setuid/setgid executables 258 blocks used (approx)
Чтобы узнать, изменялись ли файлы установленных pkgchk:
bash-2.05# pkgchk SMCtop bash-2.05#
Как видим, сообщений от pkgchk не последовало. Отсутствие новостей -
лучшие новости. Если программа pkgchk не выдала сообщений, стало
быть, проблем нет.
Можно проверить, изменилось ли содержимое файла
pkgchk -p /etc/shadow ERROR: /etc/shadow modtime <11/04/02 01:06:28 > expected <03/18/04 05:05:29 > actual file size <253> expected <298> actual file cksum <17353> expected <20785> actual
Файл изменился с момента установки системы. Это естественно: ведь мы добавили новых пользователей и назначили им пароли.
Для более подробной информации можно использовать ключ l:
pkgchk -l -p /etc/shadow
Pathname: /etc/shadow
Type: editted file
Expected mode: 0400
Expected owner: root
Expected group: sys
Referenced by the following packages:
SUNWcsr
Current status: installed
Информация об установленных /var/sadm/install/contents.
Можно просмотреть его содержимое для изучения того, что именно и куда
было установлено при инсталляции pkgrm использует
содержимое этого файла для удаления top. Кстати, если имя top - ведь ее SMCtop.
more /var/sadm/install/contents | grep SMCtop /usr/local/bin d none 0755 root bin SMCgcc SMCtop /usr/local/bin/top f none 2711 root sys 47348 46603 1081404717 SMCtop /usr/local/doc d none 0755 root bin SMCgcc SMCtop /usr/local/doc/top d none 0755 root bin SMCtop /usr/local/doc/top/Changes f none 0644 root bin 30674 28431 1081404751 SMCtop /usr/local/doc/top/FAQ f none 0644 root bin 15167 37360 1081404751 SMCtop /usr/local/doc/top/INSTALL f none 0644 root bin 7460 472 1081404751 SMCtop /usr/local/doc/top/Porting f none 0644 root bin 7058 38204 1081404751 SMCtop /usr/local/doc/top/README f none 0644 root bin 7958 47937 1081404751 SMCtop /usr/local/doc/top/SYNOPSIS f none 0644 root bin 2109 45452 1081404751 SMCtop /usr/local/man d none 0755 root bin SMCgcc SMCtop /usr/local/man/man1 d none 0755 root bin SMCgcc SMCtop /usr/local/man/man1/top.1 f none 0644 root bin 12736 8086 1081404723 SMCtop
Поскольку в файле /var/sadm/install/contents указано, в какой каталог
установлена программа, можно искать в нем нужную программу, чтобы
понять, в какой каталог она установлена (если установлена вообще).
Для работы с patch, gpatch, patchadd, patchrm, smpatch.
Можно также устанавливать
Для того чтобы узнать точно версию вашей системы Solaris и получить
информацию обо всех установленных showrev:
showrev -a Hostname: sola Hostid: 284521a Release: 5.9 Kernel architecture: i86pc Aplication architecture: i386 Hardware provider: Domain: Kernel version: SunOS 5.9 Generic_112234-03 November 2002 OpenWindows version: Solaris X11 Version 6.6.1 16 October 2002 No patches are installed
Для изменения текстовых файлов (например, исходных текстов программ
или файлов конфигураций) можно применять программу patch. Для ее
работы нужно два файла: исходный текстовый файл, подлежащий
изменению, и файл diff, но patch понимает также формат скрипта
редактора ed или контекстный вывод diff. Контекстным называется
формат вывода, когда в файле различий, создаваемом diff, приводятся
не только те строки файлов, которые отличаются друг от друга, но и
контекст, в котором они появились (по три строки сверху и снизу от
них). Типичный файл
cat system.patch --- system Mon May 17 02:15:34 2004 +++ system.new Tue Jun 22 10:50:48 2004 @@ -76,6 +76,6 @@ * * set test_module:debug = 0x13 -set semsys:seminfo_semmni=100 +set semsys:seminfo_semmni=110 set semsys:seminfo_semopm=100
Этот файл system.patch можно "приложить" к старому файлу system для того, чтобы внести в него изменения; предполагается, что
старый файл имеет имя, совпадающее с именем в первой строке файла
patch -i system.patch system
Кроме программы patch в Solаris имеется программа gpatch (GNU Patch),
которая, в отличие от традиционной команды patch, строго
соответствует стандарту POSIX и несколько по-другому интерпретирует
ключи и обрабатывает полные имена файлов в файлах заплаток.
Применяйте ту программу, которая требуется согласно описанию man gpatch.
Программы patch и gpatch не предназначены для установки patchadd. Для удаления patchrm. Программы patchadd и patchrm
работают с Solaris версий 2.x и новее.
С помощью команды smpatch можно установить smpatch требуется заранее создать
роль, отвечающую за управление
Частным случаем задачи (2) является добавление и настройка драйверов устройств.
Сейчас мы рассмотрим, как именно следует выполнять эти задачи,
включая те или иные команды в /etc/system.
Конфигурация ядра Solaris, которая определяет технические параметры
системы, может быть изменена в файле /etc/system. Файл содержит
настройки ядра, отличные от принятых по умолчанию. Этот файл
используется при загрузке системы. Изменения, внесенные в /etc/system, оказывают действие на конфигурацию ядра после
перезагрузки.
Помните, что перед внесением изменений в любой файл конфигурации следует сделать его резервную копию - про запас.
Файл /etc/system содержит команды, которые представляют собой список
пар имя=значение. Строки комментариев начинаются с символа "*"
(звездочка) или "#" (решетка). Все команды, за специально
оговариваемыми исключениями, можно давать в любом регистре как
строчными, так и заглавными буквами. Длина команды не должна
превышать 80 символов.
В командах перед именем параметра указывается пространство имен
set semsys:seminfo_semmni=100
Следующие пространства имен являются общими для всех платформ под Solaris:
drv - драйверы устройств;exec - aoutexec - coffexec - для обеих платформ:
elfexecintpexecjavaexecfs - sched - реализация алгоритма планировщика задач;strmod - sys - модули исполнения системных вызовов;misc - другие Только для платформы SPARC реализованы
dacf - cpu - Фактически, каждое пространство имен представляет собой каталог, в
котором находится тот или иной ipc находится
в пространстве имен misc и располагается в каталоге /kernel/misc.
Загрузка такого
modload misc/ipc
В файле /etc/system допустимы следующие команды:
exclude: <namespace>/<modulename> - запрет загрузки include: <namespace>/<modulename> - разрешение загрузки forceload: <namespace>/<modulename> - требовать загрузки rootdev: <device name> - установить иное устройство для загрузки,
чтобы изменить принятое по умолчанию при загрузке или установленное
командой boot среды OpenBoot;rootfs: <root filesystem type> - указать тип файловой системы
загрузочного устройства;moddir: <first module path>[[{:, }"second ...>]...] - установить
список каталогов, в которых следует искать set [<module>:]<symbol> {=, |, } [~][-]<value> - установить
Здесь мы рассмотрим параметры, влияющие на максимальное количество процессов, которые можно запустить в системе, и на максимальное количество процессов, которые может запустить один пользователь.
Основным параметром является maxusers, который влияет на значения
параметров max_nprocs и maxuprc.
Параметр maxusers в прошлом определял максимальное разрешенное
количество одновременно работающих в системе пользователей. Размер
многих таблиц в ядре вычислялся с использованием этого параметра. В
настоящее время старое значение этого параметра утратило смысл, но
некоторые maxusers. Это
максимально допустимое количество процессов в системе, размер
структур квотирования в системе и размер кэша имен каталогов
(directory name lookup cache - DNLC). По умолчанию maxusers равно
меньшему из двух чисел - объему памяти системы в мегабайтах или 2048.
Может принимать любое значение от 1 до 2048, при явной установке в /etc/system - от 1 до 4096, но следует указывать разумные значения.
Значение maxusers явно мало, если система выдает сообщения
out of processes
Значение maxusers по умолчанию скорее всего будет велико для систем с
малым количеством запущенных процессов и большим объемом памяти -
серверов баз данных, вычислительных серверов и т.п.
Еще одним важным параметром является max_nprocs: он ограничивает
максимальное количество процессов, которые можно одновременно
запустить в системе. Влияет на вычисление значения maxuprc. Кроме
того, значение max_nprocs влияет на:
Значение max_nprocs по умолчанию - 10 + (16 x maxusers), диапазон
значений - от 266 до максимально возможного идентификатора процесса
( maxpid ). Изменение этого параметра понадобится, если потребуется
запускать более 30 000 процессов одновременно.
Кроме ограничения на общее количество одновременно запущенных
процессов, существует ограничение на количество процессов,
запускаемых одним пользователем. Это количество контролируется
параметром maxuprc.
По умолчанию этот параметр равен разности max_nprocs и reserved_procs, где reserved_procs - это параметр, отвечающий за
резервирование некоторого количества идентификаторов процессов для
пользователя root (даже если вся таблица процессов заполнена
процессами пользователей, для процессов root оставляется резерв строк
в этой таблице). По умолчанию reserved_procs устанавливается равным
5.
Количество процессов, которое имеет право запустить один
пользователь, можно только уменьшить - сделать его большим, чем max_nprocs - reserved_procs, нельзя.
Превышение пользователем ограничения, установленного параметром maxuprc, приводит к выдаче сообщения
out of per-user processes for uid N
Для более детального изучения
Некоторые полезные /etc/system. Если требуется загрузить modload.
Предположим, нам потребовалось проверить количество семафоров в ядре
и мы обнаружили, что
sysdef | tail -20 * * Streams Tunables * 9 maximum number of pushes allowed (NSTRPUSH) 65536 maximum stream message size (STRMSGSZ) 1024 max size of ctl part of message (STRCTLSZ) * * IPC Messages module is not loaded * * * IPC Semaphores module is not loaded * * * IPC Shared Memory module is not loaded * * * Time Sharing Scheduler Tunables * 60 maximum time sharing user priority (TSMAXUPRI) SYS system class name (SYS_NAME)
Стандартные /kernel:
ls -l /kernel total 2856 drwxr-xr-x 2 root sys 512 Мар 17 10:42 dacf drwxr-xr-x 2 root sys 3072 Мар 17 11:16 drv drwxr-xr-x 2 root sys 512 Мар 17 11:10 exec drwxr-xr-x 2 root sys 512 Мар 17 10:52 fs -rwxr-xr-x 1 root sys 1438036 Ноя 4 2002 genunix drwxr-xr-x 2 root sys 512 Мар 17 11:07 ipp drwxr-xr-x 2 root sys 512 Мар 17 10:50 mach drwxr-xr-x 3 root sys 1024 Мар 17 11:07 misc drwxr-xr-x 2 root sys 512 Мар 17 10:43 sched drwxr-xr-x 2 root sys 1024 Мар 17 10:53 strmod drwxr-xr-x 2 root sys 512 Мар 17 10:49 sys
Загружаем
modload /kernel/misc/ipc
Теперь он загружен и будет отображаться программами мониторинга:
modinfo | grep ipc 146 feab6fb2 332 - 1 ipc (common ipc code) sysdef | tail -28 * * IPC Messages * 2048 max message size (MSGMAX) 4096 max bytes on queue (MSGMNB) 50 message queue identifiers (MSGMNI) 40 system message headers (MSGTQL) * * IPC Semaphores * 100 semaphore identifiers (SEMMNI) 60 semaphores in system (SEMMNS) 30 undo structures in system (SEMMNU) 25 max semaphores per id (SEMMSL) 100 max operations per semop call (SEMOPM) 10 max undo entries per process (SEMUME) 32767 semaphore maximum value (SEMVMX) 16384 adjust on exit max value (SEMAEM) * * IPC Shared Memory * 8388608 max shared memory segment size (SHMMAX) 100 shared memory identifiers (SHMMNI) * * Time Sharing Scheduler Tunables * 60 maximum time sharing user priority (TSMAXUPRI) SYS system class name (SYS_NAME)
Для выгрузки modunload:
modunload ipc usage: modunload -i <module_id> [-e <exec_file>] modunload -i 146 can't unload the module: Device busy
Если
Изменим файл /etc/system:
set semsys:seminfo_semmni=101 set semsys:seminfo_semopm=101
После перезагрузки картина будет иной, но ipc придется загрузить
вручную, так как он относится к
modload misc/ipc sysdef * * IPC Semaphores * 101 semaphore identifiers (SEMMNI) 60 semaphores in system (SEMMNS) 30 undo structures in system (SEMMNU) 25 max semaphores per id (SEMMSL) 101 max operations per semop call (SEMOPM) 10 max undo entries per process (SEMUME) 32767 semaphore maximum value (SEMVMX) 16384 adjust on exit max value (SEMAEM) *
Вывод sysdef в этом примере сильно сокращен.
/dev /devices, а затем -
соответствующие символические ссылки на него в /dev.
К счастью, эти задачи можно решать автоматизированно: в Solaris есть
утилита devfsadm, которая автоматически распознает вновь подключенные
устройства и создает необходимые файлы в /devices и /dev.
Для получения информации об уже установленных устройствах следует
пользоваться программами prtconf, sysdef и dmesg.
Программа prtconf выдает информацию о конфигурации системы в том
виде, в котором она иерархически представлена в системе; с помощью prtconf можно выяснить, "увидела" ли система то или иное устройство.
Программа sysdef дает больше информации о системе, она выводит не
только список аппаратуры в системе, но и перечень псевдоустройств и
загруженных
Программа dmesg выдает сообщения из файла протокола и список
устройств, обнаруженных при последней перезагрузке системы. Эти
сообщения можно также посмотреть в файле /var/adm/messages.
При загрузке ядро системы в состоянии выполнить автоматическую
самонастройку, определяя, какие именно устройства подключены к
системе. Если вы подключили любое новое устройство к компьютеру
(например, новый накопитель), и оно в настоящее время не видно ядру,
следует создать файл / и перезапустить систему:
touch reconfigure; reboot
После перезагрузки система увидит новое устройство, если только оно вообще поддерживается данной версией системы.
Вместо создания файла / и перезапуска допустимо при
загрузке системы дать команду из строки начального загрузчика:
boot -r
Этот способ менее предпочтителен, потому что не позволяет запланировать перезапуск на более поздний срок и требует интерактивного вмешательства администратора.
Начиная с версии Solaris 8 можно добавлять и удалять устройства из
системы без ее перезагрузки, для этого служит утилита devfsadm. Ее
можно запускать интерактивно, но если запущен демон автоконфигурации devfsadmd, то в этом нет надобности - изменения будут сделаны
автоматически. Программы devfsadm и devfsadmd работают с файлом /etc/path_to_inst, в котором находится список устройств в системе.
При добавлении новых устройств записи в файле не перенумеруются - к
старым посто добавляются новые.
В случае, если файл /etc/path_to_inst был удален или неверно
отредактирован, система не сможет загрузиться. В этом случае можно
загрузиться с CD-ROM и переписать файл с дистрибутивного диска.
Еще одним важным файлом в контексте разговора об устройствах в
Solaris является файл /etc/name_to_major, который служит для
отображения имен устройств в major номера файлов устройств; этот файл
создается при формировании содержимого каталога /devices, например,
при работе devfsadmd.
Существует несколько способов установить программу или
Например, требуется найти более наглядное средство наблюдения за
процессами, чем ищем top и загружаем его на
свой компьютер. Если прямо с sunfreeware его получить не удается,
набираем имя файла top-3.5-sol9-intel-local.gz в строке поиска Google
и получаем достаточное количество ссылок на ftp-серверы, где он
лежит. Такое бывает часто: сервер sunfreeware перегружен и не всегда
готов принять посетителя.
Теперь распаковываем подарочек...
gunzip top-3.5-sol9-intel-local.gz
и в нашем распоряжении оказывается файл pkgadd, что именно отсюда мы будем
pkgadd -d top-3.5-sol9-intel-local The following packages are available: 1 SMCtop top (intel) 3.5 Select package(s) you wish to process (or 'all' to process all packages). (default: all) [?,??,q]: y ERROR: Entry does not match available menu selection. Enter the number of the menu item you wish to select, or the token which is associated with the menu item, or a partial string which uniquely identifies the token for the menu item. Enter ?? to reprint the menu. Select package(s) you wish to process (or 'all' to process all packages). (default: all) [?,??,q]: all
Ошибка (сообщение ERROR в 6-й строке листинга) вызвана тем, что мы
поторопились ввести y в ответ на вопрос: привычка сказывается. Честно
напишем all, чтобы установить все программы, которые доступны в
Processing package instance <SMCtop> from </export/home/top-3.5-sol9-intel-local> top (intel) 3.5 William LeFebvre Using </usr/local> as the package base directory. ## Processing package information. ## Processing system information. 4 package pathnames are already properly installed. ## Verifying disk space requirements. ## Checking for conflicts with packages already installed. ## Checking for setuid/setgid programs. The following files are being installed with setuid and/or setgid permissions: /usr/local/bin/top <setgid sys> Наконец вопрос, на который как раз следует ответить утвердительно: Do you want to install these as setuid/setgid files [y,n,?,q] y Installing top as <SMCtop> ## Installing part 1 of 1. /usr/local/bin/top /usr /usr/local/doc/top/Changes /usr/local/doc/top/FAQ /usr/local/doc/top/INSTALL /usr/local/doc/top/Porting /usr/local/doc/top/README /usr/local/doc/top/SYNOPSIS /usr/local/man/man1/top.1 [ verifying class <none> ] Installation of <SMCtop> was successful.
Проверить, удачно ли установился
pkginfo | grep top application SMCtop top system SUNWdtcor Solaris Desktop /usr/dt filesystem anchor system SUNWdtdst CDE Desktop Applications system SUNWdtdte Solaris Desktop Login Environment system SUNWdtezt Solaris Desktop Extensions Applications system SUNWdthez Desktop Power Pack Help Volumes system SUNWdtlog System boot for Desktop Login system SUNWdtmaz Desktop Power Pack man pages system SUNWeuodf UTF-8 Core OPENLOOK Desktop Files system SUNWsadmi Solstice Enterprise Agents 1.0.3 Desktop Management Interface
Как видно,
Удалить pkgrm, например, pkgrm SMCtop.
Иногда бывает необходимо не просто установить README и INSTALL
дистрибутива
Коммерческая версия компилятора С фирмы Sun не поставляется с бесплатным набором компакт-дисков дистрибутива Solaris. Его надо покупать отдельно, это можно сделать со страницы http://wwws.sun.com/software/sundev/suncc/buy/index.html.
Компания Sun предоставляет возможность использовать ее компилятор С в течение 60 дней бесплатно. Для этого с той же страницы надо загрузить trial-версию. Она является полнофункциональной - просто при установке следует выбрать вариант установки trial, и временный серийный номер продукта будет сгенерирован автоматически.
Кроме коммерческого компилятора можно работать с бесплатной версией
GNU C под Solaris. Ее можно получить с http://www.sunfreeware.com или найти
через центральный портал проекта GNU gnu.org. GNU C можно загрузить в
виде gcc.
Загрузим файл gcc_small-3.3.2-sol9-intel-local.gz и установим gcc для того, чтобы иметь возможность компилировать программы из
исходных текстов:
pkgadd gcc_small-3.3.2-sol9-intel-local.gz pkgadd: ERROR: no packages were found in </var/spool/pkg>
Ошибка: файл d:
gunzip gcc_small-3.3.2-sol9-intel-local.gz ls gcc_small-3.3.2-sol9-intel-local pkgadd -d gcc_small-3.3.2-sol9-intel-local The following packages are available: 1 SMCgcc gcc (intel) 3.3.2 Select package(s) you wish to process (or 'all' to process all packages). (default: all) [?,??,q]:
Далее действуем, как в предыдущем примере.
Если необходимо, то можно получить довольно много бесплатного программного обеспечения под Solaris со страницы http://www.sun.com/bigadmin/features/articles/x86_desktop.html.
Затем его можно установить вышеописанным образом.
При README и INSTALL, которые присутствуют в
дистрибутиве наряду с исходными текстами.
Чтобы узнать, какие pkginfo:
pkginfo application SMCtop top system SUNW1251f Russian 1251 fonts ALE SUNW5ttf Traditional Chinese BIG5 True Type Fonts Package ALE SUNW5xmft Traditional Chinese (BIG5) X Window s Platform minimum required Fonts Package system SUNWGlib GLIB - Library of useful routines f or C programming system SUNWGtkr GTK - The GIMP Toolkit (Root) system SUNWGtku GTK - The GIMP Toolkit (Usr) system SUNWTcl Tcl - Tool Command Language system SUNWTiff libtiff - library for reading and w pkginfo -l SMCtop PKGINST: SMCtop NAME: top CATEGORY: application ARCH: intel VERSION: 3.5 BASEDIR: /usr/local VENDOR: William LeFebvre PSTAMP: Steve Christensen INSTDATE: Апр 21 2004 14:47 EMAIL: steve@smc.vnet.net STATUS: completely installed FILES: 13 installed pathnames 4 shared pathnames 5 directories 1 executables 1 setuid/setgid executables 258 blocks used (approx)
Чтобы узнать, изменялись ли файлы установленных pkgchk:
bash-2.05# pkgchk SMCtop bash-2.05#
Как видим, сообщений от pkgchk не последовало. Отсутствие новостей -
лучшие новости. Если программа pkgchk не выдала сообщений, стало
быть, проблем нет.
Можно проверить, изменилось ли содержимое файла
pkgchk -p /etc/shadow ERROR: /etc/shadow modtime <11/04/02 01:06:28 > expected <03/18/04 05:05:29 > actual file size <253> expected <298> actual file cksum <17353> expected <20785> actual
Файл изменился с момента установки системы. Это естественно: ведь мы добавили новых пользователей и назначили им пароли.
Для более подробной информации можно использовать ключ l:
pkgchk -l -p /etc/shadow
Pathname: /etc/shadow
Type: editted file
Expected mode: 0400
Expected owner: root
Expected group: sys
Referenced by the following packages:
SUNWcsr
Current status: installed
Информация об установленных /var/sadm/install/contents.
Можно просмотреть его содержимое для изучения того, что именно и куда
было установлено при инсталляции pkgrm использует
содержимое этого файла для удаления top. Кстати, если имя top - ведь ее SMCtop.
more /var/sadm/install/contents | grep SMCtop /usr/local/bin d none 0755 root bin SMCgcc SMCtop /usr/local/bin/top f none 2711 root sys 47348 46603 1081404717 SMCtop /usr/local/doc d none 0755 root bin SMCgcc SMCtop /usr/local/doc/top d none 0755 root bin SMCtop /usr/local/doc/top/Changes f none 0644 root bin 30674 28431 1081404751 SMCtop /usr/local/doc/top/FAQ f none 0644 root bin 15167 37360 1081404751 SMCtop /usr/local/doc/top/INSTALL f none 0644 root bin 7460 472 1081404751 SMCtop /usr/local/doc/top/Porting f none 0644 root bin 7058 38204 1081404751 SMCtop /usr/local/doc/top/README f none 0644 root bin 7958 47937 1081404751 SMCtop /usr/local/doc/top/SYNOPSIS f none 0644 root bin 2109 45452 1081404751 SMCtop /usr/local/man d none 0755 root bin SMCgcc SMCtop /usr/local/man/man1 d none 0755 root bin SMCgcc SMCtop /usr/local/man/man1/top.1 f none 0644 root bin 12736 8086 1081404723 SMCtop
Поскольку в файле /var/sadm/install/contents указано, в какой каталог
установлена программа, можно искать в нем нужную программу, чтобы
понять, в какой каталог она установлена (если установлена вообще).
Для работы с patch, gpatch, patchadd, patchrm, smpatch.
Можно также устанавливать
Для того чтобы узнать точно версию вашей системы Solaris и получить
информацию обо всех установленных showrev:
showrev -a Hostname: sola Hostid: 284521a Release: 5.9 Kernel architecture: i86pc Aplication architecture: i386 Hardware provider: Domain: Kernel version: SunOS 5.9 Generic_112234-03 November 2002 OpenWindows version: Solaris X11 Version 6.6.1 16 October 2002 No patches are installed
Для изменения текстовых файлов (например, исходных текстов программ
или файлов конфигураций) можно применять программу patch. Для ее
работы нужно два файла: исходный текстовый файл, подлежащий
изменению, и файл diff, но patch понимает также формат скрипта
редактора ed или контекстный вывод diff. Контекстным называется
формат вывода, когда в файле различий, создаваемом diff, приводятся
не только те строки файлов, которые отличаются друг от друга, но и
контекст, в котором они появились (по три строки сверху и снизу от
них). Типичный файл
cat system.patch --- system Mon May 17 02:15:34 2004 +++ system.new Tue Jun 22 10:50:48 2004 @@ -76,6 +76,6 @@ * * set test_module:debug = 0x13 -set semsys:seminfo_semmni=100 +set semsys:seminfo_semmni=110 set semsys:seminfo_semopm=100
Этот файл system.patch можно "приложить" к старому файлу system для того, чтобы внести в него изменения; предполагается, что
старый файл имеет имя, совпадающее с именем в первой строке файла
patch -i system.patch system
Кроме программы patch в Solаris имеется программа gpatch (GNU Patch),
которая, в отличие от традиционной команды patch, строго
соответствует стандарту POSIX и несколько по-другому интерпретирует
ключи и обрабатывает полные имена файлов в файлах заплаток.
Применяйте ту программу, которая требуется согласно описанию man gpatch.
Программы patch и gpatch не предназначены для установки patchadd. Для удаления patchrm. Программы patchadd и patchrm
работают с Solaris версий 2.x и новее.
С помощью команды smpatch можно установить smpatch требуется заранее создать
роль, отвечающую за управление
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.