Файл устройства

Интерфейс к драйверу устройства, который отображается в файловой системе как обычный файл

В операционных системах типа 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 Containers , обычно каждой среде chroot требуется своя собственная /dev; эти точки монтирования будут видны на хостовой ОС на различных узлах в глобальном дереве файловой системы. Ограничивая узлы устройств, заполняемые в экземплярах chroot /dev, среда chroot может принудительно обеспечивать изоляцию оборудования (программа не может вмешиваться в оборудование, которое она не может ни видеть, ни называть — еще более сильная форма контроля доступа , чем разрешения файловой системы Unix ).

MS-DOS управляла конфликтом устройств оборудования (см. terminate-and-stay-resident program ), делая каждый файл устройства исключительно открытым. Приложение, пытающееся получить доступ к уже используемому устройству, обнаружило бы, что не может открыть узел файла устройства. Разнообразие семантики драйверов устройств реализовано в Unix и Linux относительно параллельного доступа . [4]

Unix и Unix-подобные системы

Упрощенная структура ядра Linux. Файловые системы реализованы как часть подсистемы ввода-вывода.

Узлы устройств соответствуют ресурсам, которые ядро ​​операционной системы уже выделило. Unix идентифицирует эти ресурсы по основному номеру и дополнительному номеру , [5] оба хранятся как часть структуры узла . Назначение этих номеров происходит уникально в разных операционных системах и на разных компьютерных платформах . Как правило, основной номер идентифицирует драйвер устройства, а дополнительный номер идентифицирует конкретное устройство (возможно, из многих), которым управляет драйвер: [6] в этом случае система может передать дополнительный номер драйверу. Однако при наличии динамического распределения номеров это может быть не так (например, во FreeBSD 5 и выше).

Как и в случае с другими специальными типами файлов, компьютерная система получает доступ к узлам устройств с помощью стандартных системных вызовов и обрабатывает их как обычные компьютерные файлы. Существуют два стандартных типа файлов устройств; к сожалению, их названия довольно нелогичны по историческим причинам, и объяснения разницы между ними часто неверны.

Устройства персонажей

Специальные файлы символов или символьные устройства обеспечивают небуферизованный прямой доступ к аппаратному устройству. Они не обязательно позволяют программам считывать или записывать отдельные символы за раз; это зависит от рассматриваемого устройства. Символьное устройство для жесткого диска, например, обычно требует, чтобы все операции чтения и записи были выровнены по границам блоков и, скорее всего, не позволит считывать ни одного байта.

Символьные устройства иногда называют « сырыми устройствами», чтобы избежать путаницы, связанной с тем фактом, что символьное устройство для блочного оборудования обычно требует программ для чтения и записи выровненных блоков.

Блочные устройства

Специальные файлы блоков или блочные устройства предоставляют буферизованный доступ к аппаратным устройствам и предоставляют некоторую абстракцию от их специфики. [7] В отличие от символьных устройств, блочные устройства всегда позволяют программисту читать или записывать блок любого размера (включая отдельные символы/байты) и любого выравнивания. Недостатком является то, что поскольку блочные устройства буферизованы, программист не знает, сколько времени пройдет, прежде чем записанные данные будут переданы из буферов ядра на фактическое устройство, или в каком порядке две отдельные записи поступят на физическое устройство. Кроме того, если одно и то же оборудование предоставляет как символьные, так и блочные устройства, существует риск повреждения данных из-за того, что клиенты, использующие символьное устройство, не знают об изменениях, внесенных в буферы блочного устройства.

Большинство систем создают как блочные, так и символьные устройства для представления оборудования, например, жестких дисков. FreeBSD и Linux, в частности, этого не делают; первая удалила поддержку блочных устройств, [8] тогда как последняя создает только блочные устройства. Чтобы получить эффект символьного устройства из блочного устройства в Linux, нужно открыть устройство с флагом O_DIRECT, специфичным для Linux .

Псевдоустройства

Узлы устройств в Unix-подобных системах не обязательно должны соответствовать физическим устройствам . Узлы, не имеющие такого соответствия, называются псевдоустройствами . Они предоставляют различные функции, обрабатываемые операционной системой. Некоторые из наиболее часто используемых (символьных) псевдоустройств включают:

Кроме того, псевдоустройства BSD с интерфейсом ioctl могут также включать:

Создание узла

Узлы создаются системным вызовом mknod . Программа командной строки для создания узлов также называется mknod . Узлы можно перемещать или удалять обычными системными вызовами файловой системы ( rename , unlink ) и командами ( mv , rm ).

Некоторые версии Unix включают скрипт с именем makedev или MAKEDEV для создания всех необходимых устройств в каталоге /dev . Это имеет смысл только в системах, устройствам которых статически назначены основные номера (например, путем жесткого кодирования в модуле ядра).

Некоторые другие системы Unix, такие как FreeBSD, используют управление узлами устройств на основе ядра только через devfs и не поддерживают ручное создание узлов. Системный вызов mknod(2) и команда mknod(8) существуют для обеспечения совместимости с POSIX, но созданные вручную узлы устройств вне devfs вообще не будут работать. [10]

Соглашения об именовании

Для обозначения типа устройства в именах некоторых устройств в иерархии /dev используются следующие префиксы:

В некоторых операционных системах стали широко использоваться некоторые дополнительные префиксы:

  • fb : буфер кадра
  • fd : (платформа) гибкие диски , хотя эта же аббревиатура также обычно используется для обозначения дескриптора файла
  • hd : («классический») драйвер IDE (ранее использовался для жестких дисков ATA , оптических приводов ATAPI и т. д.)
    • hda : основное устройство на первом канале ATA (обычно идентифицируется старшим номером 3 и младшим номером 0)
    • hdb : вторичное устройство на первом канале ATA
    • hdc : основное устройство на втором канале ATA
    • hdd : вторичное устройство на втором канале ATA
  • parport , pp : параллельные порты
  • mem : Основная память (символьное устройство)
  • nbd : Сетевое блочное устройство : Абстракция, представляющая блочные устройства, которые монтируются через сеть (или из образов с использованием qemu-nbd)
  • Драйвер NVMe :
    • nvme0 : контроллер первого зарегистрированного устройства (символьное устройство)
    • nvme0n1 : первое пространство имен зарегистрированного устройства (блочное устройство)
    • nvme0n1p1 : первый раздел первого пространства имен первого зарегистрированного устройства (блочное устройство)
  • Драйвер MMC :
    • mmcblk : драйвер хранилища для носителей MMC ( карты SD , чипы eMMC на ноутбуках и т. д.)
      • mmcblk0 : первое зарегистрированное устройство
      • mmcblk0p1 : первый раздел первого зарегистрированного устройства
  • Драйвер SCSI , также используемый libATA (современный драйвер PATA / SATA ), USB , IEEE 1394 и т. д.:
    • sd : драйвер запоминающего устройства (блочное устройство)
      • sda : первое зарегистрированное устройство
      • sdb, sdc и т.д.: второе, третье и т.д. зарегистрированные устройства
    • ses : Драйвер корпуса
    • sg : общий уровень SCSI
    • sr : драйвер "ROM" (ориентированные на данные оптические дисководы; scd — это просто вторичный псевдоним)
    • st : драйвер магнитной ленты
  • tty : терминалы

Канонический список префиксов, используемых в 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$ ( в некоторых версиях MS-DOS 2.11 все еще называется CLOCK [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на принтер:

ТИП c:\data.txt > PRN

Другими стандартными устройствами Windows являются PIPE, MAILSLOT и MUP. [21]

IOCS

8-битная операционная система карманных компьютеров Sharp , таких как PC-E500 , PC-E500S и т. д., состоит из интерпретатора BASIC , системы управления файлами (FCS) типа DOS 2, реализующей элементарную 12-битную файловую систему типа FAT, и системы управления вводом/выводом (IOCS) типа BIOS, реализующей ряд стандартных драйверов символьных и блочных устройств, а также специальных файловых устройств, включая 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.17devfs [23] и devfsd/devРичард ГучПолностью реализовано в ядре с дополнительным демоном devfsd для обработки событий узлов устройств в пространстве пользователя. [24] Устарело — пользователям рекомендуется перейти на udev и/или devtmpfs .
Линукс 2.5–udev на любой fs, но обычно tmpfs/devГрег Кроа-Хартман , Кей Сиверс и Дэн СтеклоффРеализованная в основном в пространстве пользователя, информация об устройстве собирается из sysfs . Файлы устройств могут храниться в обычной файловой системе общего назначения или в файловой системе памяти ( tmpfs ).
Линукс 2.6.32–devtmpfs с udev или без него/devКэй Сиверс , Ян Бланк, Грег Кроа-ХартманГибридный подход ядра/пользовательского пространства файловой системы устройства для предоставления узлов до первого запуска udev [25]
Солярисdevfs [26]/devicesSun MicrosystemsПредставлено с динамически загружаемыми драйверами в Solaris-2.1
FreeBSD 2.0–devfs/devПол-Хеннинг КампПолностью реализовано в ядре.
DragonFly BSD 2.3.2–devfs/devАлекс ХорнунгПолностью реализовано в ядре.
macOSdevfs/devApple Inc.Полностью реализовано в ядре.
HP-UX B.11.31devfs/devл.с.Полностью реализовано в ядре.
План 9#Белл ЛабсРеализовано в ядре.
ОС RISCDeviceFSDevices:Компьютеры AcornDeviceFS была запущена в 1991 году [27] и впервые появилась в RISC OS 3. Она управляет несколькими устройствами, такими как специальные файлы, чаще всего: Parallel, Serial, FastParallel и USB. Модуль SystemDevices реализует псевдоустройства, такие как: Vdu, Kbd, Null и Printer.
MS-DOS , PC-DOS , DR-DOSТОЛСТЫЙ\DEV/DEV)различныйКак реализовано в ядре, символьные устройства появляются в виртуальном каталоге \DEV и любом каталоге диска. В MS-DOS/PC DOS 2.x директива CONFIG.SYS AVAILDEV =FALSE может использоваться для принудительного существования устройств только в \DEV.
Magic , MiNT , MultiTOSU:\DEV[28] [29]Application Systems Heidelberg, Эрик Р. Смит, Atari Corp.Специальный диск U: содержит виртуальный каталог DEV, внутри которого можно найти файлы устройств.
Windows 9x\\devices\Майкрософт
Windows NT\DeviceМайкрософтКаталог \Deviceявляется частью пространства имен объектов Windows NT .
Подсистема Windows NT Win32\\.\МайкрософтПрефикс \\.\позволяет поддерживающим API обращаться к пространству имен устройств Win32 вместо пространства имен файлов Win32. Имена устройств Win32 являются символическими ссылками на имена устройств в \Deviceкаталоге Windows NT.

Смотрите также

Ссылки

  1. ^ ab Руководство пользователя операционной системы Microsoft MS-DOS (PDF) . Microsoft. 1983. стр. 3-5 . Получено 20 апреля 2024 г.
  2. ^ ab "Трехбуквенное слово на букву "С", которое ненавидит Windows". YouTube . 2016-04-14.
  3. ^ Kroah-Hartman, Greg (2005-06-20). "[PATCH] devfs: Удалить devfs из дерева ядра". Исходное дерево ядра Linux . Получено 2021-06-12 .
  4. ^ Корбет, Джонатан; Кроа-Хартман, Грег; Рубини, Алессандро (2005). «Управление доступом к файлу устройства». Драйверы устройств Linux, 3-е издание. O'Reilly . Получено 28.04.2017 . Следующий шаг за пределами устройства с одним открытым устройством — позволить одному пользователю открывать устройство в нескольких процессах, но разрешить только одному пользователю открывать устройство в каждый момент времени.
  5. ^ Керниган, Брайан В .; Пайк, Роб (1984). Среда программирования UNIX . Prentice-Hall . стр. 66. ISBN 0-13-937681-X.
  6. ^ Нил Браун (27.10.2010). «Призраки прошлого Unix: исторический поиск шаблонов проектирования». Linux Weekly News . Получено 30.03.2014 .
  7. ^ "IEEE Std 1003.1, издание 2013 г." . Получено 24.04.2014 .
  8. ^ "Справочник по архитектуре FreeBSD" . Получено 2013-03-07 .
  9. ^ "usr.sbin/envstat/envstat.c". BSD Cross Reference . NetBSD . Ноябрь 2021 г.
    • "envstat -- утилита для работы с датчиками окружающей среды". Руководство администратора системы NetBSD. Архивировано из оригинала 2019-03-23.
  10. ^ "mknod(8)". Страницы руководства FreeBSD . Проект FreeBSD. 2016-10-03 . Получено 2024-04-21 .
  11. ^ Linux Assigned Names and Numbers Authority (2009-04-06). "Linux allocate devices (версия 2.6+)". Ядро Linux (Documentation/devices.txt) . Архивировано из оригинала 2016-04-24 . Получено 2013-06-08 .
  12. ^ «Избегайте создания имен файлов Macintosh, которые являются именами устройств NT». Support.microsoft.com. 2006-11-01 . Получено 2014-01-22 .
  13. ^ "атрибуты устройства". Stanislavs.org . Получено 2014-01-22 .
  14. ^ ab "Имена драйверов устройств MS-DOS не могут использоваться как имена файлов". Версия 2.0. Microsoft . 2003-05-12. KB74496, Q74496. Архивировано из оригинала 2012-07-21.
  15. ^ "Недокументированные команды". 4dos.info . Kevtronics. 2002-04-12 . Получено 2014-05-16 .
  16. ^ abcdef IBM Operating System/2 Technical Reference - Programming Family (PDF) . Том 1 (1-е изд.). IBM . Сентябрь 1987 [1986].
  17. ^ abcdefghi Hewlett-Packard - Техническое справочное руководство - Portable PLUS (1-е изд.). Корваллис, штат Орегон, США: Hewlett-Packard Company , Portable Computer Division. Август 1985 г. 45559-90001 . Получено 27.11.2016 .
  18. ^ abcdefghi Hewlett-Packard - Техническое справочное руководство - Portable PLUS (PDF) (2-е изд.). Portable Computer Division, Corvallis, OR, USA: Hewlett-Packard Company . Декабрь 1986 г. [Август 1985 г.]. 45559-90006. Архивировано (PDF) из оригинала 28.11.2016 . Получено 27.11.2016 .
  19. ^ abc Пол, Маттиас Р. (1997-10-02). "Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT". Архивировано из оригинала 2003-10-04 . Получено 2009-03-29 .[1]
  20. ^ Патерсон, Тим ; Microsoft (2013-12-19) [1983]. "Microsoft DOS V1.1 и V2.0: /msdos/v20source/SKELIO.TXT, /msdos/v20source/HRDDRV.ASM". Музей истории компьютеров , Microsoft . Получено 2014-03-25 .(Примечание: хотя издатели утверждают, что это MS-DOS 1.1 и 2.0, на самом деле это SCP MS-DOS 1.25 и смесь Altos MS-DOS 2.11 и TeleVideo PC DOS 2.11 .)
  21. ^ "REG: CurrentControlSet Entries PART 2: SessionManager". Support.microsoft.com. 2006-11-01 . Получено 2014-01-22 .
  22. ^ Техническое справочное руководство PC-E500 (PDF) . Sharp Corporation , Information Systems Group, Personal Equipment Division. Март 1990 г. стр. 17. Архивировано из оригинала (PDF) 2017-03-14 . Получено 2017-03-14 .
  23. ^ Гуч, Ричард (2002-08-20). "Часто задаваемые вопросы о Linux Devfs (файловая система устройств)" . Получено 13 июня 2021 г.
  24. ^ Гуч, Ричард. «My Linux Contributions» . Получено 13 июня 2021 г. . Devfsd обеспечивает настраиваемое управление узлами устройств с помощью файловой системы устройств Linux.
  25. ^ "Driver Core: devtmpfs - tmpfs-based /dev, поддерживаемый ядром". LWN . Получено 2009-08-10 .
  26. ^ "devfs(7FS)". man pages section 7: Device and Network Interfaces . Oracle. 2014 . Получено 2021-06-12 .
  27. ^ "Журнал изменений проекта Black" . Получено 2016-05-15 .
  28. ^ "Диск U: в MagiC". 2016-03-28. Архивировано из оригинала 2017-01-15 . Получено 2017-01-09 .
  29. ^ "FreeMiNT-Portal - mint.doc". 2000-04-27. Архивировано из оригинала 2017-01-15 . Получено 2017-01-09 .

Дальнейшее чтение

  • Филип Штрек (24.09.2002). "devfs для управления и администрирования". Linux Journal .
  • Дэниел Роббинс (2001-10-01). "Часть 4: Введение в devfs". Общие темы: Руководство по внедрению расширенных файловых систем . IBM.
  • Дэниел Роббинс (2001-10-01). "Часть 5: Настройка devfs". Общие темы: Руководство по внедрению расширенных файловых систем . IBM.
  • Дэниел Роббинс (2001-10-01). "Часть 6: Реализация devfs (использование оболочки init)". Общие темы: Руководство по внедрению расширенных файловых систем . IBM.
  • Дуг Гилберт (22.01.2001). «DEVFS и SCSI».
  • "3.3. Имена устройств в devfs". Подсистема Linux 2.4 SCSI HOWTO: Глава 3. Имена и адреса . Проект документации Linux .
  • "Device File System Guide". Документация Gentoo Linux . Gentoo Foundation, Inc. Архивировано из оригинала 21-05-2008 . Получено 19-06-2008 .
  • Марк Эллис (2003-09-23). ​​"Как использовать автозагрузку модулей ядра с devfs и devfsd". Советы по Linux From Scratch .
  • Martial Daumas (18.09.2003). "Как создать базовую команду mk_initrd, которая хорошо работает с LFS и devfs". Советы по Linux From Scratch .
  • Jeroen Coumans (2003-04-19). "Как настроить devfs с вашей текущей конфигурацией LFS с помощью devfsd. Как можно использовать devfs с нуля". Советы по Linux From Scratch .
  • Тушар Тередесай (2003-03-05). "Использование devfs и devfsd". Советы по Linux From Scratch .
Взято с "https://en.wikipedia.org/w/index.php?title=Device_file&oldid=1254712393#OS/2"