Jump to content

/Дев/ноль

/dev/zero — это специальный файл в Unix-подобных операционных системах , который содержит столько нулевых символов ( ASCII NUL, 0x00), сколько из него прочитано. [1] Одним из типичных применений является предоставление потока символов для инициализации хранилища данных. [2]

Чтение операций из /dev/zero возвращает столько нулевых символов (0x00), сколько запрошено в операции чтения.

В отличие от /Дев/нуль , /dev/zero можно использовать как источник, а не только как приемник данных. Все операции записи в /dev/zero выполняется успешно без каких-либо других эффектов. Однако, /dev/null Для этой цели чаще используется .

Когда /dev/zero отображается в памяти, например, с помощью mmap , в виртуальное адресное пространство, это эквивалентно использованию анонимной памяти; т.е. память не связана ни с одним файлом.

/dev/zero был представлен в 1988 году в SunOS-4.0, чтобы разрешить отображаемый сегмент BSS для общих библиотек, использующих анонимную память. [3] В HP-UX 8.x появился флаг MAP_ANONYMOUS для mmap(), который напрямую отображает анонимную память без необходимости ее открытия. /Дев/ноль . [4] С конца 1990-х годов MAP_ANONYMOUS [5] или MAP_ANON поддерживаются большинством версий UNIX, что устраняет первоначальную цель /Дев/ноль . [6]

Удаление раздела файловой системы или диска:

cp /dev/zero /dev/<destination drive or partition>

(Обратите внимание, что это не обеспечивает безопасного удаления, может вообще не уничтожить данные и может занять значительно больше времени, чем требуется — для этой цели , могут быть предпочтительными специальные инструменты, такие как blkdiscard для устройств, поддерживающих TRIM .)

Создание файла размером 1 МБ с именем foobar , заполненного нулевыми символами:

head -c $(( 1024 * 1024 )) /dev/zero > foobar

Вместо создания файла, действительно заполненного только нулевыми байтами, многие файловые системы также поддерживают создание разреженных файлов , которые при чтении возвращают нули, но занимают меньше фактического пространства. Классический способ сделать это (без утилиты усечения , специфичной для домена ) — создать файл размером 1 ГиБ :

dd bs=1 seek=$(( 1024 * 1024 * 1024 - 1 )) count=1 < /dev/zero > foobar

который пытается разместить search · bs в выходных данных =1GiB-1 и количество копий · bs =1 байт из /dev/zero, таким образом делая файл содержащим только один блок данных.

См. также

[ редактировать ]
  1. ^ Митчелл, Марк; Олдхэм, Джеффри; Сэмюэл, Алекс (2001), «6.5.2 /dev/zero», Advanced Linux Programming , Sams Publishing, стр. 136, ISBN  9780735710436
  2. ^ Лав, Роберт (2007), «Сопоставление /dev/zero», Системное программирование Linux: прямой разговор с ядром и библиотекой C , O'Reilly Media, Inc., стр. 259–260, ISBN  9780596009588
  3. ^ « Загрузочная программа времени выполнения «C» из SunOS, внесенная в CSRG для включения в 4.4BSD» . ТУХС .
  4. ^ «Установочный носитель HP-UX 8.0.7» . 22 июля 1992 г.
  5. ^ Бил, Крис. «Так что же такое анонимная память? » Блог Oracle . Архивировано из оригинала 15 апреля 2021 г. Проверено 9 сентября 2019 г.
  6. ^ «Описание MAP_ANON в mmap(2)» . НетБСД . Архивировано из оригинала 25 ноября 2019 г. Проверено 9 сентября 2019 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ec97e9b3b08ffa3ae349480bb48b8e53__1713105600
URL1:https://arc.ask3.ru/arc/aa/ec/53/ec97e9b3b08ffa3ae349480bb48b8e53.html
Заголовок, (Title) документа по адресу, URL1:
/dev/zero - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)