cat / dev / zero
дает вам поток нулевых символов. Когда вы открываете его и читаете, вы используете ядро. Ядро реализует / dev / zero
в drivers / char / mem.c .
Что касается cat
или pv
, касаться этого особо нечего. Выбор использования / dev / zero
ничем не отличается от чтения / etc / passwd
. Единственное отличие состоит в том, что вы читаете виртуальный файл, а не настоящий файл. Таким образом, ядро выполняет другую работу - т.е. ему не нужно ничего делать с файловой системой и т. Д.
Запись в / dev / null
в значительной степени аналогична. pv
не заботится о цели (в данном случае это ваша оболочка из-за перенаправления), и снова единственная разница состоит в том, что запись отбрасывается, потому что это то, для чего драйвер ядра / dev / null
, опять же в drivers / char / mem.c
.
Скорость этого процесса будет зависеть от нагрузки ввода-вывода системы и процессора, так как больше всего на свете.