Gerätedatei

Im Unix-artig Betriebssysteme, a Gerätedatei oder Sonderdatei ist ein Schnittstelle zu einem Gerätetreiber das erscheint in a Dateisystem als wäre es ein gewöhnlicher Datei. Es gibt auch spezielle Dateien in DOS, OS/2, und Fenster. Diese speziellen Dateien ermöglichen es einem Anwendungsprogramm, mit einem Gerät mit seinem Gerätetreiber über Standard zu interagieren Input-Output Systemaufrufe. Die Verwendung von Standard-Systemaufrufen vereinfacht viele Programmieraufgaben und führt zu konsistenten E/A-Mechanismen des Benutzer-Raums, unabhängig von Gerätefunktionen und -funktionen.

Gerätedateien bieten normalerweise einfache Schnittstellen zu Standardgeräten (wie Druckern und seriellen Ports), können aber auch zum Zugriff auf bestimmte eindeutige Ressourcen auf diesen Geräten verwendet werden, wie z. Festplattenpartitionen. Darüber hinaus sind Gerätedateien für den Zugriff nützlich Systemressourcen die keine Verbindung zu einem tatsächlichen Gerät haben, wie z. Datensensen und Zufallszahlengeneratoren.

Es gibt zwei allgemeine Arten von Gerätedateien in Unix-ähnlichen Betriebssystemen, die als bekannt sind Zeichenspezialendateien und Spezielle Dateien blockieren. Der Unterschied zwischen ihnen besteht darin, wie viele Daten vom Betriebssystem und der Hardware gelesen und verfasst werden. Diese zusammen können genannt werden Gerätespezifische Dateien im Kontrast zu benannte Pfeifen, die nicht mit einem Gerät verbunden sind, aber auch keine normalen Dateien sind.

MS-DOS liehen das Konzept von Sonderdateien von UNIX aus, benannten sie jedoch um sie Geräte.[1] Weil frühe Versionen von MS-DOS nicht unterstützten a Verzeichnis Hierarchie, Geräte wurden von regulären Dateien unterschieden, indem sie ihre Namen machten reservierte Wörterzum Beispiel: das berüchtigte Con. Diese wurden für ein gewisses Maß an Kompatibilität mit ausgewählt CP/m und sind immer noch in modernen Fenstern vorhanden, um die Kompatibilität rückwärts zu bewältigen.

In einigen Unix-ähnlichen Systemen werden die meisten Gerätedateien als Teil von a verwaltet Virtuelles Dateisystem traditionell montiert bei /devmöglicherweise zu einem kontrollierenden Daemon, das die Hardware -Addition und das Entfernen zum Laufzeit überwacht, wodurch entsprechende Änderungen an der Gerätedateisystem Wenn dies nicht automatisch vom Kernel durchgeführt wird und möglicherweise Skripte im System- oder Benutzerbereich aufgerufen wird, um spezielle Geräteanforderungen zu bearbeiten. Das Freebsd, Libelle BSD und Darwin haben ein dediziertes Dateisystem Devfs; Geräteknoten werden automatisch von diesem Dateisystem in verwaltet Kernelraum. Linux hatte früher eine ähnliche Devfs Implementierung, aber später aufgegeben und dann seit Version 2.6.17 entfernt;[2] Linux verwendet jetzt hauptsächlich a Benutzerraum Implementierung bekannt als UdevAber es gibt viele Varianten.

In Unix -Systemen, die unterstützen Chroot Prozessisolation, wie z. Solaris -Behälternormalerweise benötigt jede Chroot -Umgebung seine eigene /dev; Diese Mount -Punkte sind auf dem Host -Betriebssystem an verschiedenen Knoten im globalen Dateisystembaum sichtbar. Durch Einschränkung der Geräteknoten in Chroot -Instanzen von /dev, Hardware -Isolation kann durch die Chroot -Umgebung durchgesetzt werden (ein Programm kann sich nicht mit Hardware einmischen, die es weder sehen noch benennen kann - eine noch stärkere Form von Zugangskontrolle als Unix Dateisystemberechtigungen).

MS-DOS verwaltete Hardware-Gerätekonkurrenz (siehe TSR) Durch die exklusive Deklusive der Gerätedatei. Eine Anwendung, die versucht, auf ein bereits verwendetes Gerät zuzugreifen, erkennen, dass der Gerätedateiknoten nicht geöffnet werden kann. Eine Vielzahl von Gerätetreiber Die Semantik werden in UNIX und Linux in Bezug auf gleichzeitiger Zugang.[3]

UNIX- und UNIX-ähnliche Systeme

Eine vereinfachte Struktur des Linux -Kernels. Dateisysteme werden als Teil des E/A -Subsystems implementiert.

Geräteknoten entsprechen Ressourcen, die das Betriebssystem eines Kernel hat bereits bereitgestellt. Unix identifiziert diese Ressourcen durch a Hauptzahl und ein kleinere Zahl,[4] Beide wurden als Teil der Struktur von a gespeichert Knoten. Die Zuordnung dieser Zahlen erfolgt einzigartig in unterschiedlich Betriebssysteme und auf andere Computerplattformen. Im Allgemeinen identifiziert die Hauptnummer den Gerätetreiber und die Nebenzahl identifiziert ein bestimmtes Gerät (möglicherweise aus vielen), das der Treiber steuert:[5] In diesem Fall kann das System die Nebennummer an einen Fahrer übergeben. In Gegenwart einer dynamischen Zahlenzuweisung ist dies jedoch möglicherweise nicht der Fall (z. B. auf Freebsd 5 und up).

Wie bei anderen speziellen Dateitypen greift das Computersystem mit Standard -Systemaufrufen auf Geraden der Geräte zu und behandelt sie wie reguläre Computerdateien. Es gibt zwei Standardtypen von Gerätedateien; Leider sind ihre Namen aus historischen Gründen eher kontraintuitiv, und die Erklärungen des Unterschieds zwischen beiden sind infolgedessen oft falsch.

Charaktergeräte

Zeichenspezialendateien oder Charaktergeräte Geben Sie den direkten Zugriff auf das Hardware -Gerät an. Sie erlauben nicht unbedingt Programmen, einzelne Zeichen gleichzeitig zu lesen oder zu schreiben. Das liegt bei dem fraglichen Gerät. Das Charaktergerät für eine Festplatte zum Beispiel erfordert normalerweise, dass alle Lese- und Schreibvorgänge an Blockgrenzen ausgerichtet werden und mit Sicherheit kein einzelnes Byte zuzulassen.

Charaktergeräte sind manchmal als bekannt als rohe Geräte Um die Verwirrung um die Tatsache zu vermeiden, dass ein Charaktergerät für ein Stück blockbasierter Hardware normalerweise Programme benötigt, um ausgerichtete Blöcke zu lesen und zu schreiben.

Blockgeräte

Spezielle Dateien blockieren oder Blockgeräte Bereiten Sie gepufferte Zugriff auf Hardware -Geräte und geben Sie eine gewisse Abstraktion von ihren Einzelheiten an.[6] Im Gegensatz zu Charaktergeräten können Blockgeräte dem Programmierer immer einen Block jeder Größe (einschließlich Einzelzeichen/Bytes) und jeder Ausrichtung lesen oder schreiben. Der Nachteil ist, dass der Programmierer nicht weiß, wie lange er dauert, bevor die schriftlichen Daten von den Puffern des Kernels an das eigentliche Gerät übergeben werden, oder in welcher Reihenfolge zwei separate Schreibvorgänge zum physischen Gerät gelangen. Wenn dieselbe Hardware sowohl Charakter- als auch Blockgeräte enthüllt, besteht ein Risiko einer Datenbeschädigung, da Clients, die das Charaktergerät verwenden, die in den Puffer des Blockgeräts vorgenommenen Änderungen nicht bewusst sind.

Die meisten Systeme erstellen sowohl Block- als auch Charaktergeräte, um Hardware wie Festplatten darzustellen. FreeBSD und Linux tun es insbesondere nicht; Ersteres hat die Unterstützung für Blockgeräte entfernt,[7] Während letzteres nur Blockgeräte erstellt. In Linux muss man den "RAW" -Treiber verwenden, um ein Zeichengerät für eine Festplatte zu erhalten O_direct Flagge.

Pseudo-Geräte

Geräteknoten auf Unix-ähnlichen Systemen müssen nicht unbedingt entsprechen Physische Geräte. Knoten, denen diese Korrespondenz fehlt, bilden die Gruppe von Pseudo-Geräte. Sie bieten verschiedene Funktionen, die vom Betriebssystem verwaltet werden. Zu den am häufigsten verwendeten (charakterbasierten) Pseudo-Geräten gehören:

  • /dev/null- Akzeptiert und wirkt alle Eingaben, die darauf geschrieben wurden; Bietet an Ende der Datei Anzeige beim Lesen von.
  • /dev/null- Akzeptiert und wirkt alle Eingaben, die darauf geschrieben wurden; erzeugt einen kontinuierlichen Strom von NULL -Charaktere (Null-Wert-Bytes) als Ausgabe beim Lesen von.
  • /dev/voll-erzeugt einen kontinuierlichen Strom von Nullzeichen (Null-Wert-Bytes) als Ausgabe beim Lesen und generiert eine Enospc ("Festplatte voll") Fehler beim Versuch, darauf zu schreiben.
  • /dev/random- produziert Bytes, die vom Kern des Kernels erzeugt werden Kryptographisch sichere Pseudorandom -Zahlengenerator. Das genaue Verhalten variiert je nach Implementierung und manchmal auch Varianten wie z. /dev/urandom oder /dev/arandom sind auch bereitgestellt.

Zusätzlich sind BSD-spezifische Pseudo-Geräte mit einem ioctl Die Schnittstelle kann auch enthalten:

Knotenerstellung

Knoten werden von der erstellt Mknod Systemanruf. Das Befehlszeilenprogramm zum Erstellen von Knoten wird ebenfalls aufgerufen Mknod. Knoten können durch die üblichen Dateisystem -Systemaufrufe bewegt oder gelöscht werden (umbenennen, Verknüpfen) und Befehle (MV, rm).

Einige Unix -Versionen enthalten ein Skript mit dem Namen Makedev oder Makedev So erstellen Sie alle erforderlichen Geräte im Verzeichnis /dev. Es ist nur sinnvoll für Systeme, deren Geräte statisch Hauptzahlen zugewiesen werden (z. B. durch hartcodieren es in ihrem Kernelmodul).

Während einige andere Unix -Systeme wie z. Freebsd, gebrauchte Kernel-basierte Geräteknotenverwaltung nur über DEVFS und nicht unterstützende manuelle Knotenerstellung. Mknod (2) Systemanruf und Mknod (8) Befehl existiert, um die Kompatibilität mit POSIX zu halten, aber manuell erstellte Geräteknoten außerhalb von DEVFS funktionieren überhaupt nicht.[9]

Regeln der Namensgebung

Die folgenden Präfixe werden für die Namen einiger Geräte in der verwendet /dev Hierarchie, um die Art des Geräts zu identifizieren:

Einige zusätzliche Präfixe haben in einigen Betriebssystemen gemeinsam verwendet:

  • FB: Bildspeicher, Framebuffer
  • FD: (Plattform) DiskettenObwohl dieselbe Abkürzung auch häufig verwendet wird, um sich zu beziehen Dateideskriptor
  • HD: ("klassisch") Ide Fahrer (zuvor für ATA verwendet Festplatte, Atapi Optische Scheibenfahrten, etc.)
    • HDA: Das Master -Gerät am ersten ATA -Kanal (normalerweise identifiziert durch die Hauptnummer 3 und die geringfügige Nummer 0)
    • HDB: Das Sklavengerät auf dem ersten ATA -Kanal
    • HDC: Das Master -Gerät auf dem zweiten ATA -Kanal
    • HDD: Das Sklavengerät auf dem zweiten ATA -Kanal
  • Parport, pp: Parallele Ports
  • Mem: Haupterinnerung (Zeichenvorrichtung)
  • Nvme Treiber:
    • nvme0: Gerätecontroller des ersten registrierten Geräts (Zeichengerät)
    • nvme0n1: Erster Namespace des ersten registrierten Geräts (Blockgerät)
    • nvme0n1p1: Erste Partition des First Registry -Geräts der Vornamenspace (Block -Gerät)
  • MMC Treiber:
    • MMCBLK: Speicherfahrer für MMC Medien (SD Karten, EMMC -Chips auf Laptops usw.)
      • MMCBLK0: Erst registriertes Gerät
      • MMCBLK0P1: Erste Partition des ersten registrierten Geräts
  • Scsi Fahrer, auch verwendet von Libata (modern Pata/Sata Treiber), USB, IEEE 1394, etc.:
    • SD: Massen-Storage-Treiber (Blockgerät)
      • SDA: Erst registriertes Gerät
      • SDB, SDCusw.: Zweitens, dritte usw. registrierte Geräte
    • SES: Gehäusefahrer
    • sg: Generische SCSI -Schicht
    • sr: "ROM" -Treiber (datenorientierte optische Disc-Laufwerke; SCD ist nur ein sekundärer Alias)
    • st: Magnetband Treiber
  • tty: Terminals

Die kanonische Liste der in Linux verwendeten Präfixe finden Sie in der Linux -Geräteliste, der offiziellen Registrierung der zugewiesenen Gerätenummern und /dev Verzeichnisknoten für das Linux -Betriebssystem.[10]

Für die meisten Geräte folgt diesem Präfix eine Zahl, die das jeweilige Gerät einzigartig identifiziert. Für Festplatten wird ein Brief verwendet, um Geräte zu identifizieren, und folgt von einer Zahl, um zu identifizieren Partitionen. Somit kann ein Dateisystem einen Bereich auf einer Festplatte als "kennen" /dev/sda3Zum Beispiel oder "siehe" eine vernetzte Terminalsitzung wie verbunden mit /dev/pts/14.

Auf Scheiben mit dem typischen PC Master Boot Record, Die Gerätezahlen der Primär- und der optionalen erweiterten Partition werden von 1 bis 4 nummeriert, während die Indizes der logischen Partitionen unabhängig vom Layout der früheren Partitionen 5 und vorangetrieben werden (ihre übergeordnete erweiterte Partition muss nicht die vierte Partition sein Auf der Festplatte müssen auch nicht alle vier primären Partitionen existieren).

Gerätenamen sind normalerweise nicht zwischen verschiedenen unixähnlichen Systemvarianten tragbar, z. B. in einigen BSD Systeme, die IDE -Geräte werden benannt /dev/wd0, /dev/wd1, etc.

Devfs

Devfs ist eine spezifische Implementierung eines Gerätedateisystems auf UNIX-ähnlichen Betriebssystemen, das zur Präsentation von Gerätedateien verwendet wird. Der zugrunde liegende Umsetzungsmechanismus kann je nach Betriebssystem variieren.

Die Wartung dieser Sonderdateien auf einem physikalisch implementierten Dateisystem wie einer Festplatte ist unpraktisch. Da es ohnehin Kernel-Unterstützung benötigt, entstand die Idee eines speziellen logischen Dateisystems, das nicht physisch gespeichert ist.

Das Definieren, wenn Geräte bereit sind, zu erscheinen, ist nicht trivial. Der DevFS -Ansatz besteht darin, dass der Gerätetreiber die Erstellung und Löschung von DEVFS -Einträgen in Bezug auf die von ihm ermöglichten und deaktivierten Geräte anfordert.

PC DOS, TOS, OS/2 und Windows

Eine Gerätedatei ist ein reserviertes Keyword, das in verwendet wird PC dos, Tos, OS/2, und Fenster Systeme, um den Zugriff auf bestimmte Ports und Geräte zu ermöglichen.

MS-DOS liehen das Konzept von Sonderdateien von UNIX aus, benannten sie jedoch um sie Geräte.[1] Weil frühe Versionen von MS-DOS nicht unterstützten a Verzeichnis Hierarchie, Geräte wurden von regulären Dateien unterschieden, indem sie ihre Namen machten reservierte Wörter. Dies bedeutet, dass bestimmte Dateinamen für Geräte reserviert wurden und nicht zum Namen neue Dateien oder Verzeichnisse verwendet werden sollten.[11] Die reservierten Namen selbst wurden ausgewählt, um mit der Handhabung von "Spezialdateien" kompatibel zu sein PIP Befehl in CP/m. Es gab zwei Arten von Geräten in DOS: Blockgeräte (für Festplattenantriebe) und Charaktergeräte (im Allgemeinen alle anderen Geräte, einschließlich COM- und PRN -Geräte).[12]

DOS verwendet Gerätedateien zum Zugriff auf Drucker und Ports. Die meisten Versionen von Windows enthalten auch diese Unterstützung, was zu Verwirrung führen kann, wenn Sie versuchen, Dateien und Ordner bestimmter Namen zu erstellen, da sie diese Namen nicht haben können.[13] Versionen 2.x von MS-DOS zur Verfügung stellen Verfügbar Config.sys Parameter das, wenn auf eingestellt auf FALSCHmacht diese speziellen Namen nur aktiv, wenn sie vorangestellt werden mit \ Dev \damit gewöhnliche Dateien mit diesen Namen erstellt werden.[14]

Gemdos, der dos-ähnliche Teil von Atari Tos, unterstützte ähnliche Geräteamen wie DOS, aber im Gegensatz zu DOS erforderte es ein Nachfolger ":" Charakter (auf DOS, dies ist optional), um sie als Geräte zu identifizieren, im Gegensatz zu normalen Dateinamen (also "con:" würde sowohl auf DOS als auch an TOS funktionieren , aber "con" würde eine gewöhnliche Datei auf TOS, aber das Konsolengerät auf DOS benennen). Im Minze und Magie, Eine spezielle Unix-ähnliche, einheitliche Dateisystemansicht, auf die über den "U:" -Schretter auch Gerätedateien in "u: \ dev" aufgerufen wurden.

Geräteschlüsselwort[13] Als Eingabe verwenden Als Ausgabe verwenden
Con Empfängt typisierte Daten bis ^Z (Strg-z) wird gedrückt. Druckt Daten in die Konsole.
Prn[15] - Druckte Text an den Drucker, normalerweise umgeleitet zu LPT1 oder Lst. Manchmal rekonfigurierbar auf anderen Geräten.[16][17][18]
Aux (nicht in OS/2[15])) Liest Daten von einem Hilfsgerät, normalerweise ein serielles Gerät wie Com1. Manchmal rekonfigurierbar auf anderen Geräten.[16][17][18] Sendet Daten an ein Hilfsgerät, normalerweise ein serielles Gerät wie Com1. Manchmal rekonfigurierbar auf anderen Geräten.[16][17][18]
Nul Gibt NULL oder keine Daten zurück. Verpflichten empfangene Daten.
Uhr $ (immer noch benannt UHR In einigen Versionen von MS-DOS 2.11[19][16][17])) - -
Keybd $ (nur im Multitasking MS-DOS)) ? ?
KBD $ (nur im OS/2[15])) ? ?
Bildschirm $ (Nur in Multitasking MS-DOS und OS/2[15])) ? ?
Zeiger $ (Nur in OS/2[15])) ? ?
Maus $ (Nur in OS/2[15])) ? ?
$ Idle $ (nur im DR-DOS (seit 5.0) und Multiuser dos (seit Gleichzeitige DOS 386) Familien) - -
Config $ (Nur in MS-DOS 7.0 und höher) - -
Lst (nur im 86-dos und dos 1.x, auch in MS-DOS 2.11 von Hewlett-Packard für die HP tragbar Plus[16][17])) Gibt keine Daten zurück. Sendet Daten an den Zeilendrucker. (LPT2 für Hewlett-Packards MS-DOS 2.11[16][17]))
PLT (nur in Hewlett-Packards MS-DOS 2.11 für die HP tragbar Plus[16][17])) Gibt keine Daten zurück. Sendet Daten an die zugewiesenen Plotter. Das angehängte Plotter -Gerät ist rekonfigurierbar.[16][17]
LPT1, LPT2, LPT3, und manchmal LPT4 (In DR-DOS 7.02 und höher und einige Versionen von Multiuser DOS) - Sendet Daten an den ausgewählten parallelen Port.
Com1, Com2, Com3, Com4 Liest Daten aus dem ausgewählten seriellen Port. Sendet Daten an den ausgewählten seriellen Port.
82164a (nur in Hewlett-Packards MS-DOS 2.11 für die HP tragbar Plus[16][17])) Leitet zu com2 weiter. Leitet zu com2 weiter.

Verwenden von Shell Umleitung und Rohre können Daten an ein Gerät gesendet oder von einem Gerät empfangen werden. Zum Beispiel sendet das Eingeben der folgenden Datei die Datei C: \ data.txt zum Drucker:

Typ C: \ data.txt> PRN

Pipe, MailSlot und MUP sind weitere Standard -Windows -Geräte.[20]

IOCs

Das 8-Bit-Betriebssystem von Scharf Taschencomputer wie PC-E500, PC-E500S usw. besteht aus a BASIC Interpreter, ein DOS 2-ähnliches Dateisteuerungssystem (FCS), das ein rudimentäres Implementieren 12-Bit-Fett-artiges Dateisystem und ein BIOS-ähnlich Eingangs-/Ausgangskontrollsystem (IOCs) Implementieren einer Reihe von Standardtreibern für Standardcharakter und Blockgerät sowie spezielle Dateigeräte, einschließlich stdo:/scrn: (Anzeige), STDI:/KYBD: (Tastatur), com: (serielle I/O), stdl:/ PRN: (Drucker), CAS: (Kassette), E:/f:/g: (Speicherdatei), S1:/S2:/S3: (Speicherkarte), x:/y: (Floppy), Systm: (System) und Nil: (Funktion).[21]

Implementierungen

Betriebssystem Dateisystem oder Software verwalten Standard Einhängepunkt Autor Anmerkungen
Linux 2.3.46pre5–2.6.17 Devfs[22] und Devfsd /dev Richard Gooch Voll im Kernel implementiert, mit optionalem Daemon Devfsd Um Geräteknotenereignisse im Benutzerbereich zu verarbeiten.[23] Veraltet - Benutzer werden ermutigt, auf zu migrieren Udev und/oder devtmpfs.
Linux 2.5– Udev auf jedem fs, aber normalerweise tmpfs /dev Greg Kroah-Hartman, Kay Sievers und Dan Stekloff Implementiert weitgehend im Benutzerbereich, werden Geräteinformationen aus gesammelt sysfs. Gerätedateien können auf einem herkömmlichen allgemeinen Dateisystem oder in einem Speicherdateisystem gespeichert werden (tmpfs).
Linux 2.6.32– devtmpfs mit oder ohne Udev /dev Kay Sievers, Jan Blunck, Greg Kroah-Hartman Ein Hybrid -Kernel/Userspace[24]
Solaris Devfs[25] /Geräte Sun Microsystems Eingeführt mit dynamisch geladenen Treibern in Solaris-2.1
Freebsd 2.0– Devfs /dev Poul-Henning Kamp Voll im Kernel implementiert.
Libelle BSD 2.3.2– Devfs /dev Alex Hornung Voll im Kernel implementiert.
Mac OS Devfs /dev Apple Inc. Voll im Kernel implementiert.
HP-UX B.11.31 Devfs /dev HP Voll im Kernel implementiert.
Plan 9 # Bell Labs Im Kernel implementiert.
RISC OS Gerätefs Geräte: Eichelcomputer DeviceFS wurde 1991 gestartet[26] und erschien zunächst in RISC OS 3. Es verwaltet mehrere Geräte wie spezielle Dateien am häufigsten: parallel, seriell, fastparallel und USB. Das SystemDevices -Modul implementiert die Pseudo -Geräte wie: VDU, KBD, NULL und Drucker.
MS-DOS, PC dos, DR-DOS FETT \ Dev (und /Dev)) verschiedene Wie im Kernel implementiert, erscheinen Zeichengeräte im Virtual \ Dev -Verzeichnis und in jedem Festplattenverzeichnis. Unter MS-DOS/PC DOS 2.x, die Config.sys Verfügbar= Falsche Anweisung kann verwendet werden, um Geräte zu zwingen, nur in \ dev zu existieren.
Magie, Minze, Multitos U: \ dev[27][28] Anwendungssysteme Heidelberg, Eric R. Smith, Atari Corp. Das Special U: Drive enthält ein Virtual Dev -Verzeichnis, in dem Sie Gerätedateien finden können.
Windows 9x \\Geräte\ Microsoft
Windows NT \Gerät Microsoft Das \Gerät Das Verzeichnis ist Teil des Windows NT -Objekt -Namespace.
Windows NT Win32 -Subsystem \\. \ Microsoft Das \\. \ Präfix macht den Unterstützung von APIs auf den Win32 -Geräte -Namespace anstelle des Win32 -Dateinamens zuzugreifen. Die Win32 -Gerätenamen sind symbolische Links zu Gerätenamen unter Windows NT \Gerät Verzeichnis.

Siehe auch

Verweise

  1. ^ a b "Windows for WorkGroups: Wie VSHARE.386 Dateifreigabe verwaltet". Support.microsoft.com. 1999-09-22. Abgerufen 2014-01-22.
  2. ^ Kroah-Hartman, Greg (2005-06-20). "[Patch] Devfs: Entfernen Sie DevFs aus dem Kernelbaum". Linux -Kernel -Quellbaum. Abgerufen 2021-06-12.
  3. ^ Corbet, Jonathan; Kroah-Hartman, Greg; Rubini, Alessandro (2005). "Zugriffskontrolle auf einer Gerätedatei". Linux -Gerätetreiber, 3. Auflage. O'Reilly. Abgerufen 2017-04-28. Der nächste Schritt über ein Einzelgerät hinaus besteht darin, einem einzelnen Benutzer ein Gerät in mehreren Prozessen öffnen zu lassen, aber nur einen Benutzer zu ermöglichen, das Gerät gleichzeitig öffnen zu lassen.
  4. ^ Kernighan, Brian W.; Pike, Rob (1984). Die UNIX -Programmierumgebung. Prentice-Hall. p.66. ISBN 0-13-937681-x.
  5. ^ Neil Brown (2010-10-27). "Geister der Unix -Vergangenheit: Eine historische Suche nach Designmustern". Linux Weekly News. Abgerufen 2014-03-30.
  6. ^ "IEEE STD 1003.1, 2013 Ausgabe". Abgerufen 2014-04-24.
  7. ^ "FreeBSD Architekturhandbuch". Abgerufen 2013-03-07.
  8. ^ "usr.sbin/envstat/envstat.c". BSD Cross Referenz. Netbsd. November 2021.
  9. ^ "Mknod (8)". FreeBSD -Handbuchseiten. Das FreeBSD -Projekt. 2016-10-03. Abgerufen 2021-06-12.
  10. ^ Linux hat Namen und Zahlen Autorität zugewiesen (2009-04-06). "Linux -zugewiesene Geräte (2.6+ Version)". Linux Kernel (Dokumentation/devices.txt). Archiviert von das Original am 2016-04-24. Abgerufen 2013-06-08.
  11. ^ "Vermeiden Sie Macintosh -Dateinamen, die NT -Gerätenamen sind". Support.microsoft.com. 2006-11-01. Abgerufen 2014-01-22.
  12. ^ "Geräteattribute". Stanislavs.org. Abgerufen 2014-01-22.
  13. ^ a b "MS-DOS-Geräte-Treibernamen können nicht als Dateinamen verwendet werden". Revision 2.0. Microsoft. 2003-05-12. KB74496, Q74496. Archiviert von das Original Am 2012-07-21.
  14. ^ "Undokumentierte Befehle". 4dos.info. Kevtronics. 2002-04-12. Abgerufen 2014-05-16.
  15. ^ a b c d e f IBM -Betriebssystem/2 Technische Referenz - Programmierfamilie (PDF). Vol. 1 (1. Aufl.). IBM. September 1987 [1986]. Archiviert (PDF) vom Original am 2017-01-03.
  16. ^ a b c d e f g h i Hewlett -Packard - Technisches Referenzhandbuch - tragbarer Plus (1 ed.). Corvallis oder, USA: Hewlett-Packard Company, Tragbare Computerabteilung. August 1985. 45559-90001. Abgerufen 2016-11-27.
  17. ^ a b c d e f g h i Hewlett -Packard - Technisches Referenzhandbuch - tragbarer Plus (PDF) (2 ed.). Tragbare Computerabteilung, Corvallis, OR, USA: Hewlett-Packard Company. Dezember 1986 [August 1985]. 45559-90006. Archiviert (PDF) vom Original am 2016-11-28. Abgerufen 2016-11-27.
  18. ^ a b c Paul, Matthias R. (1997-10-02). "Caldera Opendos 7.01/7.02 UPDATE ALPHA 3 IBMBIO.com Readme.txt". Archiviert von das Original Am 2003-10-04. Abgerufen 2009-03-29. [1]
  19. ^ Paterson, Tim; Microsoft (2013-12-19) [1983]. "Microsoft dos v1.1 und v2.0: /msdos/v20source/skelio.txt, /msdos/v20Source/hrddrv.asm". Computergeschichte Museum, Microsoft. Abgerufen 2014-03-25. (Hinweis: Während die Verlage behaupten, dies wäre MS-DOS 1.1 und 2.0, ist dies tatsächlich SCP MS-DOS 1.25 und eine Mischung aus Altos MS-DOS 2.11 und Televideo PC DOS 2.11.))
  20. ^ "Reg: CurrentControlSet -Einträge Teil 2: SessionManager". Support.microsoft.com. 2006-11-01. Abgerufen 2014-01-22.
  21. ^ Technischer Referenzhandbuch PC-E500 (PDF). Sharp Corporation, Information Systems Group, Personal Equipment Division. März 1990. p. 17. Archiviert (PDF) vom Original am 2017-03-14. Abgerufen 2017-03-14.
  22. ^ Gooch, Richard (2002-08-20). "Linux devfs (Gerätedateisystem) FAQ". Abgerufen 2021-06-13.
  23. ^ Gooch, Richard. "Meine Linux -Beiträge". Abgerufen 2021-06-13. DEVFSD bietet eine konfigurierbare Verwaltung von Geräteknoten mithilfe des Linux -Geräte -Dateisystems.
  24. ^ "Treiberkern: devtmpfs-Kernel-gepflegtes TMPFS-basiert /dev". Lwn. Abgerufen 2009-08-10.
  25. ^ "Devfs (7Fs)". Mannseiten Abschnitt 7: Geräte- und Netzwerkschnittstellen. Orakel. 2014. Abgerufen 2021-06-12.
  26. ^ "Project Black Change Log" ". Abgerufen 2016-05-15.
  27. ^ "Der Antrieb u: in Magie". 2016-03-28. Archiviert vom Original am 2017-01-15. Abgerufen 2017-01-09.
  28. ^ "Freemint -Portal - Mint.doc". 2000-04-27. Archiviert vom Original am 2017-01-15. Abgerufen 2017-01-09.

Weitere Lektüre