/dev/zero je posebna datoteka u operativnim sistemima sličnim Juniksu koja pruža onaj broj simbola 0 (ASCII NULL, 0x00) koje se čitaju iz nje.[1] Jedna od tipičnih primena je da pruži tok simbola za potrebe inicijalizacije skladišta podataka.[2]

Specijalne datoteke uređaja

Funkcija uredi

Operacije čitanja iz /dev/zero vraćaju onoliko nultih znakova (0x00) koliko se traži u operaciji čitanja.

Za razliku od /dev/null, /dev/zero se može koristiti kao izvor, ne samo kao sink za podatke. Sve operacije pisanja u /dev/zero uspevaju bez drugih efekata. Međutim, /dev/null se češće koristi za ovu svrhu.

Kada je /dev/zero mapiran memorijom, npr. sa mmap, u virtualni adresni prostor, to je ekvivalentno upotrebi anonimne memorije; tj. memorija nije povezana ni sa jednom datotekom.

Istorija uredi

dev/zero je 1988. uveo SunOS-4.0 kako bi omogućio mogućnost mapiranja BSS segmenta za deljene biblioteke korišćenjem anonimne memorije. Sredinom 1990-ih, HP-UX je uveo mmap() zastavicu MAP_ANONYMOUS koja mapira anonimnu memoriju direktno bez potrebe za otvaranjem /dev/zero. Od kraja 1990-ih, MAP_ANONYMOUS je podržan u većini verzija Juniksa, čime je uklonjena prvobitna svrha /dev/zero.[traži se izvor]

Primeri uredi

Juniksov pomoćni program dd čita oktetske tokove od izvora do odredišta, čime se verovatno vrši konverzija podataka u procesu. Uništavanje postojećih podataka na particiji sistemskog fajla (formatiranje niskog nivoa):

dd if=/dev/zero of=/dev/<destination partition>

Kreiranje 1 MiB fajla, nazvanog foobar, popunjen sa znakovima nule:

dd if=/dev/zero of=foobar count=1024 bs=1024

Napomena: Vrednost veličine bloka može se dati u SI (decimalnim) vrednostima, npr. U GB, MB, itd. Da bi se kreirala datoteka od 1 GB, jednostavno bi se unela komanda:

dd if=/dev/zero of=foobar count=1 bs=1GB

Napomena: Umesto stvaranja stvarne datoteke sa samo nula bajtova, mnogi sistemi datoteka takođe podržavaju kreiranje retkih datoteka koje vraćaju nule pri čitanju, ali koriste manje stvarnog prostora.

Reference uredi

  1. ^ Mitchell, Mark; Oldham, Jeffrey; Samuel, Alex (2001), „6.5.2 /dev/zero”, Advanced Linux Programming, Sams Publishing, str. 136, ISBN 9780735710436 
  2. ^ Love, Robert (2007), „Mapping /dev/zero”, Linux System Programming: Talking Directly to the Kernel and C Library, O'Reilly Media, Inc., str. 259—260, ISBN 9780596009588