ื ืืืื ืืขืืขืจ! ืืืจ ืคืึธืจืืขืฆื ืฆื ืงืึทืืขืจ ื ืืึทืข ืกืืจืืื ืคึฟืึทืจ ืื ืงืึธืจืกืึทื ืืื ืืืึธืก ืืืจ ืืึธื ืฉืืื ืืขืคืืื ืืื ืืืืข ืืื ืืืฆื ืืืจ ืืขื ืขื ืืื ืึท ืืึทืื ืฆื ืืขืืื ืึทื ืืืจ ืึธื ืืืืื ืึท ื ืืึทืข ืืึทื ื ืคืื ืงืึธืจืกืึทื
ืืืืจืืืขื ืืขืงืข ืกืืกืืขืืขื ืืื ืขื ืืื ืึท ืืื ืคืื ืืึทืืืฉืืงืึทื ืึทืืกืืจืึทืงืฆืืข ืืืึธืก ืึทืืึทืื ืื ืคึฟืืืึธืกืึธืคึฟืืข ืคืื โโืืื ืืงืก ืฆื ืืึธืื ืึทื "ืึทืืฅ ืืื ืึท ืืขืงืข."
ืืืึธืก ืืื ืึท ืืขืงืข ืกืืกืืขื? ืืึทืืืจื ืืืืฃ ืื ืืืขืจืืขืจ ืคืื ืืืื ืขืจ ืคืื ืื ืขืจืฉืืข ืืืืืจืืขืืขืจืก ืืื ืืืืจืื ืคืื ืืื ืืงืก
ืคืืืขืกืืกืืขื ืืึทืกืืงืก
ืื ืืื ืืงืก ืงืขืจื ืืื ืืืืขืจ ืจืขืงืืืืจืขืืขื ืฅ ืคึฟืึทืจ ืึท ืขื ืืืื ืืืึธืก ืงืขื ืขื ืืืื ืืขืืืืื ืึท ืืขืงืข ืกืืกืืขื. ืขืก ืืืื ืื ืกืืจืืืขื ื ืื ืืขืืืึธืืก open()
, read()
ะธ write()
ืคึฟืึทืจ ืคึผืขืจืกืืกืืขื ื ืึทืืืืฉืขืงืฅ ืืืึธืก ืืึธืื ื ืขืืขื. ืคึฟืื ืึทื ืึธืืืขืงื-ืึธืจืืขื ืืื ืคืื ื ืคืื ืืืื ืื ื
ืืืื ืืืจ ืงืขื ืขื ืขืคึฟืขื ืขื, ืืืืขื ืขื ืืื ืฉืจืืึทืื ืฆื ืึทื ืขื ืืืื, ืื ืขื ืืืื ืืื ืืขืืืืื ืึท ืืขืงืข, ืืื ืืืจ ืงืขื ืขื ืืขื ืคึฟืื ืืขื ืืืึทืฉืคึผืื ืืื ืื ืงืึทื ืกืึธืื ืืืืื.
ืื VFS ืืขืจืฉืืื ืื ื ืืืืื ืึทื ืืขืจืงืึธืจื ืื ืืื ืืงืก-ืืื ืึธืืกืขืจืืืึทืฆืืข ืึทื "ืึทืืฅ ืืื ืึท ืืขืงืข". ืืจืึทืืื ืืื ืืฉืืื ืข ืึทื ืื ืงืืืื / ืืขืื / ืงืึทื ืกืึธืื ืืืึทืฉืคึผืื ืืืืื ืืืืืื ืืื ืื ืงืึทื ืกืึธืื ืึทืงืฉืื ืึทืจืืขื. ืื ืืืื ืืืืืื ืึทื ืื ืืขืจืึทืงืืืื ืืึทืฉ ืกืขืกืืข. ืฉืืงื ืึท ืฉืืจืืงื ืฆื ืื ืงืึทื ืกืึธืื (ืืืืจืืืึทื ืงืึทื ืกืึธืื ืืืื) ืืืกืคึผืืืื ืขืก ืืืืฃ ืึท ืืืืจืืืึทื ืคืึทืจืฉืืขืื. VFS ืืื ืื ืืขืจืข, ืืคืืื ืคืจืขืืืขืจ ืคึผืจืึธืคึผืขืจืืืขืก. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืขืก ืึทืืึทืื ืืืจ ืฆื ืืืื ืืืจื
ืืึทืงืึทื ืืข ืกืืกืืขืืขื ืึทืืึท ืืื ext4, NFS ืืื /proc ืืึธืื ืืจืื ืืืืืืืง ืคืึทื ืืงืฉืึทื ื ืืื ืึท C ืืึทืื ืกืืจืืงืืืจ ืืขืจืืคื read()
ืืืื ืืขืงืข ืกืืกืืขื ืืื ืืขืืึธืื ื ืืฆื ืืขื ืืืคึฟื write ()
ืื ืื ืืขืจ ืืขืงืข ืกืืกืืขื ืคึฟืึทืจ ืืึทืื ืจืขืืืืืึทื.
ืื ืคึฟืื ืงืฆืืข ืืขืคึฟืื ืืฆืืขืก ืืืึธืก ืืขืืขืจื ืฆื ืื ืืึทืืข VFS ืืืืคึผืก ืืขื ืขื ืืื ืื ืืขืงืขืก fs/
ืึทื ืืืึทืืื ืืืืขืจ ืืขืงืข ืกืืกืืขืืขื. ืื ืืึทืจืฅ ืืืื ืึผืืื ืขื ืืืืื ืึทืืึท ืืื cgroups
, /dev
ะธ tmpfs
, ืืืึธืก ืืขื ืขื ืคืืจืืื ืื ืืขืฉืึทืก ืื ืฉืืืืื ืคึผืจืึธืฆืขืก ืืื ืืขื ืขื ืืขืจืืืขืจ ืืืคืืื ื ืืื ืื ืงืขืจื ืกืืืืืจืขืงืืึธืจื init/
. ืืึทืืขืจืงื ืึทื cgroups
, /dev
ะธ tmpfs
ืืึธื ื ืื ืจืืคื ืื "ืืจืืืก ืืจืื" ืคืึทื ืืงืฉืึทื ื file_operations
, ืึธืืขืจ ืืืืึทื ืืืืขื ืขื ืืื ืฉืจืืึทืื ืฆื ืืึผืจืื.
ืื ืืืึทืืจืึทืืข ืืื ืื ืืืืืื ืืื ืืึทื ืืฆืขืจ-ืกืคึผืืืก ืึทืงืกืขืก ืื ืคืึทืจืฉืืืขื ืข ืืืืคึผืก ืคืื ืคืืืขืกืืกืืขืืก ืงืึทืืึทื ืื ืืึธืื ืืขื ืืืืฃ ืืื ืืงืก ืกืืกืืขืืขื. ืกืืจืึทืงืืฉืขืจื ื ืื ืืขืืืืื pipes
, dmesg
ะธ POSIX clocks
, ืืืึธืก ืืืื ืื ืกืืจืืืขื ื ืื ืกืืจืืงืืืจ file_operations
, ืึทืงืกืขืกื ืืืจื ืื VFS ืฉืืืืข.
VFS ืืื ืึท "ืจืึทืคึผืขืจ ืฉืืืืข" ืฆืืืืฉื ืกืืกืืขื ืจืืคื ืืื ืืืคึผืืึทืืึทื ืฅ ืคืื ืืืืขืจ file_operations
ืึทืืึท ืืื ext4
ะธ procfs
. ืคืึทื ืืงืฉืึทื ื file_operations
ืงืขื ืขื ืื ืืขืจืึทืงื ืืื ืืืื ืืจืืืืขืจืก ืึธืืขืจ ืืืงืึธืจื ืึทืงืกืขืก ืืขืืืืกืขืก. tmpfs
, devtmpfs
ะธ cgroups
ื ืืฉื ื ืืฆื file_operations
, ืึธืืขืจ ืืืืึทื ืฆืืืจืื ืื ืืึผืจืื.
ืื ืขืงืืืกืืขื ืฅ ืคืื VFS ืืื ืึท ืืขืืขืื ืืืื ืฆื ืจืืืืก ืงืึธื, ืืืืึทื ืื ืืงืขืจืืืง ืืขืืืึธืืก ืคึฟืึทืจืืื ืื ืืื ืืขืงืข ืกืืกืืขืืขื ืืึธื ื ืื ืืึธืื ืฆื ืืืื ืืืคึผืืึทืืขื ืึทื ืืืจื ืืขืืขืจ ืืืคึผ ืคืื ืืขืงืข ืกืืกืืขื. ืงืึธื ืจืืืืก ืืื ืึท ืคึผืจืึธืกื ืคืืจ ืฆืืืืฉื ืืืืืืืืืจื ืขื ืืืฉืึทื ืืจื! ืึธืืขืจ, ืืืื ืื ืจืืืืึทืืึทื ืงืึธื ืึผืืื
/ืืืคึผ: ืคึผืฉืื ืึธื ืฆืืืขืจืขื ืืฉ
ืึทื ืืจืื ื ืืืขื ืฆื ืืขืืขืงื ืึทื VFS ืืขื ืขื ืคืึธืจืฉืืขืื ืืืืฃ ืึท ืกืืกืืขื ืืื ืฆื ืืจืืงื mount | grep -v sd | grep -v :/
, ืืืึธืก ืืืขื ืืืืึทืื ืึทืืข ืืึธืื ืืขื (mounted
) ืคืืืขืกืืกืืขืืก ืืืึธืก ืืขื ืขื ื ืืฉื ืืืกืง-ืืืืฉืขืื ืืื ื ืื-NFS, ืืืึธืก ืืื ืืืช ืืืืฃ ืจืืึฟ ืงืึธืืคึผืืืืขืจืก. ืืืื ืขืจ ืคืื ืื ืืืกืืขื ืืึทืื ืฅ (mounts
) VFS ืืืขื ืืื /tmp
, ืจืขืื ?
ืึทืืขืืขื ืืืืืกื ืึทื ืกืืึธืจืืืืฉ / tmp
ืืืืฃ ืึท ืืฉืืืืช ืืืื - ืืขืฉืืืึทืก!
ืคืืจืืืืก ืืื ืขืก ืึทื ืืืืืืจืึทืืึทื ืฆื ืงืจืึธื /tmp
ืืืืฃ ืืฉืืืืช ืืืืืึท? ืืืืึทื ืื ืืขืงืขืก ืืื /tmp
ืืขื ืขื ืฆืืึทืืืืืึทืืืง ืืื ืกืืึธืจืืืืฉ ืืขืืืืกืขืก ืืขื ืขื ืกืืึธืืขืจ ืืื ืืขืจ ืืึผืจืื ืืื ืืืคึผืคืก ืืื ืืืฉืืคื. ืืขืจืฆื, ืืฉืืืืช ืืืืืึท ืืื ืืขืจ ืคึผืจืึธื ืข ืฆื ืึธืืืืขืจืจืืืืื ื ืืจืึธืื ืืื ืืึผืจืื. ืฆืื ืกืืฃ, ืืขืงืขืก ืืื / ืืืคึผ ืงืขื ืขื ืึทื ืืืึทืืื ืฉืคึผืืจืขืืืืืง ืืื ืคึฟืึธืจืืึทืฆืืข, ืึทืืื ืืึทืื ืืื ืคืึทืจืฉืืืื ืื ืืืืฃ ืืขืืขืจ ืจืขืืึธืึธื ืืื ืึท ืืงืขืจืืืง ืฉืืจืื.
ืฆืื ืืึทืืืืขืจื, ืขืืืขืืข ืืื ืืงืก ืคืึทืจืฉืคึผืจืืืืื ื ืืึทื ืืึธื ืืืจืื ื ืกืงืจืืคึผืก ืฉืึทืคึฟื / ืืืคึผ ืืืืฃ ืื ืกืืึธืจืืืืฉ ืืืื ืืืจื ืคืขืืืงืืึทื. ืฆื ื ืื ืคืึทืจืฆืืืืืคืืื ื ืืืื ืืึธืก ืืื ืืืื ืืขืฉืขื ืืื ืืืื ืกืืกืืขื. ืืื ืึท ืืืกื ืคึผืฉืื ืื ืกืืจืึทืงืฉืึทื ื ืืื tmpfs
ืืืขืจื ืึทื ืึทืืืืืืึทืืึทื ืคึฟืึทืจ ืื ืืขืจืข ืฆืืืขืงื. ืืื ืื ืืขืจืข ืืืขืจืืขืจ, ืึท ืกืืกืืขื ืืื ืึท ืจืื ืืืคึผืคืก ืืื ืืจืืืก ืืขืงืขืก ืืืืฃ ืขืก ืงืขื ืขื ืืืืคื ืืืืก ืคืื ืืึผืจืื ืืื ืงืจืึทื. ืื ืื ืืขืจ ืึธื ืฆืืืขืจืขื ืืฉ: ืืฉืขืช ืขืืืืื ื ืึท ืืขืงืข /etc/fstab
, ืืขืืขื ืงื ืึทื ืขืก ืืืื ืกืืฃ ืืื ืึท ื ืขืืืืืื, ืึทื ืืขืจืฉ ืืืื ืกืืกืืขื ืืืขื ื ืืฉื ืฉืืืืื.
/proc ืืื /sys
ืืื /tmp
, VFS (ืืืืจืืืึทื ืืขืงืข ืกืืกืืขืืขื) ืืืึธืก ืืขื ืขื ืืขืจืกื ืืึทืงืึทื ื ืคึฟืึทืจ ืืื ืืงืก ืืืืขืจื ืืขื ืขื /proc
ะธ /sys
. (/dev
ืจืืืืืื ืืื ืฉืขืจื ืืึผืจืื ืืื ืืื ื ืืฉื ืืึธืื file_operations
). ืคืืจืืืืก ืื ืฆืืืื ืงืึทืืคึผืึธืื ืึทื ืฅ? ืืื ืก ืงืืง ืืื ืืขื ืึทืจืืืกืืขืื.
procfs
ืงืจืืืืฅ ืึท ืืึธืืขื ืืืืื ืคืื ืื ืงืขืจื ืืื ืื ืคึผืจืึทืกืขืกืึทื ืขืก ืืึธื ืืืึธืจืก ืคึฟืึทืจ userspace
. ืื /proc
ืืขืจ ืงืขืจื ืคึผืจืื ืฅ ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืืืึธืก ืขืก ืืื ืื ืืืฆื, ืึทืืึท ืืื ืื ืืขืจืึทืคึผืฅ, ืืืืจืืืึทื ืืึผืจืื ืืื ืื ืกืงืขืืืฉืืืขืจ. ืึทืืืฅ, /proc/sys
ืืื ืืขืจ ืึธืจื ืืื ืื ืคึผืึทืจืึทืืขืืขืจืก ืงืึทื ืคืืืืขืจื ืืื ืื ืืึทืคึฟืขื sysctl
, ืื ืืืฆื ืคึฟืึทืจ userspace
. ืื ืกืืึทืืืก ืืื ืกืืึทืืืกืืืง ืคืื ืืืื ืคึผืจืึทืกืขืกืึทื ืืขื ืขื ืืขืืืืื ืืื ืืืืจืขืงืืขืจืื /proc/
.
ืืึธ /proc/meminfo
ืืื ืึท ืืืืืืง ืืขืงืข ืืืึธืก ืคืื ืืขืกืืืืขืื ืึผืืื ืืืขืจืืคืื ืืื ืคึฟืึธืจืืึทืฆืืข.
ืึธืคึผืคืืจืื ื /proc
ืืขืงืขืก ืืืืึทืื ืืื ืึทื ืืขืจืฉ VFS ืืืกืง ืืขืงืข ืกืืกืืขืืขื ืงืขื ืขื ืืืื. ืคืื ืืืื ืืืื, /proc/meminfo
ืึทื ืืืึทืืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืึธืก ืงืขื ืขื ืืืื ืืืืื ืืื ืื ืืึทืคึฟืขื free
. ืืืืฃ ืื ืื ืืขืจืข ืืึทื ื, ืขืก ืืื ืืืืืืง! ืืืืืืื ืืจืืืื ืขืก? ืื ืกืืืืึทืฆืืข ืืื ืืขืจืืื ื ืคืื ืื ืืึทืจืืื ืึทืจืืืงื ืืื ืื ืืืื /proc
, ืืื ืคืืงืืืฉ ืืื ืืขืงืขืก /proc
ืขืก ืืื ืืึธืจื ืืฉื ืืืขื ืงืืื ืืืื ืขืจ ืงืืงื. ืืื ืืขืืืื
ืืืืืจื ืืืืืืืงืืื procfs
ืืืื ืืื ืขื ืืืืึทื ืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืึธืจื ืืื ืืื ืึทืืืฉ. ื ืืืกื ืึทื ืืขืจืฉ ืกืืืืึทืฆืืข ืืื sysfs
. ืืื ืก ืคืึทืจืืืืึทืื ืืื ืคืืืข ืืขืงืขืก ืืืึธืก ืืขื ืขื ืืื ืืื ืืกืืขืจ ืืืื ืืืื ืืื ืืจืืืก /proc
ืืื /sys
.
Procfs
ืืื ืืืื ืืขืงืข, ื ืืืืื ืื ืืงืกืคึผืึธืจืืึทื ืงืขืจื ืงืึทื ืคืืืืขืจืืืฉืึทื, ืืืึธืก ืืื ืึท ืืืกื ืขื ืืืืึทื ืขืก ืืึทืจืฃ ื ืึธืจ ืืืื ืืืฉืขื ืขืจืืืืึทื ืึทืืึธื ืคึผืขืจ ืฉืืืืื. ืืืืฃ ืื ืื ืืขืจืข ืืึทื ื, ืืื /sys
ืขืก ืืขื ืขื ืคืืืข ืืจืขืกืขืจืข ืืขืงืขืก, ืคืืืข ืคืื โโืืืึธืก ื ืขืืขื ืึท ืืึทื ืฅ ืืืึทื ืคืื ืืึผืจืื. ืืกืืึทืืื ืืขืงืขืก sysfs
ืึทื ืืืึทืืื ืคึผืื ืงื ืืืื ื ืืืขืจ ืึธืืขืจ ืฉืืจื, ื ืื ืขื ืืขื ืืืฉื ืคืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืงืืืขื ืคืื ืืืืขื ืขื ืืขืงืขืก ืึทืืึท ืืื /proc/meminfo
.
ืฆืื sysfs
- ืฆืืฉืืขืื ืืืืขื ืขื / ืฉืจืืึทืื ืคึผืจืึธืคึผืขืจืืืขืก ืคืื ืืืึธืก ืื ืงืขืจื ืจืืคื ยซkobjectsยป
ืืื ืืึทื ืืฆืขืจ ืคึผืืึทืฅ. ืืขืจ ืืืืื ืฆืื kobjects
ืืื ืืื ืง ืงืึทืื ืืื ื: ืืืขื ืื ืืขืฆืืข ืืื ืง ืฆื ืึท ืงืึธืืืืฉืขืงื ืืื ืึทืืืขืงืืขื ืืืขื, ืื ืกืืกืืขื ืืืขื ืืืงืขืจื ืื ืจืขืกืืจืกื ืคืืจืืื ืื ืืื ืืื. ืคืื ืืขืกืืืืขืื, /sys
ืืืื ืึทืจืืืฃ ืจืืึฟ ืคืื ืื ืืึทืจืืื
ืื ืกืืึทืืื ABI ืคืื ืืขืจ ืงืขืจื ืืืืึทืฅ ืืืึธืก ืงืขื ืขื ืืขืจืฉืืึทื ืขื ืืื /sys
, ื ืืฉื ืืืึธืก ืืื ืคืืงืืืฉ ืคืึธืจืฉืืขืื ืืื ืืขื ืืึทืืื ืืขืจ ืืึธืืขื ื. ืืืกืืื ื ืืขืงืข ืคึผืขืจืืืฉืึทื ื ืืื sysfs ืืื ืื ืกืืื ืืื ืืื ืงืึทื ืคืืืืขืจืึทืืึทื ืกืขืืืื ืืก ืคึฟืึทืจ ืืขืืืืกืขืก, ืืึทืืืฉืืื, ืคืืืขืกืืกืืขืืก, ืขืืง. ืงืขื ืขื ืืืื ืงืึทื ืคืืืืขืจื ืึธืืขืจ ืืืืขื ืขื. ืื ืืึทืืืฉืืงืึทื ืืกืงื ื ืืื ืึทื ืคึผืจืึธืงืคืก ืืื ืืืื ืืืื ืคืื ืื ืงืขืจื ืขื ืก ืกืืึทืืื ABI, ืืึธืืฉ ืืึธืก ืืื ื ืืฉื ืืคืืจืืฉ ืกืืืืืื ืืื
ืืขืงืขืก ืืื sysfs
ืืึทืฉืจืืึทืื ืืืื ืืึทืืื ืืขืจ ืคืึทืจืืึธื ืคึฟืึทืจ ืืขืืขืจ ืขื ืืืื ืืื ืงืขื ืขื ืืืื ืืืื ืขืืืืืง, ืฉืจืืืืืึทืืืข ืึธืืขืจ ืืืืืข. "0" ืืื ืืขืจ ืืขืงืข ืืืื ืึทื ืื SSD ืงืขื ืขื ื ืื ืืืื ืึทืืืขืงืืขื ืืืขื.
ืืึธืืืจ ืึธื ืืืืื ืื ืจืืข ืืืื ืคืื ืืขืจ ืืืืขืจืืขืฆืื ื ืืื ืืื ืฆื ืืึธื ืืืึธืจ VFS ื ืืฆื ืื eBPF ืืื Bcc ืืืฉืืจืื, ืืื ืืืฆื ืืืจ ืืืืจืื ืคึฟืึทืจ ืืืื ืืึทืืขืจืงืื ืืขื ืืื ืืจืึทืืืฉืึทื ืึทืื ืืึทืื ืืืจ ืฆื
ืืงืืจ: www.habr.com