Я новичок в драйвере устройства ....
Я хотел бы знать, как файловые операции расположены из файлов устройств и драйверов с использованием старших и младших номеров?
Я новичок в драйвере устройства ....
Я хотел бы знать, как файловые операции расположены из файлов устройств и драйверов с использованием старших и младших номеров?
Если вы учитесь программировать драйверы устройств Linux, я должен сказать вам, что на эту тему есть бесплатная электронная книга.
Драйверы для устройств Linux, третье издание
Наши ответы должны содержать больше, чем просто ссылки. Итак, вот соответствующая выдержка.
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 позволяют нескольким драйверам разделять основные числа, но большинство устройств, которые вы увидите, по-прежнему организованы по принципу «один главный-один-драйвер».
Младший номер используется ядром, чтобы точно определить, на какое устройство ссылаются. В зависимости от того, как написан ваш драйвер (как мы увидим ниже), вы можете либо получить прямой указатель на ваше устройство из ядра, либо вы можете использовать младший номер самостоятельно в качестве индекса в локальном массиве устройств. В любом случае, само ядро почти ничего не знает о младших числах, кроме того, что они относятся к устройствам, реализованным вашим драйвером.