Европейский Университет в Санкт-Петербурге
Опубликован: 19.10.2005 | Доступ: свободный | Студентов: 1764 / 170 | Оценка: 4.31 / 3.82 | Длительность: 18:28:00
Лекция 2:

Настройка ядра ОС, установка программ и обновлений

< Лекция 1 || Лекция 2: 12345 || Лекция 3 >

Загрузка модулей

Некоторые полезные модули, если они не требуются для выполняемых системой задач, могут не загружаться в начале работы системы. Для того чтобы обеспечить их загрузку, следует использовать вышеупомянутые настройки в /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 в этом примере сильно сокращен.

< Лекция 1 || Лекция 2: 12345 || Лекция 3 >