/dev/zero

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

/dev/zero bezeichnet eine virtuelle Gerätedatei auf Unix-artigen Betriebssystemen, die beim Lesezugriff die angeforderte Anzahl an Null-Bytes (Nullzeichen) zurückliefert.

/dev/zero wurde mit SunOS 4.0 im Jahre 1987 gemeinsam mit dem neuen VM-Subsystem eingeführt. Es ist nicht Bestandteil des POSIX-Standards.

Wenn auf /dev/zero geschrieben wird, verhält es sich wie das Nullgerät /dev/null. Bei einem mmap-Systemaufruf auf /dev/zero werden anonyme genullte Seiten aus dem virtuellen Speicherpool des Betriebssystemkernels zur Verfügung gestellt. Viele Betriebssysteme verwenden diesen mmap-Mechanismus, um Programmen und Shared Libraries den sogenannten nicht-initialisierten Datenbereich zur Verfügung zu stellen. Viele Programme verwenden Datenbereiche, die durch einen mmap auf /dev/zero erzeugt wurden, als Basis für Shared Memory, das zur Kommunikation zwischen mehreren Prozessen verwendet wird.

Im folgenden Beispiel erzeugt das Unix-Kommando dd die Datei fdisk144.img, die dem Diskettenabbild einer 1,44-MB-Diskette (2.880 Blöcke à 512 Bytes) entspricht und nur Nullzeichen enthält:

dd if=/dev/zero of=fdisk144.img bs=512 count=2880

Wenn das Abbild danach z. B. mit newfs_msdos -F 12 fdisk144.img (unter BSD-Unix wie z. B. FreeBSD; u. a. mkfs.msdos unter Linux) formatiert wird, kann das dadurch erstellte Disk Image von einem Emulator oder einer Virtuellen Maschine (VM) als virtuelle Diskette mit FAT12-Dateisystem verwendet werden.