Я читаю о разных драйверах в Linux, и я немного смущен различиями между ними и драйверами char. Один источник, журнал Linux, пишет:
Алессандро рассказывает нам, как регистрировать небольшое устройство, нуждающееся в одном точка входа с драйвером misc.
Иногда людям нужно писать "небольшие" драйверы устройств для поддержки пользовательских хаков - либо аппаратных, либо программных. С этой целью, а также для размещения некоторых реальных драйверов Ядро Linux экспортирует интерфейс, позволяющий модулю регистрировать свои собственные небольшие драйверы. Драйвер misc был разработан для этой цели.
Итак, из этого я понял, что есть простой драйвер (в данном случае с одной точкой входа), который является драйвером misc. Затем в другом источнике, Essential Linux Device Drivers, говорится:
Различные (или разные) драйверы - это простые драйверы char, которые разделяют некоторые общие характеристики. Поскольку разные драйверы являются char драйверами, более раннее обсуждение пунктов назначения драйверов char для разговора драйверов.
Теперь это говорит о том, что драйверы char, но, возможно, подмножество функций, а драйверы char могут иметь более одной точки входа (например, ioctl()
или open()
или read()
)
Итак, что, в терминах кодирования Linux C, есть различия между драйверами char и misc? (Помимо очевидного значительного присвоения номера (10) для всех драйверов misc). Есть ли разница в поддерживаемых точках входа? Является ли мое предположение правильным, что у разных драйверов устройств есть только подмножество того, что вы можете получить в полном драйвере устройства char?