Ори Померанц - Энциклопедия разработчика модулей ядра Linux
Примечания
1
Причина, по которой я предпочитаю не компилировать как root в том, что так наиболее безопасно. Я работаю в службе компьютерной безопасности, так что я параноидален.
2
В версии 2.0, в версии 2.2 это выполняется для нас автоматически, если мы устанавливаем inode в ноль.
3
Различие в том, что операции с файлом имеют дело именно с файлом непосредственно, а inode операции имеют дело с путями ссылки на файл, типа создания связей с ним.
4
Обратите внимание, что здесь роли чтения и записи перевернуты снова , так что при чтении ioctl должен послать информацию ядру а при записи должен получить информацию из ядра.
5
Это не точно. Вы не способны передать структуру, например, через ioctl. Но Вы можете передать указатель на структуру.
6
Не может быть с тех пор, как под C объектный файл имеет только расположение глобальных переменных, но не их тип. Именно поэтому файлы заголовков необходимы
7
Самый простой способ держать файл открытым состоит в том, чтобы открыть его tail -f.
8
Это означает, что процесс — все еще в ядерном режиме — насколько процесс затронут, он выдал системный вызов open и системный вызов все же не возвратился. Процесс не знает, что кто-то еще использовал CPU в течение времени между моментом, выдачи обращения и возвратом
9
Это потому что мы использовали module_interruptible_sleep_on. Мы могли бы использовать module_sleep_on вместо него, но это закончится чрезвычайно сердитыми пользователями, чей Ctrl-C игнорируется.
10
Teletype, первоначально комбинация принтера с клавиатурой, используемая, для связи с Unix системой, и сегодня абстракция для текстового потока, используемого для программы Unix, независимо от того, является ли это физическим терминалом, xterm на дисплее X, сетевое подключение, используемое telnet и т.д.
11
Они действительно те же самые.
12
Это стандартная вещь в архитектуре Intel, на которой началась разработка системы Linux.
13
queue_task_irq защищен от этого глобальной блокировкой. В версии 2.2 queue_task_irq и queue_task защищены блокировкой.
14
Исключительная ситуация: threaded-процессы, которые могут выполняться на нескольких CPU сразу.
15
Значение безопасно, чтобы использовать с SMP.