Работа с файлами устройств в режиме пользователяВ традиционных системах Unix (и в ранних версиях Linux) старший и младший номера файла устройства имели длину 8 битов. Таким образом, допускалось существование максимум 65 536 блочных файлов устройств и столько же символьных. Казалось бы, такого количества достаточно, но, к сожалению, это не так.
Реальная проблема заключается в том, что файлы устройств традиционно размещаются раз и навсегда в каталоге /dev. Следовательно, каждое логическое устройство в системе должно иметь соответствующий файл с хорошо продуманной нумерацией. Официальный реестр выделенных номеров устройств и подкаталогов каталога /dev хранится в файле Documentation/devices.txt; макросы, соответствующие старшим номерам устройств можно также найти в файле include/linux/major.h.
К сожалению, количество различных аппаратных устройств в наши дни так велико, что почти все номера устройств уже выделены. Официальный реестр номеров устройств хорошо работает в средних системах Linux, однако может не подходить для широкомасштабных систем. Более того, в современных системах могут быть установлены сотни или тысячи дисков одного типа, и 8-битового младшего номера уже будет недостаточно. Например, в реестре зарезервированы номера устройств для 16 SCSI-дисков, каждый из которых имеет 15 разделов. Если в системе установлено больше 16 SCSI-дисков, то
стандартное назначение старших и младших номеров должно быть изменено. Это нетривиальная задача, которая требует модификации исходного кода ядра и затрудняет сопровождение системы.
Чтобы решить эту проблему, размер номеров устройств в Linux 2.6 был увеличен. Теперь старший номер занимает 12 битов, а младший— 20. Оба номера обычно хранятся в 32-битовой переменной типа dev t. Макросы major и minor извлекают соответственно старший и младший номер из этой переменной, а макрос mkdev записывает в нее два номера. В целях обратной совместимости ядро корректно обрабатывает старые файлы устройств, имеющие 16- битовые номера устройств.
Дополнительные номера устройств не распределены статически в официальном реестре, потому что они нужны лишь при необычных требованиях, предъявляемых к номерам устройств. Современные способы работы с файлами устройств отличаются динамичностью в отношении присваивания номеров устройствам и создания файлов устройств.
замки cisa ремонт