Я спорожняю жорсткий диск на деяких ОС Linux 4.x за допомогою цієї команди:
sudo sh -c 'pv -pterb /dev/zero > /dev/sda'
І я відкрив ще одну десятку і почав sudo htop
і помітив це:
PID USER PRI NI CPU% RES SHR IO_RBYTES IO_WBYTES S TIME+ Command
4598 root 20 0 15.5 1820 1596 4096 17223823 D 1:14.11 pv -pterb /dev/zero
Значення для IO_WBYTES
здається цілком нормальним, але IO_RBYTES
залишається на рівні 4 KiB і ніколи не змінюється.
Наприклад, я запустив кілька інших програм
dd if=/dev/zero of=/dev/zero
cat /dev/zero > /dev/zero
і був здивований, побачивши, що жоден з них не створює багато IO_RBYTES
або IO_WBYTES
.
Я думаю, що це не характерно для будь-якої програми, але чому б не читати /dev/zero
і записувати, щоб /dev/{zero,null}
рахувати як байти вводу / виводу?
/dev/null
не закінчуйте взаємодії з таким обладнанням і не засмічують шини вводу / виводу. Доведено до крайності; читаються / записуються в / з пам'яті також I / O? Звичайно, для цих речей немає чіткого розмежування, і все залежить від того, яку точку зору ви сприймаєте в цих речах, і наскільки корисна ця перспектива виявляється для вас.
/dev/{null,zero}
(що зазвичай не є вузьким місцем). Це просто моя точка зору :)
read(2)
і write(2)
вважається введенням / виводом , що є дуже розумним у власному розумінні.