/ dev / zero es un archivo especial en sistemas operativos similares a Unix que proporciona tantos caracteres nulos ( ASCII NUL, 0x00) como se leen. [1] Uno de los usos típicos es proporcionar un flujo de caracteres para inicializar el almacenamiento de datos. [2]
Función
Leer operaciones de / dev / zero devuelve tantos caracteres nulos (0x00) como se soliciten en la operación de lectura.
a diferencia de / dev / null , / dev / zero puede usarse como fuente, no solo como receptor de datos. Todas las operaciones de escritura en / dev / zero tiene éxito sin otros efectos. Sin embargo,/ dev / null se usa más comúnmente para este propósito.
Cuándo / dev / zero está mapeado en memoria, por ejemplo, con mmap , al espacio de direcciones virtuales, es equivalente a usar memoria anónima; es decir, memoria no conectada a ningún archivo.
Historia
/ dev / zero fue introducido en 1988 por SunOS-4.0 para permitir un segmento BSS mapeable para bibliotecas compartidas usando memoria anónima. [3] HP-UX 8.x introdujo el indicador MAP_ANONYMOUS para mmap (), que asigna memoria anónima directamente sin necesidad de abrir / dev / zero . [4] Desde finales de la década de 1990, MAP_ANONYMOUS [5] o MAP_ANON son compatibles con la mayoría de las versiones de UNIX, eliminando el propósito original de / dev / zero . [6]
Ejemplos de
El programa de utilidad dd Unix lee flujos de octetos desde un origen a un destino, posiblemente realizando conversiones de datos en el proceso. Destrucción de datos existentes en una partición del sistema de archivos ( formateo de bajo nivel ):
dd if = / dev / zero of = / dev / ón>
Creando un archivo de 1 MiB , llamado foobar , lleno de caracteres nulos: [7]
dd if = / dev / zero of = foobar count = 1024 bs = 1024
Nota: El valor del tamaño del bloque se puede dar en valores SI (decimales), por ejemplo, en GB, MB, etc. Para crear un archivo de 1 GB, simplemente se debe escribir:
dd if = / dev / zero of = foobar count = 1 bs = 1GB
Nota: En lugar de crear un archivo real con solo cero bytes, muchos sistemas de archivos también admiten la creación de archivos dispersos que devuelven ceros al leerlos pero usan menos espacio real. [8]
Ver también
Referencias
- ^ Mitchell, Mark; Oldham, Jeffrey; Samuel, Alex (2001), "6.5.2 / dev / zero", Programación avanzada de Linux , Sams Publishing, p. 136, ISBN 9780735710436
- ^ Love, Robert (2007), "Mapping / dev / zero", Programación del sistema Linux: Hablando directamente con la biblioteca Kernel y C , O'Reilly Media, Inc., págs. 259-260, ISBN 9780596009588
- ^ " " C "programa de arranque en tiempo de ejecución de SunOS, contribuido a CSRG para su inclusión en 4.4BSD" . TUHS .
- ^ "Medios de instalación de HP-UX 8.0.7" .
- ^ Beal, Chris. "Entonces, ¿qué diablos es la memoria anónima" . Blog de Oracle .
- ^ "Descripción MAP_ANON en mmap (2)" . NetBSD .
- ^ Optimización del rendimiento de NFS: ajuste y solución de problemas de NFS en sistemas HP-UX, Dave (2002). Olker . Prentice Hall Professional. págs. 26–7. ISBN 9780130428165. Consultado el 16 de julio de 2014 .
- ^ Archivo escaso