แฒกแแแแแ แงแแแแแก! แฉแแแ แแแแ แซแแแแแ แแฎแแแ แแแแแแแแแก แแแจแแแแแก แแ แแฃแ แกแแแแกแแแแก, แ แแแแแแแช แฃแแแ แจแแแแงแแแ แแแ แแ แแฎแแ แแแแฉแฅแแ แแแ แแแแแแแชแฎแแแแ, แ แแ แแแฌแงแแแ แแฃแ แกแแแแก แแฎแแ แแแแแแแฅแขแก
แแแ แขแฃแแแฃแ แ แคแแแแฃแ แ แกแแกแขแแแแแ แแ แแแแแ แ แฏแแแแกแแฃแ แ แแแกแขแ แแฅแชแแแ, แ แแแแแแช Linux-แแก แคแแแแกแแคแแแก แกแแจแฃแแแแแแก แแซแแแแก แแฅแแแก, แ แแ โแงแแแแแคแแ แ แคแแแแแโ.
แ แ แแ แแก แคแแแแฃแ แ แกแแกแขแแแ? Linux-แแก แแ แ-แแ แแ แแแ แแแแ แแแแขแ แแแฃแขแแ แแกแ แแ แแแขแแ แแก แกแแขแงแแแแแ แแแงแ แแแแแแ
แคแแแแฃแ แ แกแแกแขแแแแก แกแแคแฃแซแแแแแ
Linux-แแก แแแ แแแก แแฅแแก แแแ แแแแฃแแ แแแแฎแแแแแแ แแ แแแฃแแแกแแแแก, แ แแแแแแช แจแแแซแแแแ แฉแแแแแแแแก แคแแแแฃแ แกแแกแขแแแแ. แแแ แฃแแแ แแแแแฎแแ แชแแแแแก แแแแแแแแ open()
, read()
ะธ write()
แแฃแแแแแ แแแแแฅแขแแแแกแแแแก, แ แแแแแแกแแช แแฅแแ แกแแฎแแแแแ. แแแแแฅแขแแ แแ แแแแขแแ แแแฃแแ แแแแแกแแแ แแกแแ
แแฃ แฉแแแ แจแแแแแซแแแ แแแแฎแกแแแ, แฌแแแแแแแฎแแ แแ แฉแแแฌแแ แแ แแ แแแฃแแแ, แแแจแแ แแก แแ แแแฃแแ แแแแแฎแแแแแ แคแแแแแ, แ แแแแ แช แแก แแแแแ แแแชแแแฃแแ แแแแกแแแแก แแแแแแแแแแแ แฉแแแก.
VFS แคแแแแแแแ แแฎแแแแ แฎแแแก แฃแกแแแแก Unix-แแก แแกแแแแก แแแแแแ แแแแแก, แ แแ โแงแแแแแคแแ แ แคแแแแแโ. แแแคแแฅแ แแแ, แ แแแแแแแ แฃแชแแแฃแ แแ, แ แแ แแก แแแขแแ แ /dev/console แแแแแแแแ แแแแฉแแแแแแก, แแฃ แ แแแแ แแฃแจแแแแก แกแแแแแแแแแแจแ แแแแกแแแ. แกแฃแ แแแแ แแแฉแแแแแแแ แแแขแแ แแฅแขแแฃแแ Bash แกแแกแแ. แกแขแ แแฅแแแแก แแแแแแแแ แแแแกแแแจแ (แแแ แขแฃแแแฃแ แ แแแแกแแแแก แแแฌแงแแแแแแแ) แแฉแแแแแแก แแแก แแแ แขแฃแแแฃแ แแแ แแแแ. VFS-แก แกแฎแแ, แแแแแ แฃแคแ แ แฃแชแแแฃแ แ แแแแกแแแแแ แแฅแแก. แแแแแแแแแ, แแก แกแแจแฃแแแแแแก แแแซแแแแ แแแซแแแแแ
แแแชแแแ แกแแกแขแแแแแก, แ แแแแ แแชแแ ext4, NFS แแ /proc, แแฅแแ แกแแแ แแแแจแแแแแแแแแ แคแฃแแฅแชแแ C แแแแแชแแแแ แกแขแ แฃแฅแขแฃแ แแจแ แ.แฌ. read()
แแ แแ แคแแแแฃแ แ แกแแกแขแแแ แแ แจแแแแแ แแแแแแงแแแแ แแแแแแ write ()
แกแฎแแ แคแแแแฃแ แ แกแแกแขแแแ แแแแแชแแแแ แแแแแกแแขแแแแ.
แคแฃแแฅแชแแแแแก แแแแแแ แขแแแแแ, แ แแแแแแแช แแแแแฃแแแแแแ แกแแแแแแกแ VFS แขแแแแแก, แแ แแก แคแแแแแแจแ fs/
แจแแแชแแแก แแแ แแแแฃแ แคแแแแฃแ แกแแกแขแแแแแก. แแแ แแแ แแกแแแ แจแแแชแแแก แแ แแแฃแแแแก, แ แแแแ แแชแแ cgroups
, /dev
ะธ tmpfs
, แ แแแแแแแช แกแแญแแ แแ แฉแแขแแแ แแแแก แแ แแชแแกแจแ แแ แแแแขแแ แแแแกแแแฆแแ แฃแแแ แแแ แแแแก แฅแแแแแ แแฅแขแแ แแแจแ init/
. แจแแแแฉแแแ แ แแ cgroups
, /dev
ะธ tmpfs
แแ แแแแแ แฅแแแ "แแแแ แกแแแ" แคแฃแแฅแชแแ file_operations
, แแแแ แแ แแแ แแแแแ แฌแแแแแแฎแแ แแ แฉแแฌแแ แแ แแแฎแกแแแ แแแแจแ.
แฅแแแแแ แแแชแแแฃแแ แแแแแ แแแ แแแแฉแแแแแแก, แแฃ แ แแแแ แฌแแแแแ แแแแฎแแแ แแแแแก แกแแแ แชแ Linux แกแแกแขแแแแแแ แแแแแแขแแแแแฃแ แกแฎแแแแแกแฎแแ แขแแแแก แคแแแแฃแ แกแแกแขแแแแก. แกแขแ แฃแฅแขแฃแ แแแ แแ แแ แแก แแแฉแแแแแแ pipes
, dmesg
ะธ POSIX clocks
, แ แแแแแแแช แแกแแแ แแฎแแ แชแแแแแแแ แกแขแ แฃแฅแขแฃแ แแก file_operations
, แฌแแแแแ VFS แคแแแแก แแแจแแแแแแ.
VFS แแ แแก "แจแแคแฃแแแแก แคแแแ" แกแแกแขแแแฃแ แแแ แแแกแ แแ แแแ แแแแฃแแ แแแแฎแแ แชแแแแแแแแก แจแแ แแก file_operations
, แ แแแแ แแชแแ ext4
ะธ procfs
. แคแฃแแฅแชแแแแ file_operations
แจแแฃแซแแแ แฃแ แแแแ แแฅแแแแแแ แแแฌแงแแแแแแแแก แแ แแแแแ แแแแแ แแ แแแฎแกแแแ แแแแก แฌแแแแแแก แแแฌแงแแแแแแแแแแแ. tmpfs
, devtmpfs
ะธ cgroups
แแ แแแแแแงแแแแ file_operations
, แแแแ แแ แฃแจแฃแแแแ แแแฎแกแแแ แแแแแ แฌแแแแแ.
VFS-แแก แแ แกแแแแแ แแซแแแแ แแแแแก แฎแแแแฎแแ แแแแแงแแแแแแก แจแแกแแซแแแแแแแแก, แ แแแแแ แคแแแแฃแ แกแแกแขแแแแแแแ แแแแแแจแแ แแแฃแแ แซแแ แแแแแ แแแแแแแแ แแ แฃแแแ แแแแแแแ แแแก แแแแแแฃแแ แขแแแแก แคแแแแฃแ แ แกแแกแขแแแแก แแแแ . แแแแแก แฎแแแแฎแแแ แแแแแงแแแแแ แฉแแแฃแแแแ แแแ แแ แแฅแขแแแแ แแ แแแ แแแฃแแ แฃแแ แฃแแแแแงแแคแแก แแแแแแ แแแก แจแแ แแก! แแฃแแชแ, แแฃ แแ แแแแแฏแแ แแแ แแแแแงแแแแแแก แแแแ แจแแแชแแแก
/tmp: แแแ แขแแแ แแแแแจแแแแ
แแแ แขแแแ แแแ แแแแก แแแกแแแแแแแ, แ แแ VFS แแ แแก แกแแกแขแแแแจแ แแ แแก แแแ แแคแ mount | grep -v sd | grep -v :/
, แ แแแแแแช แแฉแแแแแแก แงแแแแ แแแแแแขแแแแแฃแแก (mounted
) แคแแแแฃแ แ แกแแกแขแแแแแ, แ แแแแแแแช แแ แแ แแก แแแกแแแก แ แแแแแแแขแ แแ แแ แ NFS, แ แแช แแกแแ แฃแแแขแแก แแแแแแฃแขแแ แแแแ. แแ แ-แแ แแ แฉแแแแแแแแแ แกแแแแแ แ (mounts
) VFS แฃแแแแแ /tmp
, แแ แ?
แงแแแแแ แแชแแก แแก แกแแชแแแ / tmp
แคแแแแแฃแ แกแแจแฃแแแแแแแแ - แกแแแแแ!
แ แแขแแ แแ แแก แแ แแกแแกแฃแ แแแแ แจแแแแฎแแ /tmp
แคแแแแแฃแ แแแแแแแ? แแแแก แแแแ, แ แแ แคแแแแแแ /tmp
แแ แแแแแแแ แแ แจแแแแฎแแแก แแแฌแงแแแแแแแแแ แฃแคแ แ แแแแแ แแแแ แ แแแฎแกแแแ แแแ, แกแแแแช แแฅแแแแแ tmpfs. แฃแคแ แ แแแขแแช, แคแแแแแฃแ แ แแแแแ แฃแคแ แ แแแ แซแแแแแแ แแ แแชแแแแ แแแแแฌแแ แแกแแก, แแแแ แ แแแฎแกแแแ แแแ. แแแแแแแก, แคแแแแแแ /tmp แจแแแซแแแแ แจแแแชแแแแแก แแแ แซแแแแแแ แ แแแคแแ แแแชแแแก, แแแแขแแ แแแแ แแแฅแ แแแ แงแแแแแ แแแแแขแแแ แแแแกแแก แแฃแชแแแแแแแ แคแฃแแฅแชแแแ.
แกแแแฌแฃแฎแแ แแ, แแแแฃแฅแกแแก แแแแแฌแแแแแแก แแแกแขแแแแชแแแก แแแแแแ แแ แกแแ แแแขแ แแแแฃแแแกแฎแแแแแ แฅแแแแก /tmp แจแแแแฎแแแก แแแฌแงแแแแแแแแก. แแ แแแแแแ แแแ, แแฃ แแก แแฅแแแแก แกแแกแขแแแแกแแช แแแแแแ แแ. แแแฐแงแแแแ แ แแแแแแแแ แแแ แขแแ แแแกแขแ แฃแฅแชแแแก tmpfs
แกแฎแแ แแแแแแแแกแแแแก แแแฃแฌแแแแแแแ แฎแแแแ. แกแฎแแ แกแแขแงแแแแแ แ แแ แแแฅแแแ, แกแแกแขแแแแก, แ แแแแแกแแช แแฅแแก แแแแแแขแฃแ แ tmpfs แแ แแแกแแ แแแแ แคแแแแแแ, แจแแแซแแแแ แแแแแฌแฃแ แแก แแแฎแกแแแ แแแ แแ แแแแแแแแแก. แแแแแ แแ แแ แแแแแจแแแแ: แคแแแแแก แ แแแแฅแขแแ แแแแกแแก /etc/fstab
, แแแฎแกแแแแแ, แ แแ แแก แฃแแแ แแแกแ แฃแแแแก แแฎแแแ แฎแแแแ, แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ แแฅแแแแ แกแแกแขแแแ แแ แฉแแแขแแแ แแแแ.
/proc แแ /sys
แแแ แแ แแแแกแ /tmp
, VFS (แแแ แขแฃแแแฃแ แ แคแแแแฃแ แ แกแแกแขแแแแแ), แ แแแแแแแช แงแแแแแแ แแแขแแ แแชแแแแแ Linux-แแก แแแแฎแแแ แแแแแแก /proc
ะธ /sys
. (/dev
แชแฎแแแ แแแก แกแแแ แแ แแแฎแกแแแ แแแแจแ แแ แแ แแฅแแก file_operations
). แ แแขแแ แแก แแ แ แแแแแแแแแขแ? แแแแแ แจแแแฎแแแแ แแ แกแแแแแฎแก.
procfs
แฅแแแแก แแแ แแแแก แแ แแ แแ แแชแแกแแแแก แกแฃแ แแแก, แ แแกแแแแกแแช แแแก แแแแแขแ แแแแแก userspace
. In /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-แจแ แคแแแแแก แแแแแ แแแแแแก แฉแแแแแแแ แแซแแแแ แแแแก แแแ แแแแแแก, แแฃ แ แแแแ แจแแแซแแแแ แแแแคแแแฃแ แแ แแแแแ แแแ แแแแขแ แแแ แแแฌแงแแแแแแแแแแกแแแแก, แแแแฃแแแแแกแแแแก, แคแแแแฃแ แ แกแแกแขแแแแแแกแแแแก แแ แ.แจ. แจแแแซแแแแ แแแแคแแแฃแ แแชแแ แแ แฌแแแแแฎแแ. แแแแแแฃแ แ แแแกแแแแ แแ แแก แแก, แ แแ procfs แแกแแแ แแ แแก แแแ แแแแก แกแขแแแแแฃแ แ ABI-แก แแแฌแแแ, แแฃแแชแ แแก แแแ แแแแแ แแ แแ แแก แแแแฅแแแแ
แคแแแแแแ sysfs
แแฆแฌแแ แแ แแ แแ แแแแแ แแขแฃแแ แแแแกแแแ แแแแแแฃแแ แแ แแแฃแแแกแแแแก แแ แจแแแซแแแแ แแงแแก แฌแแแแแฎแแแแ, แฉแแกแแฌแแ แ แแ แแ แแแ. แคแแแแจแ "0" แแแจแแแแก, แ แแ SSD-แแก แแแแฆแแแ แจแแฃแซแแแแแแแ.
แแแแแฌแงแแ แแแ แแแแแแก แแแแ แ แแแฌแแแ แแแแ, แแฃ แ แแแแ แแแแแแขแ แแแแ VFS eBPF แแ bcc แแแกแขแ แฃแแแแขแแแแก แแแแแงแแแแแแ, แแฎแแ แแ แแแแแแแแแ แแฅแแแแก แแแแแแขแแ แแแก แแ แขแ แแแแชแแฃแแแ แแแแแขแแแแแแ
แฌแงแแ แ: www.habr.com