понедельник, 18 октября 2010 г.

2.10. Краткое резюме

Перевод с английского на русский

2.10. Краткий справочник

В этом разделе собраны описания функций ядра, переменных, макросов и файлов /proc, затронутых в данной главе. Они предназначены для использования в справочных целях. Каждый объект указывается после соответствующего заголовочного файла, если таковой есть. Подобные разделы, подводящие краткие итоги по новому материалу, есть почти в каждой главе, начиная с текущей. Объекты в данных разделах обычно перечисляются в том же порядке, в каком они были представлены в главе:
insmod
modprobe
rmmod
  • Пользовательский утилиты, служащие для загрузки модулей в    работающее ядро и их выгрузки.

#include
module_init(init_function);
module_exit(cleanup_function);

  • Макросы, обозначающие функции инициализации и очистки модулей.

__init
__initdata
__exit
__exitdata
  • Маркеры для функций (__init и __exit) и данных (__initdata и __exitdata), использующихся только во время инициализации и очистки модуля. Объекты, помеченные для инициализации, могут быть отброшены после окончания инициализации; объекты, помеченные для очистки, могут быть отброшены, если выгрузка модуля не предусмотрена конфигурацией ядра. Эти маркеры работают путем помещения соответствующих объектов в специальный ELF-раздел исполняемого файла.

#include
  • Один из наиболее важных заголовочных файлов. Он содержит определения большей части API ядра, используемого драйвером, включая функции для засыпания и многочисленные переменные.

struct task_struct *current;
Текущий процесс.
current->pid
current->comm
  • Идентификатор процесса и имя команды для текущего процесса.

obj-m
  • Символ makefile'а, используемый системой сборки ядра для определения, какие модули должны быть собраны в текущем каталоге.

/sys/module
/proc/modules
  • /sys/module это иерархия каталогов, содержащая информацию о модулях, загруженных на данный момент. /proc/modules -- старый вариант представления этой информации в одном файле. Записи содержат имя модуля, количество памяти, занимаемое каждым модулем и количество обращений. Дополнительные данные в конце каждой строки указывают флаги, активные для модуля в данный момент.

vermagic.o
  • Объектный файл из каталога исходных кодов ядра, описывающий окружение, для которого был собран модуль.

#include
  • Обязательный заголовочный файл, подключаемый в коде модуля.

#include
  • Заголовочный файл, содержащий информацию о версии собираемого ядра.

LINUX_VERSION_CODE
  • Целочисленный макрос, полезный при проверке версий с помощью #ifdef.

EXPORT_SYMBOL (symbol);
EXPORT_SYMBOL_GPL (symbol);
  • Этот макрос используется для экспортирования символа в ядро. Вторая форма экспортирует без использования информации о версиях, а третья ограничивает экспорт модулями с лицензией GPL.
  •  
MODULE_AUTHOR(author);
MODULE_DESCRIPTION(description);
MODULE_VERSION(version_string);
MODULE_DEVICE_TABLE(table_info);
MODULE_ALIAS(alternate_name);
  • Помещает описание модуля в объектный файл.

module_init(init_function);
module_exit(exit_function);
  • Макросы, определяющие функции инициализации и завершения модуля.
 
 
#include moduleparam.h> 

module_param(variable, type, perm);
  • Макрос, создающий параметр модуля, который может определяться пользователем при загрузке модуля (или при загрузке ядра, если код модуля встраивается в ядро). Тип может быть bool, charp, int, invbool, long, short, ushort, uint, ulong, или intarray.

#include
int printk(const char * fmt, ...);

  • Аналог printf для кода ядра
  •  
Переведено на сайте www.notabenoid.com
http://notabenoid.com/book/11832/38235
Внимание! Этот перевод, возможно, ещё не готов,
так как модераторы установили для него статус
"перевод редактируется"

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.