Ядро состоит из статической части и динамической части (модулей). Кроме этого, в ядре располагаются многочисленные таблицы, размер которых задается
Частным случаем задачи (2) является добавление и настройка драйверов устройств.
Для того, чтобы узнать значения параметров исполняющегося ядра, надо использовать программу sysdef.
Сейчас мы рассмотрим, как именно следует выполнять эти задачи, включая те или иные команды в /etc/system.
Конфигурация ядра Solaris, которая определяет технические параметры системы, может быть изменена в файле /etc/system. Файл содержит настройки ядра, отличные от принятых по умолчанию. Этот файл используется при загрузке системы. Изменения, внесенные в /etc/system, оказывают действие на конфигурацию ядра после перезагрузки.
Помните, что перед внесением изменений в любой файл конфигурации следует сделать его резервную копию – про запас.
Файл /etc/system содержит команды, которые представляют собой список пар имя=значение. Длина команды не должна превышать 80 символов. Строки комментариев начинаются с символа * (звездочка) или # (решетка). Все команды, кроме специально оговариваемых исключений, можно давать в любом регистре, как маленькими, так и большими буквами.
В командах set в /etc/system имена параметров статической части ядра (т.е. файла unix) указываются без названия модуля, а все остальные – с указанием модуля, к которому относится параметр:
set maxusers = 50 set strmod:strmsgsz = 262144
Для более детального изучения настроек ядра и работы с полным списком настроек имеет смысл обратиться к руководству "Solaris
Чтобы проверить, какие значения имеют настраиваемые sysdef, которая показывает список обнаруженных устройств,
sysdef | grep stream 65536 maximum stream message size (STRMSGSZ)
Можно проверить значения параметров и другим способом, с помощью отладчика mdb, напрямую запросив значение соответствующей переменной в ядре:
mdb -kw Loading modules: [ unix genunix specfs dtrace cpu.generic cpu_ ms.AuthenticAMD.15 uppc pcplusmp scsi_vhci ufs ip hook neti sctp arp usba s1394 fctl nca lofs zfs random audiosup md cpc crypto smbsrv fcip fcp logindmux ptm nsctl sdbc sv ii sppp rdc ipc ] > strmsgsz/D strmsgsz: strmsgsz: 65536
Следующие пространства имен являются общими для всех платформ под Solaris:
drv – драйвера устройств;Exec – модули поддержки разных форматов исполняемых файлов, а именно:aoutexec – модуль только для SPARC;coffexec – модуль только для Intel;для обеих платформ:
elfexecintpexecjavaexecfs – модули этого пространства имен – драйверы файловых систем;sched – реализация алгоритма планировщика задач;strmod – модули STREAMS;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> – установить Предположим, мы хотим исключить возможность запуска приложениями пользователей того кода, который находится в пространстве пользовательского стека. Это позволяет избежать запуска нежелательного кода при эксплуатации уязвимостей типа "переполнение буфера". В 64-разрядном ядре Solaris эта настройка включена по умолчанию для всех 64-разрядных приложений, в то время как в 32-разрядном ядре – выключена. Также она выключена в 64-разрядном ядре для 32-разрядных приложений.
Для включения настройки следует в /etc/system указать
set noexec_user_stack = 1
По состоянию на начало 2008 года эта настройка эффективна только для 64-разрядных архитектур SPARC и AMD в системах Solaris 2.6, 7, 8, 9, и 10. В других архитектурах она не повлияет на поведение приложений.
Здесь мы рассмотрим параметры, влияющие на максимальное количество процессов, которые можно запустить в системе, и на максимальное количество процессов, которые может запустить один пользователь.
Основным параметром является 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, а также на:
ndquot );Значение 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.
В Solaris 9 можно было проделать такой эксперимент по загрузке модуля, отвечающего за семафоры в ядре: по умолчанию этот модуль был не загружен
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)
Для проверки работоспособности модуля поддержки семафоров в Solaris до версии 9 включительно можно было использовать команду
sysdef: 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
Если модуль чем-то занят или его ресурс кем-то использовался ранее и блокировка не снята, удалить модуль не удастся.
Начиная с Solaris 10, семафоры более не контролируются настройками ядра, управление ими отдано в подсистему управления ресурсами, и их количество можно регулировать для каждого проекта в системе индивидуально.
Поэтому для проверки, эффективно ли используется /etc/system, воспользуемся нашим примером с установкой параметра noexec_user_stack.
Проверим значение этого параметра в выполняющемся в данный момент ядре:
mdb -kw Loading modules: [ unix genunix specfs dtrace cpu.generic cpu_ ms.AuthenticAMD.15 uppc pcplusmp scsi_vhci ufs ip hook neti sctp arp usba s1394 fctl nca lofs zfs random audiosup md cpc crypto smbsrv fcip fcp logindmux ptm nsctl sdbc sv ii sppp rdc ipc ] > noexec_user_stack/D noexec_user_stack: noexec_user_stack: 0 ^D
Изменим файл /etc/system:
set noexec_user_stack = 1
После перезагрузки картина будет иной:
mdb -kw Loading modules: [ unix genunix specfs dtrace cpu.generic cpu_ ms.AuthenticAMD.15 uppc pcplusmp scsi_vhci ufs ip hook neti sctp arp usba s1394 fctl nca lofs zfs random audiosup cpc crypto fcip ptm nsctl sppp ipc ] > noexec_user_stack/D noexec_user_stack: noexec_user_stack: 1 ^D
Для получения информации об уже установленных устройствах следует пользоваться программами prtconf, sysdef и dmesg.
Программа prtconf выдает информацию о конфигурации системы в том виде, в котором она иерархически представлена в системе; с помощью prtconf можно выяснить, "увидела" ли система то или иное устройство. Упоминание устройства в выводе prtconf означает только то, что устройство обнаружено среди оборудования компьютера. Это НЕ ЗНАЧИТ, что устройство нормально работает, и тем более не означает, что в системе установлен его драйвер.
Программа sysdef показывает больше информации о системе: здесь выводится не только список аппаратуры в системе, но и перечень псевдоустройств, загруженных модулей,
Программа dmesg выдает сообщения из файла протокола и список устройств, обнаруженных при последней перезагрузке системы. Эти сообщения можно также посмотреть в файле /var/adm/messages.
Для более детального изучения оборудования компьютера могут пригодиться программы scanpci ( /usr/X11/bin/scanpci – опрос устройств на шине PCI), psrinfo (информация о процессорах компьютера), isainfo (описание аппаратной архитектуры с точки зрения набора команд).
Команда psrinfo наиболее полезна с ключами -pv:
psrinfo -pv The physical processor has 2 virtual processors (0 1) x86 (AuthenticAMD 40F82 family 15 model 72 step 2 clock 1600 MHz) AMD Turion(tm) 64 X2 Mobile Technology TL-50
Следует иметь в виду, что многоядерный процессор виден системе как несколько процессоров (ровно столько, сколько ядер на кристалле). Управлять состоянием процессоров (например, делать часть из них недоступными системе) можно с помощью программы psradm.
На двухядерном процессоре AMD x64 Turion isainfo выдает такую информацию:
isainfo -v 64-bit amd64 applications tscp ahf cx16 sse3 sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx cmov amd_sysc cx8 tsc fpu 32-bit i386 applications tscp ahf cx16 sse3 sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx cmov amd_sysc cx8 tsc fpu
Для получения информации о временно подключаемых устройствах (например, USB-флэш) следует использовать команду
rmformat -l
Ключ -l указывать обязательно! Команда rmformat предназначена для форматирования подключенных устройств, и только ключ -l дает возможность просто посмтреть их список без форматирования.
Задача подключения нового оборудования сводится к двум этапам: загрузке соответствующего драйвера нового устройства в ядро и созданию файла устройства в каталоге /dev. Это справедливо для всех систем UNIX. В Solaris все немного сложнее: как вы помните, сначала надо создать файл устройства в /devices, а затем – соответствующие символические ссылки на него в /dev.
К счастью, эти задачи можно решать автоматизированно: в Solaris есть утилита devfsadm, которая автоматически распознает свежеподключенные устройства и создает необходимые файлы в /devices и /dev.
При загрузке ядро системы в состоянии выполнить автоматическую самонастройку, определяя, какие именно устройства подключены к системе. Если вы подключили любое новое устройство к компьютеру и оно в настоящее время не видно ядру (например, новый накопитель), следует создать файл /reconfigure и перезапустить систему:
touch reconfigure; reboot
После перезагрузки система увидит новое устройство, если только оно вообще поддерживается данной версией системы.
Вместо создания файла /reconfigure и перезапуска допустимо при загрузке системы дать команду из строки начального загрузчика:
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.
Для установки драйвера стороннего производителя надо следовать инструкциям, которые обычно доступны на сайте производителя устройства или в закачанном из Сети пакете, содержащем драйвер.
Установка драйвера производится командой add_drv. После выполнения этой программы файл драйвера будет размещен в соответствующем каталоге (см. таблицу 2.1).
После установки драйвера следует сообщить системе, что появилось новое устройство, – запустить devfsadm. При этом devfsadm должна создать ссылку из каталога /dev на соответствующее устройство в каталоге /devices.
Возможно, после этого потребуется загрузить модуль драйвера командой modload. Если устанавливается ifconfig имя_интерфейса plumb, чтобы интерфейс стал доступен для работы; например, для интерфейса vfe0 это будет выглядеть так:
ifconfig vfe0 plumb
| /kernel/drv | 32-bit boot |
| /kernel/drv/sparcv9 | |
| /kernel/drv/amd64 | |
| /usr/kernel/drv | other 32-bit drivers that could potentially be shared between platforms |
| /usr/kernel/drv/sparcv9 | other |
| /usr/kernel/drv/amd64 | other |
| /platform/'uname -i'/kernel/drv | 32-bit |
| /platform/'uname -i'/kernel/drv/sparcv9 | |
| /platform/'uname -i'/kernel/drv/amd64 |
Некоторые новые устройства, подключаемые к системе, не требуют никакой подобной установки. Например, при подключении внешних USB-накопителей ("флэшек") последние распознаются автоматически как внешние блочные устройства и автоматически монтируются компонентом графической среды (в GNOME – gnome-volume-manager ).
Существует несколько способов установить программу или пакет программ в UNIX. Способ, который выберете вы, зависит от того, в каком виде доступен пакет программ, который вам требуется. Если пакет доступен только в виде набора исполняемых файлов, уже скомпилированных для вашей платформы, то выбор невелик: придется устанавливать то, что имеется.
Найти пакет. Например, хочется иметь более наглядное средство наблюдения за процессами, чем ps. На sunfreeware.com ищем 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
Ошибка вызвана тем, что мы поторопились ввести 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
Как видно, пакетов, в названиях которых имеется подстрока top, установлено немало, и наш свежий – на самом первом месте.
Удалить пакет можно командой pkgrm, например:
pkgrm SMCtop.
Иногда бывает необходимо не просто установить пакет, который получен в виде набора исполняемых файлов и документации, а собрать его из исходных текстов. В этом случае надо следовать инструкциям по установке, которые обычно находятся в файлах README и INSTALL дистрибутива пакета. В любом случае вам понадобится программа make (поставляется в комплекте с Solaris).
Коммерческая версия компилятора С фирмы Sun в версиях до Solaris 9 включительно не поставлялась с бесплатным набором компакт-дисков дистрибутива Solaris. Его надо было покупать отдельно. Однако начиная с версии Solaris 10, компиляторы с языков C, C++ и FORTRAN входят в бесплатно распространяемый пакет Sun Studio. Этот пакет можно получить бесплатно на диске с дистрибутивом Solaris Express Developer Edition (он устанавливается автоматически при выборе установки в графическом режиме) или загрузить из Сети отдельно. Кроме того, его всегда можно установить с дистрибутивного диска Solaris Express Developer Edition. Имя пакета Sun Studio – SUNWspro.
В комплект дистрибутива Solaris начиная с версии 10 входит компилятор gcc, но предположим, что мы хотим взять оригинальный пакет с веб-сайта разработчика gcc и загрузим файл gcc_small-3.3.2-sol9-intellocal.gz, после чего установим пакет gcc для последующей компиляции программы из исходных текстов. Разумеется, если у нас уже установлен Sun Studio, мы можем воспользоваться им. Вернемся пока к установке пакетов на примере 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]:
Далее действуем, как в предыдущем примере.
При установке программ из исходных текстов следует руководствоваться инструкциями из файлов README и INSTALL, которые присутствуют в дистрибутиве.
pkginfo application SMCtop top system SUNW1251f Russian 1251 fonts ALE SUNW5ttf Traditional Chinese BIG5 True Type Fonts Package ALE SUNW5xmft Traditional Chinese (BIG5) X Windows 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)
Кроме стандартного диспетчера пакетов pkgadd/pkginfo в Solaris допустимо использование диспетчера пакетов стороннего производителя. С веб-сайта blastwave.org можно скачать программу pkg-get, которая служит для автоматического скачивания, удовлетворения зависимостей и установки пакетов и всех пакетов, от которых устанавливаемый пакет зависит. Для корректной работы pkg-get следует выполнить следующее (все делается при работе в роли администратора root ):
export http_proxy="http://my.proxy.server.com:3128"
pkg-ge t с веб-сайта blastwave:pkgadd -d http://www.blastwave.org/pkg_get.pkg
После того как pkg-get установится ровно так, как было описано в предыдущем разделе, следует открыть страницу с полным списком доступных на blastwave.org пакетов (http://www.blastwave.org/packages.php), найти нужный вам пакет и в окне терминала вашего компьютера дать команду pkg-get -i имя_пакета
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. Кстати, если имя пакета начинается на SUNW, это значит, что пакет создан компанией Sun Microsystems, а если начало имени пакета иное – то это продукт третьей фирмы. Как видите, последнее относится и к программе 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 указано, в какой каталог установлена программа, можно искать в нем нужную программу, чтобы понять, в какой каталог она установлена (если установлена вообще).
Для того, чтобы просмотреть базу данных установленных пакетов, удобно использовать программу pkginfo – стандартный интерфейс получения информации о пакетах.
В графическом режиме просматривать, устанавливать и удалять пакеты поможет диспетчер пакетов prodreg (рис. 2.1).
(рис 2.1) Окно программы prodregОбновления пакетов программ (например, bind ) или операционной системы в целом выходят, когда в существующем ПО нашли брешь с точки зрения безопасности или неверный код, либо при необходимости дополнить функциональность программы (системы). Обновление может представлять собой "заплатку", т.е. кусочек измененного исходного текста, файла конфигурации или кода, которую (заплатку) следует "наложить на ПО", т.е. внести в злосчастное ПО, требующее изменения, те изменения, которые описаны в файле-заплатке. Кроме этого, речь может идти о полноценном обновлении, когда один файл просто заменяется другим.
Для работы с обновлениями и заплатками в Solaris предсмотрен ряд программ: 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, которой нужно два файла: исходный текстовый файл, который надо изменить, и файл заплатки (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 в Solaris имеется программа gpatch (GNU Patch), которая, в отличие от традиционной команды patch, строго соответствует стандарту POSIX и несколько отличается в интерпретации ключей и обработке полных имен файлов в файлах заплаток. Применяйте ту программу, которая требуется согласно описанию заплатки; в трудных случаях имеет смысл изучить раздел Compatibility issues в man gpatch.
Программы patch и gpatch не предназначены для установки обновлений Solaris, которые Sun Microsystems регулярно выпускает по мере обнаружения ошибок в существующем коде, или для усовершенствования тех или иных системных программ. Для установки обновлений системы, а это – наборы двоичных файлов, используются программы patchadd. Для удаления обновления и возвращения системы в состояние, в котором она пребывала до обновления, применяйте patchrm. Программы patchadd и patchrm работают с Solaris версий 2.x и более новых.
С помощью команды smpatch можно установить обновления системы на несколько машин сразу, удалить их с нескольких машин и выяснить текущее состояние систем в сети с точки зрения установленных обновлений. Работа с smpatch требует заранее создать роль, отвечающую за управление обновлениями, в каждой из систем вашей сети.
OpenSolaris — это находящаяся в постоянной разработке версия Solaris, в то время как Solaris 10 — стабильная версия системы. OpenSolaris появился в результате проекта под кодовым названием Indiana; материалы проекта доступны на сайте opensolaris.org. Дистрибутив OpenSolaris можно загрузить с сайта opensolaris.com.
Систему отличают прежде всего принципиально новая подсистема управления пакетами (IPS — Image Packaging System), значительно улучшенная программа установки и возможность работать с несколькими средами загрузки на одном физическом разделе диска (загружая в разное время системы с разными версиями пакетов и/или ядра).
IPS подобна диспетчеру пакетов в Debian GNU/Linux – т.е. устанавливается только базовая версия системы, а все необходимые пакеты следует установить через сеть из репозитория. Последний может находиться как на сайте pkg.opensolaris.org, так и в вашей локальной сети. Локальный репозиторий, разумеется, будет требовать регулярного обновления.
Обновления ядра также доступны через репозиторий.
Диспетчер пакетов устанавливает пакеты на файловую систему ZFS, и широко использует ее функциональность в части создания снимков при установке новых пакетов – для возможности быстрого возврата к тому состоянию системы, которое было до установки пакета.
Для загрузки пакета из репозитория и управления им в OpenSolaris следует использовать команду pkg.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.