/dev/zero
/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.
Details
[Bearbeiten | Quelltext bearbeiten]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.
Verwendung
[Bearbeiten | Quelltext bearbeiten]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.