Я новичок в драйвере устройства ....

Я хотел бы знать, как файловые операции расположены из файлов устройств и драйверов с использованием старших и младших номеров?

1 ответ1

1

Если вы учитесь программировать драйверы устройств Linux, я должен сказать вам, что на эту тему есть бесплатная электронная книга.

Драйверы для устройств Linux, третье издание

LDD3 Глава 3: Драйверы Char

Наши ответы должны содержать больше, чем просто ссылки. Итак, вот соответствующая выдержка.

crw-rw-rw- 1 root root 1, 3 Apr 11 2002 null
crw------- 1 root root 10, 1 Apr 11 2002 psaux
crw------- 1 root root 4, 1 Oct 28 03:04 tty1
crw-rw-rw- 1 root tty 4, 64 Apr 11 2002 ttys0
crw-rw---- 1 root uucp 4, 65 Apr 11 2002 ttyS1
crw--w---- 1 vcsa tty 7, 1 Apr 11 2002 vcs1
crw--w---- 1 vcsa tty 7, 129 Apr 11 2002 vcsa1
crw-rw-rw- 1 root root 1, 5 Apr 11 2002 zero

Традиционно, основной номер идентифицирует драйвер, связанный с устройством. Например, /dev /null и /dev /zero управляются драйвером 1, тогда как виртуальные консоли и последовательные терминалы управляются драйвером 4; аналогично, оба устройства vcs1 и vcsa1 управляются драйвером 7. Современные ядра Linux позволяют нескольким драйверам разделять основные числа, но большинство устройств, которые вы увидите, по-прежнему организованы по принципу «один главный-один-драйвер».

Младший номер используется ядром, чтобы точно определить, на какое устройство ссылаются. В зависимости от того, как написан ваш драйвер (как мы увидим ниже), вы можете либо получить прямой указатель на ваше устройство из ядра, либо вы можете использовать младший номер самостоятельно в качестве индекса в локальном массиве устройств. В любом случае, само ядро почти ничего не знает о младших числах, кроме того, что они относятся к устройствам, реализованным вашим драйвером.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .