Файл устройства
В Unix-подобных операционных системах , файл устройства узел устройства или специальный файл — это интерфейс для драйвера устройства , который появляется в файловой системе , как если бы это был обычный файл . Существуют также специальные файлы в DOS , OS/2 и Windows . Эти специальные файлы позволяют прикладной программе взаимодействовать с устройством, используя его драйвер устройства посредством стандартных ввода-вывода системных вызовов . Использование стандартных системных вызовов упрощает многие задачи программирования и приводит к согласованным механизмам ввода-вывода в пользовательском пространстве независимо от особенностей и функций устройства.
Обзор
[ редактировать ]Файлы устройств обычно предоставляют простые интерфейсы для стандартных устройств (таких как принтеры и последовательные порты), но также могут использоваться для доступа к конкретным уникальным ресурсам на этих устройствах, например к разделам диска . Кроме того, файлы устройств полезны для доступа к системным ресурсам , которые не имеют связи с каким-либо реальным устройством, например, к приемникам данных и генераторам случайных чисел .
В Unix-подобных операционных системах существует два основных типа файлов устройств: специальные символьные файлы и специальные блочные файлы . Разница между ними заключается в том, какой объем данных считывается и записывается операционной системой и оборудованием. Их вместе можно назвать специальными файлами устройства в отличие от именованных каналов , которые не связаны с устройством, но также не являются обычными файлами.
MS-DOS позаимствовала концепцию специальных файлов из Unix, но переименовала их в устройства . [1] Поскольку ранние версии MS-DOS не поддерживали иерархию каталогов , устройства отличались от обычных файлов тем, что в их именах использовались зарезервированные слова , которые нельзя использовать в качестве имен папок или файлов; например: слово CON
это зарезервированное слово. Они были выбраны из соображений совместимости с CP/M и до сих пор присутствуют в современной Windows для обеспечения обратной совместимости. Имена не чувствительны к регистру, поэтому «con», «Con» и «CON» — недопустимые имена.
В Windows XP ввод «Con» в команду «Выполнить» возвращает сообщение об ошибке: «С этим файлом не связана программа для выполнения этого действия. Создайте ассоциацию на панели управления параметрами папок». Попытка переименовать любой файл или папку с использованием зарезервированного имени автоматически возвращает объекту его предыдущее имя (или «Новая папка», «Новый текстовый документ» и т. д.) без уведомления или сообщения об ошибке. [2] В Windows Vista и более поздних версиях при попытке использовать зарезервированное имя для файла или папки появляется сообщение об ошибке: «Указанное имя устройства неверно». [2]
В некоторых Unix-подобных системах большинство файлов устройств управляются как часть виртуальной файловой системы, традиционно монтируемой по адресу /dev
, возможно, связанный с управляющим демоном, который отслеживает добавление и удаление оборудования во время выполнения, внося соответствующие изменения в файловую систему устройства, если это не делается автоматически ядром, и, возможно, вызывает сценарии в системном или пользовательском пространстве для обработки особых потребностей устройства. FreeBSD и , DragonFly BSD Darwin имеют специальную файловую систему devfs ; Узлы устройств автоматически управляются этой файловой системой в пространстве ядра . Раньше в Linux была аналогичная реализация devfs , но позже от нее отказались, а затем удалили, начиная с версии 2.6.17; [3] Сейчас Linux в основном использует реализацию пользовательского пространства , известную как udev , но существует множество вариантов.
В системах Unix, которые поддерживают изоляцию процессов chroot , таких как контейнеры Solaris , обычно для каждой среды chroot требуется свой собственный /dev
; эти точки монтирования будут видны в операционной системе хоста в различных узлах дерева глобальной файловой системы. Ограничивая узлы устройств, заполняемые экземплярами chroot /dev
изоляция оборудования может быть обеспечена средой chroot (программа не может вмешиваться в оборудование, которое она не может ни видеть, ни называть — еще более сильная форма контроля доступа, Unix чем разрешения файловой системы ).
MS-DOS управляла конфликтами аппаратных устройств (см. программу резидентного завершения и пребывания ), открывая каждый файл устройства эксклюзивно. Приложение, пытающееся получить доступ к уже используемому устройству, обнаружит, что не может открыть узел файла устройства. разнообразная семантика драйверов устройств, В Unix и Linux реализована касающаяся одновременного доступа . [4]
Unix и Unix-подобные системы
[ редактировать ]операционной системы Узлы устройств соответствуют ресурсам, которые ядро уже выделило. Unix идентифицирует эти ресурсы по старшему и младшему номеру . [5] оба хранятся как часть структуры узла . Присвоение этих номеров происходит однозначно в разных операционных системах и на разных компьютерных платформах . Обычно старший номер идентифицирует драйвер устройства, а младший номер идентифицирует конкретное устройство (возможно, из многих), которым управляет драйвер: [6] в этом случае система может передать младший номер водителю. Однако при наличии динамического распределения номеров это может быть не так (например, во FreeBSD 5 и выше).
Как и в случае с другими специальными типами файлов, компьютерная система обращается к узлам устройств с помощью стандартных системных вызовов и обрабатывает их как обычные компьютерные файлы. Существует два стандартных типа файлов устройств; к сожалению, их имена довольно нелогичны по историческим причинам, и в результате объяснения разницы между ними часто неверны.
Символьные устройства
[ редактировать ]Специальные символьные файлы или символьные устройства обеспечивают небуферизованный прямой доступ к аппаратному устройству. Они не обязательно позволяют программам читать или записывать отдельные символы за раз; это зависит от рассматриваемого устройства. Например, символьное устройство для жесткого диска обычно требует, чтобы все операции чтения и записи были выровнены по границам блоков, и наверняка не позволяет читать ни одного байта.
Символьные устройства иногда называют необработанными устройствами , чтобы избежать путаницы, связанной с тем фактом, что символьное устройство для части блочного оборудования обычно требует, чтобы программы читали и записывали выровненные блоки.
Блокировать устройства
[ редактировать ]Блокировка специальных файлов или блочных устройств обеспечивает буферизованный доступ к аппаратным устройствам и некоторую абстракцию от их особенностей. [7] В отличие от символьных устройств, блочные устройства всегда позволяют программисту читать или записывать блок любого размера (включая отдельные символы/байты) и любого выравнивания. Обратной стороной является то, что, поскольку блочные устройства буферизуются, программист не знает, сколько времени пройдет, прежде чем записанные данные будут переданы из буферов ядра на фактическое устройство, или, в действительности, в каком порядке две отдельные записи поступят на физическое устройство. Кроме того, если одно и то же оборудование предоставляет как символьные, так и блочные устройства, существует риск повреждения данных из-за того, что клиенты, использующие символьное устройство, не знают об изменениях, внесенных в буферы блочного устройства.
Большинство систем создают как блочные, так и символьные устройства для представления оборудования, такого как жесткие диски. В частности, FreeBSD и Linux этого не делают; в первом удалена поддержка блочных устройств, [8] тогда как последний создает только блочные устройства. Чтобы получить эффект символьного устройства от блочного устройства в Linux, необходимо открыть устройство с помощью специфичного для Linux Флаг O_DIRECT .
Псевдоустройства
[ редактировать ]Узлы устройств в Unix-подобных системах не обязательно должны соответствовать физическим устройствам . Узлы, у которых отсутствует это соответствие, называются псевдоустройствами . Они предоставляют различные функции, выполняемые операционной системой. Некоторые из наиболее часто используемых (символьных) псевдоустройств включают в себя:
- /dev/null – принимает и отбрасывает все записанные на него данные; обеспечивает индикацию конца файла при чтении.
- /dev/zero – принимает и отбрасывает весь записанный на него ввод; создает непрерывный поток нулевых символов (байтов с нулевым значением) в качестве вывода при чтении.
- /dev/full — создает непрерывный поток нулевых символов (байтов с нулевым значением) в качестве вывода при чтении и генерирует Ошибка ENOSPC («диск заполнен») при попытке записи на него.
- /dev/random ядра — производит байты, генерируемые криптографически безопасным генератором псевдослучайных чисел . Его точное поведение зависит от реализации, а иногда и от таких вариантов, как /dev/urandom или /dev/arandom также предоставляются.
- /Дев/стандартный ввод , /dev/стандартный вывод , /dev/stderr процесса — доступ к стандартным потокам .
- /dev/fd/ n процесса – обращается к файловому дескриптору n .
Кроме того, псевдоустройства, специфичные для BSD, с Интерфейс ioctl также может включать в себя:
- /dev/pf – позволяет процессам пользовательского пространства управлять PF через ioctl- интерфейс.
- /dev/bio – предоставляет ioctl- доступ к устройствам в противном случае не найден как Узлы /dev , используемые bioctl для реализации RAID управления в OpenBSD и NetBSD .
- /dev/sysmon NetBSD — используется платформой envsys для мониторинга оборудования , доступ к которому осуществляется в пользовательском пространстве через proplib(3) с помощью envstat . утилита [9]
Создание узла
[ редактировать ]Узлы создаются mknod Системный вызов . Программа командной строки для создания узлов также называется мкнод . Узлы можно перемещать или удалять обычными системными вызовами файловой системы ( переименовывать , отсоединить ) и команды ( МВ , РМ ).
Некоторые версии Unix включают сценарий makedev или MAKEDEV для создания всех необходимых устройств в каталоге. /дев . Это имеет смысл только в системах, устройствам которых статически присвоены старшие номера (например, посредством жесткого кодирования их в модуле ядра).
Некоторые другие системы Unix, такие как FreeBSD, используют управление узлами устройств на основе ядра только через devfs и не поддерживают создание узлов вручную. mknod(2) и системный вызов Команда mknod(8) существует для обеспечения совместимости с POSIX, но созданные вручную узлы устройств вне devfs вообще не будут работать. [10]
Соглашения об именах
[ редактировать ]Следующие префиксы используются для имен некоторых устройств в Иерархия /dev для определения типа устройства:
- lp : линейные принтеры (сравните lp )
- pt : псевдотерминалы
- tty : терминалы
Некоторые дополнительные префиксы стали широко использоваться в некоторых операционных системах:
- fb : буфер кадра
- fd : (платформа) дискеты , хотя эта же аббревиатура также часто используется для обозначения файлового дескриптора.
- hd : («классический») драйвер IDE (ранее использовался для жестких дисков ATA , приводов оптических дисков ATAPI и т. д.)
- hda : главное устройство на первом канале ATA (обычно обозначается старшим номером 3 и младшим номером 0).
- hdb : ведомое устройство на первом канале ATA.
- hdc : главное устройство на втором канале ATA.
- hdd : ведомое устройство на втором канале ATA.
- парпорт , pp : параллельные порты
- mem : Основная память (символьное устройство)
- nbd : Сетевое блочное устройство : Абстракция, представляющая блочные устройства, монтируемые через сеть (или из образов с помощью qemu-nbd).
- NVMe Драйвер :
- nvme0 : контроллер устройства первого зарегистрированного устройства (символьное устройство)
- nvme0n1 : первое пространство имен первого зарегистрированного устройства (блочное устройство)
- nvme0n1p1 : первый раздел первого зарегистрированного пространства имен первого зарегистрированного устройства (блочное устройство)
- ММС Драйвер :
- mmcblk : драйвер хранилища для носителей MMC ( SD- карты, чипы eMMC на ноутбуках и т. д.)
- mmcblk0 : первое зарегистрированное устройство
- mmcblk0p1 : первый раздел первого зарегистрированного устройства.
- mmcblk : драйвер хранилища для носителей MMC ( SD- карты, чипы eMMC на ноутбуках и т. д.)
- Драйвер SCSI , также используемый libATA (современный драйвер PATA / SATA ), USB , IEEE 1394 и т. д.:
- sd : драйвер запоминающего устройства (блочное устройство)
- sda : первое зарегистрированное устройство
- sdb, sdc и т. д.: второе, третье и т. д. зарегистрированные устройства
- ses : Драйвер корпуса
- sg : общий уровень SCSI .
- sr : драйвер «ROM» (приводы оптических дисков, ориентированные на данные; scd — это всего лишь вторичный псевдоним)
- st : магнитной ленты драйвер
- sd : драйвер запоминающего устройства (блочное устройство)
- tty : терминалы
- ttyS : (платформа) последовательного порта драйвер
- ttyUSB : последовательные преобразователи USB, модемы и т. д.
Канонический список префиксов, используемых в Linux, можно найти в Linux Device List , официальном реестре выделенных номеров устройств и Узлы каталога /dev для операционной системы Linux. [11]
Для большинства устройств за этим префиксом следует номер, однозначно идентифицирующий конкретное устройство. Для жестких дисков буква используется для идентификации устройств, а за ней следует номер для обозначения разделов . Таким образом, файловая система может «знать» область на диске как /dev/sda3 , например, или «увидеть» сеанс сетевого терминала, связанный с /dev/pts/14 .
На дисках, использующих типичную главную загрузочную запись ПК , номера устройств основного и дополнительного расширенного раздела пронумерованы от 1 до 4, а индексы любых логических разделов — от 5 и выше, независимо от структуры предыдущих разделов (их родительских расширенных разделов). раздел не обязательно должен быть четвертым разделом на диске, и не обязательно должны существовать все четыре основных раздела).
Имена устройств обычно не переносятся между различными вариантами Unix-подобных систем, например, в некоторых системах BSD устройства IDE называются /dev/wd0 , /dev/wd1 и т. д.
devfs
[ редактировать ]devfs — это конкретная реализация файловой системы устройства в Unix-подобных операционных системах, используемая для представления файлов устройства. Базовый механизм реализации может различаться в зависимости от ОС.
Хранить эти специальные файлы в физически реализованной файловой системе, такой как жесткий диск, неудобно, и, поскольку для этого в любом случае требуется помощь ядра, возникла идея специальной логической файловой системы, которая не хранится физически.
Определить, когда устройства готовы появиться, непросто. Подход devfs заключается в том, что драйвер устройства запрашивает создание и удаление записей devfs, связанных с устройствами, которые он включает и отключает.
ПК DOS, TOS, OS/2 и Windows
[ редактировать ]Файл устройства — это зарезервированное ключевое слово, используемое в системах PC DOS , TOS , OS/2 и Windows для разрешения доступа к определенным портам и устройствам.
MS-DOS позаимствовала концепцию специальных файлов из Unix, но переименовала их в устройства . [1] Поскольку ранние версии MS-DOS не поддерживали иерархию каталогов , устройства отличались от обычных файлов тем, что их имена составляли зарезервированные слова . Это означает, что определенные имена файлов были зарезервированы для устройств и не должны использоваться для именования новых файлов или каталогов. [12] Сами зарезервированные имена были выбраны для совместимости с обработкой «специальных файлов». PIP
команда в CP/M . В DOS существовало два типа устройств: блочные устройства (используемые для дисковых накопителей) и символьные устройства (как правило, все остальные устройства, включая устройства COM и PRN). [13]
DOS использует файлы устройств для доступа к принтерам и портам. Большинство версий Windows также содержат эту поддержку, что может вызвать путаницу при попытке создать файлам и папкам определенные имена, поскольку они не могут иметь эти имена. [14] Версии 2.x MS-DOS предоставляют AVAILDEV
CONFIG.SYS , который, если он установлен в значение Параметр FALSE
, делает эти специальные имена активными только с префиксом \DEV\
, что позволяет создавать обычные файлы с этими именами. [15]
GEMDOS , DOS-подобная часть Atari TOS , поддерживала имена устройств, аналогичные DOS, но в отличие от DOS требовала завершающего символа ":" (в DOS это необязательно), чтобы идентифицировать их как устройства, а не обычные имена файлов (таким образом, " CON:» будет работать как в DOS, так и в TOS, но «CON» будет называть обычный файл в TOS, а консольное устройство — в DOS). В MiNT и MagiC специальное UNIX-подобное представление единой файловой системы, доступ к которому осуществляется через букву диска «U:», также помещает файлы устройств в «U:\DEV».
Ключевое слово устройства [14] | Использовать в качестве входных данных | Использовать в качестве вывода |
---|---|---|
С | Получает введенные данные до тех пор, пока не будет нажата ^ Z (Ctrl-Z). | Выводит данные на консоль. |
ПРН [16] | — | Печатает текст на принтере, обычно перенаправляемый на LPT1 или LST . Иногда перенастраивается на другие устройства. [17] [18] [19] |
AUX (нет в OS/2 [16] ) | Считывает данные со вспомогательного устройства, обычно с последовательного устройства, такого как COM1 . Иногда перенастраивается на другие устройства. [17] [18] [19] | Отправляет данные на вспомогательное устройство, обычно последовательное устройство, такое как COM1 . Иногда перенастраивается на другие устройства. [17] [18] [19] |
НУЛЕВОЙ | Возвращает ноль или отсутствие данных. | Сбрасывает полученные данные. |
CLOCK$ ( все еще называется CLOCK) . в некоторых версиях MS-DOS 2.11 [20] [17] [18] ) | — | — |
KEYBD$ (только в многозадачном режиме MS-DOS ) | ? | ? |
KBD$ (только в OS/2 [16] ) | ? | ? |
SCREEN$ (только в многозадачности MS-DOS и OS/2 [16] ) | ? | ? |
POINTER$ (только в OS/2 [16] ) | ? | ? |
MOUSE$ (только в OS/2 [16] ) | ? | ? |
$IDLE$ (только в DR-DOS (начиная с версии 5.0) и Multiuser DOS (начиная с Concurrent DOS 386 семействах )) | — | — |
CONFIG$ (только в MS-DOS 7.0 и выше) | — | — |
LST (только в 86-DOS и DOS 1.x, а также в MS-DOS 2.11 компании Hewlett-Packard для HP Portable Plus [17] [18] ) | Не возвращает данных. | Отправляет данные на построчный принтер. (LPT2 для MS-DOS 2.11 компании Hewlett-Packard). [17] [18] ) |
PLT (только в MS-DOS 2.11 компании Hewlett-Packard для HP Portable Plus [17] [18] ) | Не возвращает данных. | Отправляет данные на назначенный плоттер . Подсоединенное устройство плоттера можно переконфигурировать. [17] [18] |
LPT1 , LPT2 , LPT3 и иногда LPT4 (в DR-DOS 7.02 и выше, а также в некоторых версиях Multiuser DOS) | — | Отправляет данные на выбранный параллельный порт. |
COM1 , COM2 , COM3 , COM4 | Считывает данные из выбранного последовательного порта. | Отправляет данные в выбранный последовательный порт. |
82164A (только в MS-DOS 2.11 компании Hewlett-Packard для HP Portable Plus [17] [18] ) | Перенаправляет на COM2. | Перенаправляет на COM2. |
Используя перенаправление оболочки и каналы, данные можно отправлять на устройство или получать с него. Например, если ввести следующую команду, файл будет отправлен c:\data.txt
к принтеру:
TYPE c:\data.txt > PRN
PIPE, MAILSLOT и MUP — это другие стандартные устройства Windows. [21]
ИОКС
[ редактировать ]8-битная операционная система Sharp карманных компьютеров , таких как PC-E500 , PC-E500S и т. д., состоит из интерпретатора BASIC , системы управления файлами (FCS), подобной DOS 2, реализующей элементарную 12-битную файловую систему, подобную FAT, и BIOS-подобная система управления вводом/выводом (IOCS), реализующая ряд стандартных драйверов символьных и блочных устройств, а также специальные файловые устройства, включая STDO:/SCRN: (дисплей), STDI:/KYBD: (клавиатура), COM: ( последовательный ввод/вывод), STDL:/PRN: (принтер), CAS: (кассета), E:/F:/G: (файл памяти), S1:/S2:/S3: (карта памяти), X: /Y: (дискета), SYSTM: (система) и NIL: (функция). [22]
Реализации
[ редактировать ]Операционная система | Файловая система или управляющее программное обеспечение | Стандартная точка крепления | Автор | Примечания |
---|---|---|---|---|
Linux 2.3.46pre5–2.6.17 | devfs [23] и девфсд | /dev | Ричард Гуч | Полностью реализовано в ядре с дополнительным демоном devfsd для обработки событий узла устройства в пользовательском пространстве. [24] Устарело — пользователям рекомендуется перейти на udev и/или devtmpfs . |
Линукс 2.5– | udev на любой фс, но обычно на tmpfs | /dev | Грег Кроа-Хартман , Кей Сиверс и Дэн Стеклофф | Реализованный в основном в пользовательском пространстве, информация об устройстве собирается из sysfs . Файлы устройств могут храниться в обычной файловой системе общего назначения или в файловой системе памяти ( tmpfs ). |
Линукс 2.6.32– | devtmpfs с udev или без него | /dev | Кэй Сиверс , Ян Бланк, Грег Кроа-Хартман | Гибридный подход ядра/пользовательского пространства к файловой системе устройства для предоставления узлов до первого запуска udev. [25] |
Солярис | devfs [26] | /devices | Сан Микросистемс | Представлено с динамически загружаемыми драйверами в Solaris-2.1. |
FreeBSD 2.0– | devfs | /dev | Пол-Хеннинг Камп | Полностью реализовано в ядре. |
DragonFly BSD 2.3.2– | devfs | /dev | Алекс Хорнунг | Полностью реализовано в ядре. |
macOS | devfs | /dev | Apple Инк. | Полностью реализовано в ядре. |
HP-UX B.11.31 | devfs | /dev | HP | Полностью реализовано в ядре. |
План 9 | # | Белл Лаборатории | Реализовано в ядре. | |
РИСКИ | ДевицеФС | Devices: | Желудевые компьютеры | DeviceFS была запущена в 1991 году. [27] и впервые появился в RISC OS 3. Он управляет несколькими устройствами, такими как специальные файлы, чаще всего: Parallel, Serial, FastParallel и USB. Модуль SystemDevices реализует псевдоустройства, такие как: Vdu, Kbd, Null и Printer. |
MS-DOS , ПК-DOS , DR-DOS | ТОЛСТЫЙ | \DEV (и /DEV ) | различный | Как реализовано в ядре, символьные устройства появляются в виртуальном каталоге \DEV и любом каталоге диска. В MS-DOS/PC DOS 2.x директива CONFIG.SYS AVAILDEV =FALSE может использоваться для принудительного существования устройств только в \DEV. |
МагиК , МиНТ , МультиТОС | U:\DEV [28] [29] | Системы приложений Heidelberg, Эрик Р. Смит, Atari Corp. | Специальный диск U: содержит виртуальный каталог DEV, внутри которого можно найти файлы устройств. | |
Windows 9x | \\devices\ | Майкрософт | ||
Windows НТ | \Device | Майкрософт | The \Device Каталог является частью пространства имен объектов Windows NT . | |
Подсистема Windows NT Win32 | \\.\ | Майкрософт | The \\.\ Благодаря префиксу поддерживаемые API получают доступ к пространству имен устройств Win32, а не к пространству имен файлов Win32. Имена устройств Win32 представляют собой символические ссылки на имена устройств в Windows NT. \Device каталог. |
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б Руководство пользователя операционной системы Microsoft MS-DOS (PDF) . Майкрософт. 1983. с. 3-5 . Проверено 20 апреля 2024 г.
- ^ Jump up to: а б «Слово из трех букв C, которое ненавидит Windows» . Ютуб . 14 апреля 2016 г.
- ^ Кроа-Хартман, Грег (20 июня 2005 г.). «[ИСПРАВЛЕНИЕ] devfs: удалить devfs из дерева ядра» . Дерево исходного кода ядра Linux . Проверено 12 июня 2021 г.
- ^ Корбет, Джонатан; Кроа-Хартман, Грег; Рубини, Алессандро (2005). «Контроль доступа к файлу устройства». Драйверы устройств Linux, 3-е издание . О'Рейли . Проверено 28 апреля 2017 г.
Следующим шагом после открытия одного устройства является разрешение одному пользователю открывать устройство в нескольких процессах, но разрешить одновременное открытие устройства только одному пользователю.
- ^ Керниган, Брайан В .; Пайк, Роб (1984). Среда программирования UNIX . Прентис-Холл . п. 66 . ISBN 0-13-937681-Х .
- ^ Нил Браун (27 октября 2010 г.). «Призраки прошлого Unix: исторический поиск шаблонов проектирования» . Еженедельные новости Linux . Проверено 30 марта 2014 г.
- ^ «IEEE Std 1003.1, издание 2013 г.» . Проверено 24 апреля 2014 г.
- ^ «Справочник по архитектуре FreeBSD» . Проверено 7 марта 2013 г.
- ^ "usr.sbin/envstat/envstat.c" . Перекрестная ссылка BSD . НетБСД . Ноябрь 2021 г.
- «envstat — утилита для работы с датчиками окружающей среды». Руководство системного администратора NetBSD . Архивировано из оригинала 23 марта 2019 г.
- ^ "мкнод(8)" . Страницы руководства FreeBSD . Проект FreeBSD. 03.10.2016 . Проверено 21 апреля 2024 г.
- ^ Управление по присвоению имен и номеров Linux (6 апреля 2009 г.). «Выделенные устройства Linux (версия 2.6+)» . Ядро Linux (Documentation/devices.txt) . Архивировано из оригинала 24 апреля 2016 г. Проверено 8 июня 2013 г.
- ^ «Избегайте создания имен файлов Macintosh, которые являются именами устройств NT» . Support.microsoft.com. 01.11.2006 . Проверено 22 января 2014 г.
- ^ «атрибуты устройства» . Станиславс.орг . Проверено 22 января 2014 г.
- ^ Jump up to: а б «Имена драйверов устройств MS-DOS не могут использоваться в качестве имен файлов» . Версия 2.0. Майкрософт . 12 мая 2003 г. КБ74496, Q74496. Архивировано из оригинала 21 июля 2012 г.
- ^ «Недокументированные команды» . 4dos.info . Кевтроникс. 12 апреля 2002 г. Проверено 16 мая 2014 г.
- ^ Jump up to: а б с д и ж Технический справочник IBM Operating System/2 — семейство программ (PDF) . Том. 1 (1-е изд.). ИБМ . Сентябрь 1987 г. [1986 г.].
- ^ Jump up to: а б с д и ж г час я Hewlett-Packard - Техническое справочное руководство - Portable PLUS (1-е изд.). Корваллис, Орегон, США: Компания Hewlett-Packard , подразделение портативных компьютеров. Август 1985 г. 45559-90001 . Проверено 27 ноября 2016 г.
- ^ Jump up to: а б с д и ж г час я Hewlett-Packard - Техническое справочное руководство - Portable PLUS (PDF) (2-е изд.). Подразделение портативных компьютеров, Корваллис, Орегон, США: Компания Hewlett-Packard . Декабрь 1986 г. [август 1985 г.]. 45559-90006. Архивировано (PDF) из оригинала 28 ноября 2016 г. Проверено 27 ноября 2016 г.
- ^ Jump up to: а б с Пол, Матиас Р. (2 октября 1997 г.). «Обновление Caldera OpenDOS 7.01/7.02 Alpha 3 IBMBIO.COM README.TXT» . Архивировано из оригинала 4 октября 2003 г. Проверено 29 марта 2009 г. [1]
- ^ Патерсон, Тим ; Microsoft (19 декабря 2013 г.) [1983]. «Microsoft DOS V1.1 и V2.0: /msdos/v20source/SKELIO.TXT, /msdos/v20source/HRDDRV.ASM» . Музей истории компьютеров , Microsoft . Проверено 25 марта 2014 г. (Примечание: хотя издатели утверждают, что это будут MS-DOS 1.1 и 2.0, на самом деле это SCP MS-DOS 1.25 и смесь Altos MS-DOS 2.11 и TeleVideo PC DOS 2.11 .)
- ^ «REG: записи CurrentControlSet, ЧАСТЬ 2: SessionManager» . Support.microsoft.com. 01.11.2006 . Проверено 22 января 2014 г.
- ^ Техническое справочное руководство PC-E500 (PDF) . Sharp Corporation , Группа информационных систем, Подразделение персонального оборудования. Март 1990 г. с. 17. Архивировано из оригинала (PDF) 14 марта 2017 г. Проверено 14 марта 2017 г.
- ^ Гуч, Ричард (20 августа 2002 г.). «Часто задаваемые вопросы о Linux Devfs (файловая система устройства)» . Проверено 13 июня 2021 г.
- ^ Гуч, Ричард. «Мой вклад в Linux» . Проверено 13 июня 2021 г.
Devfsd обеспечивает настраиваемое управление узлами устройств с использованием файловой системы устройств Linux.
- ^ «Ядро драйвера: devtmpfs — поддерживаемый ядром tmpfs на основе /dev» . ЛВН . Проверено 10 августа 2009 г.
- ^ "devfs(7FS)" . Страницы руководства, раздел 7: Устройства и сетевые интерфейсы . Оракул. 2014 . Проверено 12 июня 2021 г.
- ^ «Журнал изменений проекта Black» . Проверено 15 мая 2016 г.
- ^ «Диск U: в MagiC» . 28 марта 2016 г. Архивировано из оригинала 15 января 2017 г. Проверено 9 января 2017 г.
- ^ «FreeMiNT-Портал — mint.doc» . 27 апреля 2000 г. Архивировано из оригинала 15 января 2017 г. Проверено 9 января 2017 г.
Дальнейшее чтение
[ редактировать ]- Филип Стрек (24 сентября 2002 г.). «devfs для управления и администрирования» . Linux-журнал .
- Дэниел Роббинс (01 октября 2001 г.). «Часть 4: Знакомство с devfs» . Общие темы: Руководство для разработчиков расширенной файловой системы . ИБМ.
- Дэниел Роббинс (01 октября 2001 г.). «Часть 5: Настройка devfs» . Общие темы: Руководство для разработчиков расширенной файловой системы . ИБМ.
- Дэниел Роббинс (1 октября 2001 г.). «Часть 6: Реализация devfs (с использованием оболочки init)» . Общие темы: Руководство для разработчиков расширенной файловой системы . ИБМ.
- Дуг Гилберт (22 января 2001 г.). «DEVFS и SCSI» .
- «3.3. Имена устройств в devfs» . HOWTO по подсистеме SCSI Linux 2.4: Глава 3. Имена и адреса . Проект документации Linux .
- «Руководство по файловой системе устройства» . Документация Gentoo Linux . Gentoo Foundation, Inc. Архивировано из оригинала 21 мая 2008 г. Проверено 19 июня 2008 г.
- Марк Эллис (23 сентября 2003 г.). «Как использовать автозагрузку модулей ядра с devfs и devfsd» . Linux с нуля: советы .
- Марсьяль Даумас (18 сентября 2003 г.). «Как создать базовую команду mk_initrd, которая хорошо работает с LFS и devfs» . Linux с нуля: советы .
- Джерун Куманс (19 апреля 2003 г.). «Как настроить devfs с текущей конфигурацией LFS с помощью devfsd. Как использовать devfs с нуля» . Linux с нуля: советы .
- Тушар Тередесай (5 марта 2003 г.). «Использование devfs и devfsd» . Linux с нуля: советы .