/dev/zero је посебна датотека у оперативним системима сличним Јуниксу која пружа онај број симбола 0 (ASCII NULL, 0x00) које се читају из ње.[1] Једна од типичних примена је да пружи ток симбола за потребе иницијализације складишта података.[2]

Специјалнe датотеке уређаја

Функција уреди

Операције читања из /dev/zero враћају онолико нултих знакова (0x00) колико се тражи у операцији читања.

За разлику од /dev/null, /dev/zero се може користити као извор, не само као синк за податке. Све операције писања у /dev/zero успевају без других ефеката. Међутим, /dev/null се чешће користи за ову сврху.

Када је /dev/zero мапиран меморијом, нпр. са mmap, у виртуални адресни простор, то је еквивалентно употреби анонимне меморије; тј. меморија није повезана ни са једном датотеком.

Историја уреди

dev/zero је 1988. увео SunOS-4.0 како би омогућио могућност мапирања BSS сегмента за дељене библиотеке коришћењем анонимне меморије. Средином 1990-их, HP-UX је увео mmap() заставицу MAP_ANONYMOUS која мапира анонимну меморију директно без потребе за отварањем /dev/zero. Од краја 1990-их, MAP_ANONYMOUS је подржан у већини верзија Јуникса, чиме је уклоњена првобитна сврха /dev/zero.[тражи се извор]

Примери уреди

Јуниксов помоћни програм dd чита октетске токове од извора до одредишта, чиме се вероватно врши конверзија података у процесу. Уништавање постојећих података на партицији системског фајла (форматирање ниског нивоа):

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

Креирање 1 МиБ фајла, названог foobar, попуњен са знаковима нуле:

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

Напомена: Вредност величине блока може се дати у СИ (децималним) вредностима, нпр. У GB, MB, итд. Да би се креирала датотека од 1 GB, једноставно би се унела команда:

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

Напомена: Уместо стварања стварне датотеке са само нула бајтова, многи системи датотека такође подржавају креирање ретких датотека које враћају нуле при читању, али користе мање стварног простора.

Референце уреди

  1. ^ Mitchell, Mark; Oldham, Jeffrey; Samuel, Alex (2001), „6.5.2 /dev/zero”, Advanced Linux Programming, Sams Publishing, стр. 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., стр. 259—260, ISBN 9780596009588