В смысле: храняться ли они на диске и в каком виде? Чем отличаются от обычных?
Судя по виду и по смыслу - это файлы настроек девайсов, но по всем описаниям вроде, как подразумевается, что это каналы связи с драйверами. А где тогда храняться сами настройки? С другой стороны, если я пишу в dev-файл, драйвер должен сразу заносить результат в регистры и т.п., как он перехватывает факт записи? Есть ли какой-нить стандарт разработки dev-файла и взаимодействия драйвера с ним для новых устройств (кроме тривиального блочный/поточный, тип, номер)?
/dev-файлы это обычные inode-ы со спец атрибутами09.02.04 05:25 Автор: amirul <Serge> Статус: The Elderman
> В смысле: храняться ли они на диске и в каком виде? Чем > отличаются от обычных? Хранятся, но у них нет тела. Только запись в директории (inode).
То бишь директория - тоже обычный файл, но с атрибутом "директория" и отсюда система знает как с ей работать. А все настройки девайсов это собственно атрибуты, указывающие на блочное или потоковое устройство (b или c) и два новера major и minor device number.
major - разные устройства, minor - разные instance-ы этого устройства.
В ядре есть таблица обработчиков для major нумберов (благо их всего 256). Когда дривер (вкомпилированный или в виде модуля) устройства инициализируется он регистрируется в системе: мол, я буду обрабатывать устройства с таким-то мажор нумбером. Все остальное - дело техники. При обращении к данному файлу система будет вызывать зарегистрированные колбеки. Как их понимать - дело самого драйвера.
> стандарт разработки dev-файла и взаимодействия драйвера с > ним для новых устройств (кроме тривиального > блочный/поточный, тип, номер)? Да. Выделяешь у линуса (или для кого ты там разрабатывать собрался) major number - все остальное пишешь как другие делают (в принципе в инете есть инфа на эту тему, ключевые слова "writing LKM", "linux device drivers" и пр).