Читать «Энциклопедия разработчика модулей ядра Linux» онлайн - страница 45

Ори Померанц

Примечания

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.