ΠΠ΄ΡΠ°Π²ΠΎ ΡΠ²ΠΈΠΌΠ°! ΠΠ°ΡΡΠ°Π²ΡΠ°ΠΌΠΎ Π΄Π° ΠΏΠΎΠΊΡΠ΅ΡΠ΅ΠΌΠΎ Π½ΠΎΠ²Π΅ ΡΡΡΠΈΠΌΠΎΠ²Π΅ Π·Π° ΠΊΡΡΡΠ΅Π²Π΅ Ρ ΠΊΠΎΡΠ΅ ΡΡΠ΅ ΡΠ΅ Π²Π΅Ρ Π·Π°ΡΡΠ±ΠΈΠ»ΠΈ ΠΈ ΡΠ°Π΄Π° ΠΆΡΡΠΈΠΌΠΎ Π΄Π° ΠΎΠ±ΡΠ°Π²ΠΈΠΌΠΎ Π΄Π° ΠΏΠΎΡΠΈΡΠ΅ΠΌΠΎ Π½ΠΎΠ²ΠΈ ΡΠ΅Ρ ΠΊΡΡΡΠ΅Π²Π°
ΠΠΈΡΡΡΠ΅Π»Π½ΠΈ ΡΠ°ΡΠ» ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΠ»ΡΠΆΠ΅ ΠΊΠ°ΠΎ Π½Π΅ΠΊΠ° Π²ΡΡΡΠ° ΠΌΠ°Π³ΠΈΡΠ½Π΅ Π°ΠΏΡΡΡΠ°ΠΊΡΠΈΡΠ΅ ΠΊΠΎΡΠ° Π΄ΠΎΠ·Π²ΠΎΡΠ°Π²Π° ΡΠΈΠ»ΠΎΠ·ΠΎΡΠΈΡΠΈ ΠΠΈΠ½ΡΠΊΡΠ° Π΄Π° ΠΊΠ°ΠΆΠ΅ Π΄Π° ΡΠ΅ βΡΠ²Π΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°β.
Π¨ΡΠ° ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°? ΠΠ° ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ΅ΡΠΈ ΡΠ΅Π΄Π½ΠΎΠ³ ΠΎΠ΄ ΠΏΡΠ²ΠΈΡ
ΡΠ°ΡΠ°Π΄Π½ΠΈΠΊΠ° ΠΈ Π°ΡΡΠΎΡΠ° ΠΠΈΠ½ΡΠΊΡΠ°
ΠΡΠ½ΠΎΠ²Π΅ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°
ΠΠΈΠ½ΡΠΊ ΠΊΠ΅ΡΠ½Π΅Π» ΠΈΠΌΠ° ΠΎΠ΄ΡΠ΅ΡΠ΅Π½Π΅ Π·Π°Ρ
ΡΠ΅Π²Π΅ Π·Π° Π΅Π½ΡΠΈΡΠ΅Ρ ΠΊΠΎΡΠΈ ΡΠ΅ ΠΌΠΎΠΆΠ΅ ΡΠΌΠ°ΡΡΠ°ΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠΎΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°. ΠΠΎΡΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°ΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π΅ open()
, read()
ΠΈ write()
Π·Π° ΡΡΠ°ΡΠ½Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ ΠΊΠΎΡΠΈ ΠΈΠΌΠ°ΡΡ ΠΈΠΌΠ΅Π½Π°. Π‘Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡΠΈΡΠ΅Π½ΡΠΈΡΠ°Π½Π΅ ΡΠ°ΡΠΊΠ΅ Π³Π»Π΅Π΄ΠΈΡΡΠ°
ΠΠΊΠΎ ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π΄Π° ΠΎΡΠ²ΠΎΡΠΈΠΌΠΎ, ΡΠΈΡΠ°ΠΌΠΎ ΠΈ ΠΏΠΈΡΠ΅ΠΌΠΎ Ρ Π΅Π½ΡΠΈΡΠ΅Ρ, ΠΎΠ½Π΄Π° ΡΠ΅ ΡΠ°Ρ Π΅Π½ΡΠΈΡΠ΅Ρ ΡΠΌΠ°ΡΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΎΠΌ, ΠΊΠ°ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π²ΠΈΠ΄Π΅ΡΠΈ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° Ρ ΠΊΠΎΠ½Π·ΠΎΠ»ΠΈ ΠΈΠ·Π½Π°Π΄.
Π€Π΅Π½ΠΎΠΌΠ΅Π½ ΠΠ€Π‘ ΡΠ°ΠΌΠΎ Π½Π°Π³Π»Π°ΡΠ°Π²Π° Π·Π°ΠΏΠ°ΠΆΠ°ΡΠ΅ Π½Π°Π»ΠΈΠΊ Π½Π° Π£Π½ΠΈΠΊ Π΄Π° ΡΠ΅ βΡΠ²Π΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°β. ΠΠ°ΠΌΠΈΡΠ»ΠΈΡΠ΅ ΠΊΠΎΠ»ΠΈΠΊΠΎ ΡΠ΅ ΡΡΠ΄Π½ΠΎ ΡΡΠΎ ΠΎΠ²Π°Ρ ΠΌΠ°Π»ΠΈ /Π΄Π΅Π²/ΡΠΎΠ½ΡΠΎΠ»Π΅ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ·Π½Π°Π΄ ΠΏΠΎΠΊΠ°Π·ΡΡΠ΅ ΠΊΠ°ΠΊΠΎ ΠΊΠΎΠ½Π·ΠΎΠ»Π° Π·Π°ΠΏΡΠ°Π²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ΅. Π‘Π»ΠΈΠΊΠ° ΠΏΡΠΈΠΊΠ°Π·ΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½Ρ ΠΠ°ΡΡ
ΡΠ΅ΡΠΈΡΡ. Π‘Π»Π°ΡΠ΅ ΡΡΡΠΈΠ½Π³Π° Π½Π° ΠΊΠΎΠ½Π·ΠΎΠ»Ρ (Π²ΠΈΡΡΡΠ΅Π»Π½ΠΈ ΠΊΠΎΠ½Π·ΠΎΠ»Π½ΠΈ ΡΡΠ΅ΡΠ°Ρ) ΠΏΡΠΈΠΊΠ°Π·ΡΡΠ΅ Π³Π° Π½Π° Π²ΠΈΡΡΡΠ΅Π»Π½ΠΎΠΌ Π΅ΠΊΡΠ°Π½Ρ. ΠΠ€Π‘ ΠΈΠΌΠ° Π΄ΡΡΠ³Π°, ΡΠΎΡ ΡΡΠ΄Π½ΠΈΡΠ° ΡΠ²ΠΎΡΡΡΠ²Π°. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π° Π²Π°ΠΌ Π΄Π° ΠΏΡΠ΅ΡΡΠ°ΠΆΡΡΠ΅ΡΠ΅ ΠΏΠΎ
ΠΠΎΠ·Π½Π°ΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΊΠ°ΠΎ ΡΡΠΎ ΡΡ Π΅ΠΊΡ4, ΠΠ€Π‘ ΠΈ /ΠΏΡΠΎΡ ΠΈΠΌΠ°ΡΡ ΡΡΠΈ Π²Π°ΠΆΠ½Π΅ ΡΡΠ½ΠΊΡΠΈΡΠ΅ Ρ Π¦ ΡΡΡΡΠΊΡΡΡΠΈ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° ΠΊΠΎΡΠ° ΡΠ΅ Π·ΠΎΠ²Π΅ read()
ΡΠ΅Π΄Π°Π½ ΡΠΈΡΡΠ΅ΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΈ Π·Π°ΡΠΈΠΌ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ write ()
Π΄ΡΡΠ³ΠΈ ΡΠΈΡΡΠ΅ΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π·Π° ΠΈΠ·Π»Π°Π· ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ°.
ΠΠ΅ΡΠΈΠ½ΠΈΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΠ° ΠΊΠΎΡΠ΅ ΠΏΡΠΈΠΏΠ°Π΄Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΠΌ ΡΠΈΠΏΠΎΠ²ΠΈΠΌΠ° ΠΠ€Π‘ Π½Π°Π»Π°Π·Π΅ ΡΠ΅ Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΠΌΠ° fs/
ΡΠ°Π΄ΡΠΆΠ΅ ΠΎΠ΄ΡΠ΅ΡΠ΅Π½Π΅ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°. ΠΠ΅Π·Π³ΡΠΎ ΡΠ°Π΄ΡΠΆΠΈ ΠΈ Π΅Π½ΡΠΈΡΠ΅ΡΠ΅ ΠΊΠ°ΠΎ Π½ΠΏΡ cgroups
, /dev
ΠΈ tmpfs
, ΠΊΠΎΡΠΈ ΡΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ ΡΠΎΠΊΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΠ° ΠΏΠΎΠΊΡΠ΅ΡΠ°ΡΠ° ΠΈ ΡΡΠΎΠ³Π° ΡΡ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ Ρ ΠΏΠΎΠ΄Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠΌΡ ΠΊΠ΅ΡΠ½Π΅Π»Π° init/
. ΠΡΠΈΠΌΠ΅ΡΠΈΡΠ΅ΡΠ΅ Π΄Π° cgroups
, /dev
ΠΈ tmpfs
Π½Π΅ Π½Π°Π·ΠΈΠ²Π°ΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΠ΅ βΠ²Π΅Π»ΠΈΠΊΠ΅ ΡΡΠΈβ. file_operations
, Π°Π»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΠΈΡΠ°ΡΠ΅ ΠΈ ΠΏΠΈΡΠ°ΡΠ΅ Ρ ΠΌΠ΅ΠΌΠΎΡΠΈΡΡ.
ΠΠΈΡΠ°Π³ΡΠ°ΠΌ ΠΈΡΠΏΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·ΡΡΠ΅ ΠΊΠ°ΠΊΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ ΠΏΡΠΎΡΡΠΎΡ ΠΏΡΠΈΡΡΡΠΏΠ° ΡΠ°Π·Π»ΠΈΡΠΈΡΠΈΠΌ ΡΠΈΠΏΠΎΠ²ΠΈΠΌΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΊΠΎΡΠΈ ΡΠ΅ ΠΎΠ±ΠΈΡΠ½ΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΡ Π½Π° ΠΠΈΠ½ΡΠΊ ΡΠΈΡΡΠ΅ΠΌΠΈΠΌΠ°. Π‘ΡΡΡΠΊΡΡΡΠ΅ Π½ΠΈΡΡ ΠΏΡΠΈΠΊΠ°Π·Π°Π½Π΅ pipes
, dmesg
ΠΈ POSIX clocks
, ΠΊΠΎΡΠΈ ΡΠ°ΠΊΠΎΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΡ file_operations
, ΠΊΠΎΡΠ΅ΠΌ ΡΠ΅ ΠΏΡΠΈΡΡΡΠΏΠ° ΠΏΡΠ΅ΠΊΠΎ ΠΠ€Π‘ ΡΠ»ΠΎΡΠ°.
ΠΠ€Π‘ ΡΠ΅ βΡΠ»ΠΎΡ ΠΎΠΌΠΎΡΠ°ΡΠ°β ΠΈΠ·ΠΌΠ΅ΡΡ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΡ
ΠΏΠΎΠ·ΠΈΠ²Π° ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° ΠΎΠ΄ΡΠ΅ΡΠ΅Π½ΠΈΡ
file_operations
ΠΠ°ΠΎ ΡΠ°ΠΊΠ°Π² ext4
ΠΈ procfs
. Π€ΡΠ½ΠΊΡΠΈΡΠ΅ file_operations
ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΠΌΡΠ½ΠΈΡΠΈΡΠ° ΠΈΠ»ΠΈ ΡΠ° ΡΠΏΡΠ°Π²ΡΠ°ΡΠΊΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΠΌΠ° ΡΡΠ΅ΡΠ°ΡΠ° ΠΈΠ»ΠΈ ΡΠ° ΡΡΠ΅ΡΠ°ΡΠΈΠΌΠ° Π·Π° ΠΏΡΠΈΡΡΡΠΏ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠΈ. tmpfs
, devtmpfs
ΠΈ cgroups
Π½Π΅ΠΌΠΎΡΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈΡΠΈ file_operations
, Π°Π»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠΈ.
ΠΠΎΡΡΠΎΡΠ°ΡΠ΅ ΠΠ€Π‘-Π° ΠΏΡΡΠΆΠ° ΠΌΠΎΠ³ΡΡΠ½ΠΎΡΡ ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎΠ³ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ° ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π΅ ΠΌΠ΅ΡΠΎΠ΄Π΅ ΠΏΠΎΠ²Π΅Π·Π°Π½Π΅ ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠΈΠΌΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π½Π΅ ΠΌΠΎΡΠ°ΡΡ ΠΏΠΎΠ½ΠΎΠ²ΠΎ Π΄Π° ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°ΡΡ ΠΎΠ΄ ΡΡΡΠ°Π½Π΅ ΡΠ²Π°ΠΊΠΎΠ³ ΡΠΈΠΏΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°. ΠΠΎΠ½ΠΎΠ²Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° ΠΊΠΎΠ΄Π° ΡΠ΅ ΡΠΎΠ±ΠΈΡΠ°ΡΠ΅Π½Π° ΠΏΡΠ°ΠΊΡΠ° ΠΌΠ΅ΡΡ ΡΠΎΡΡΠ²Π΅ΡΡΠΊΠΈΠΌ ΠΈΠ½ΠΆΠ΅ΡΠ΅ΡΠΈΠΌΠ°! ΠΠ΅ΡΡΡΠΈΠΌ, Π°ΠΊΠΎ ΠΊΠΎΠ΄ Π·Π° Π²ΠΈΡΠ΅ΠΊΡΠ°ΡΠ½Ρ ΡΠΏΠΎΡΡΠ΅Π±Ρ ΡΠ°Π΄ΡΠΆΠΈ
/ΡΠΌΠΏ: ΠΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π°Π½ ΡΠ°Π²Π΅Ρ
ΠΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π°Π½ Π½Π°ΡΠΈΠ½ Π΄Π° ΠΎΡΠΊΡΠΈΡΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΠΠ€Π‘ ΠΏΡΠΈΡΡΡΠ°Π½ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ ΠΊΡΡΠ°ΡΠ΅ mount | grep -v sd | grep -v :/
, ΠΊΠΎΡΠΈ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠΈ ΡΠ²Π΅ ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ (mounted
) ΡΠΈΡΡΠ΅ΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΊΠΎΡΠΈ Π½ΠΈΡΡ ΡΠ΅Π·ΠΈΠ΄Π΅Π½ΡΠ½ΠΈ Π½Π° Π΄ΠΈΡΠΊΡ ΠΈ ΠΊΠΎΡΠΈ Π½ΠΈΡΡ ΠΠ€Π‘, ΡΡΠΎ ΡΠ΅ ΡΠ°ΡΠ½ΠΎ Π½Π° Π²Π΅ΡΠΈΠ½ΠΈ ΡΠ°ΡΡΠ½Π°ΡΠ°. ΠΠ΅Π΄Π°Π½ ΠΎΠ΄ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΡ
Π½ΠΎΡΠ°ΡΠ° (mounts
) ΠΠ€Π‘ ΡΠ΅ Π½Π΅ΡΡΠΌΡΠΈΠ²ΠΎ /tmp
, ΡΠ΅Π» ΡΠ°ΠΊΠΎ?
Π‘Π²ΠΈ Π·Π½Π°ΡΡ ΡΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ / tmp
Π½Π° ΡΠΈΠ·ΠΈΡΠΊΠΎΠΌ ΠΌΠ΅Π΄ΠΈΡΡΠΌΡ - Π»ΡΠ΄ΠΈΠ»ΠΎ!
ΠΠ°ΡΡΠΎ ΡΠ΅ Π½Π΅ΠΏΠΎΠΆΠ΅ΡΠ½ΠΎ ΡΡΠ²Π°ΡΠΈ /tmp
Π½Π° ΡΠΈΠ·ΠΈΡΠΊΠΈΠΌ ΠΌΠ΅Π΄ΠΈΡΠΈΠΌΠ°? ΠΠ°ΡΠΎ ΡΡΠΎ ΡΡ ΡΠ°ΡΠ»ΠΎΠ²ΠΈ Ρ /tmp
ΡΡ ΠΏΡΠΈΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΡΠ΅ΡΠ°ΡΠΈ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠ΅ ΡΡ ΡΠΏΠΎΡΠΈΡΠΈ ΠΎΠ΄ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ΅ Ρ ΠΊΠΎΡΠΎΡ ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ° ΡΠΌΠΏΡΡ. Π¨ΡΠ°Π²ΠΈΡΠ΅, ΡΠΈΠ·ΠΈΡΠΊΠΈ ΠΌΠ΅Π΄ΠΈΡΠΈ ΡΡ ΠΏΠΎΠ΄Π»ΠΎΠΆΠ½ΠΈΡΠΈ Ρ
Π°Π±Π°ΡΡ ΠΊΠ°Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΏΠΈΡΡΡΡ Π½Π΅Π³ΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°. ΠΠΎΠ½Π°ΡΠ½ΠΎ, Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ Ρ /ΡΠΌΠΏ ΠΌΠΎΠ³Ρ ΡΠ°Π΄ΡΠΆΠ°ΡΠΈ ΠΎΡΠ΅ΡΡΠΈΠ²Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΠ΅, ΡΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ Π½Π΅ΡΡΠ°Π½Π°ΠΊ ΠΏΡΠΈ ΡΠ²Π°ΠΊΠΎΠΌ ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΠΊΡΠ΅ΡΠ°ΡΡ ΠΊΡΡΡΠ½Π° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°.
ΠΠ°ΠΆΠ°Π»ΠΎΡΡ, Π½Π΅ΠΊΠ΅ ΡΠΊΡΠΈΠΏΡΠ΅ Π·Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΡ ΠΠΈΠ½ΡΠΊ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π½ΠΎ ΠΊΡΠ΅ΠΈΡΠ°ΡΡ /ΡΠΌΠΏ Π½Π° ΡΡΠ΅ΡΠ°ΡΡ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠ΅. ΠΠ΅ ΠΎΡΠ°ΡΠ°Π²Π°ΡΡΠ΅ Π°ΠΊΠΎ ΡΠ΅ ΠΎΠ²ΠΎ Π΄Π΅ΡΠΈΠ»ΠΎ ΠΈ Π²Π°ΡΠ΅ΠΌ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠ°ΡΠΈΡΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΈΡ
ΡΠΏΡΡΡΡΠ°Π²Π° ΡΠ° tmpfs
ΠΏΠΎΡΡΠ°ΡΠ΅ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ°Π½ Π·Π° Π΄ΡΡΠ³Π΅ ΡΠ²ΡΡ
Π΅. ΠΡΡΠ³ΠΈΠΌ ΡΠ΅ΡΠΈΠΌΠ°, ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ° ΠΎΠ³ΡΠΎΠΌΠ½ΠΈΠΌ ΡΠΌΠΏΡΡ-ΠΎΠΌ ΠΈ Π²Π΅Π»ΠΈΠΊΠΈΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΠΌΠ° Π½Π° ΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ΅ ΠΏΠΎΠ½Π΅ΡΡΠ°ΡΠΈ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ΅ ΠΈ ΠΌΠΎΠΆΠ΅ ΡΠ΅ ΡΡΡΡΠΈΡΠΈ. ΠΠΎΡ ΡΠ΅Π΄Π°Π½ ΡΠ°Π²Π΅Ρ: Π΄ΠΎΠΊ ΡΡΠ΅ΡΡΡΠ΅ΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΡ /etc/fstab
, Π·Π°ΠΏΠ°ΠΌΡΠΈΡΠ΅ Π΄Π° ΡΠ΅ ΠΌΠΎΡΠ° Π·Π°Π²ΡΡΠΈΡΠΈ Π½ΠΎΠ²ΠΈΠΌ ΡΠ΅Π΄ΠΎΠΌ, ΠΈΠ½Π°ΡΠ΅ ΡΠ΅ Π²Π°Ρ ΡΠΈΡΡΠ΅ΠΌ Π½Π΅ΡΠ΅ ΠΏΠΎΠΊΡΠ΅Π½ΡΡΠΈ.
/ΠΏΡΠΎΡ ΠΈ /ΡΠΈΡ
ΠΠΎΡΠ΅Π΄ /tmp
, ΠΠ€Π‘ (Π²ΠΈΡΡΡΠ΅Π»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°) ΠΊΠΎΡΠΈ ΡΡ Π½Π°ΡΠΏΠΎΠ·Π½Π°ΡΠΈΡΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΠΌΠ° ΠΠΈΠ½ΡΠΊΠ° /proc
ΠΈ /sys
. (/dev
Π½Π°Π»Π°Π·ΠΈ ΡΠ΅ Ρ Π·Π°ΡΠ΅Π΄Π½ΠΈΡΠΊΠΎΡ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠΈ ΠΈ Π½Π΅ΠΌΠ° file_operations
). ΠΠ°ΡΡΠΎ ΠΎΠ²Π΅ Π΄Π²Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅? Π₯Π°ΡΠ΄Π΅ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π°ΠΌΠΎ ΠΎΠ²ΠΎ ΠΏΠΈΡΠ°ΡΠ΅.
procfs
ΠΊΡΠ΅ΠΈΡΠ° ΡΠ½ΠΈΠΌΠ°ΠΊ ΡΠ΅Π·Π³ΡΠ° ΠΈ ΠΏΡΠΎΡΠ΅ΡΠ° ΠΊΠΎΡΠ΅ Π½Π°Π΄Π³Π»Π΅Π΄Π° userspace
. Π£ /proc
ΠΊΠ΅ΡΠ½Π΅Π» ΡΡΠ°ΠΌΠΏΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΠ΅ ΠΎ ΡΠΎΠΌΠ΅ ΡΡΠ° ΠΈΠΌΠ° Π½Π° ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΠΊΠ°ΠΎ ΡΡΠΎ ΡΡ ΠΏΡΠ΅ΠΊΠΈΠ΄ΠΈ, Π²ΠΈΡΡΡΠ΅Π»Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° ΠΈ ΠΏΠ»Π°Π½Π΅Ρ. ΠΡΠΈΠΌ ΡΠΎΠ³Π°, /proc/sys
ΡΠ΅ ΠΌΠ΅ΡΡΠΎ Π³Π΄Π΅ ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΌ sysctl
, Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π·Π° userspace
. Π‘ΡΠ°ΡΡΡ ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΠΏΠΎΡΠ΅Π΄ΠΈΠ½Π°ΡΠ½ΠΈΡ
ΠΏΡΠΎΡΠ΅ΡΠ° ΡΠ΅ ΠΏΡΠΈΠΊΠ°Π·ΡΡΡ Ρ ΠΈΠΌΠ΅Π½ΠΈΡΠΈΠΌΠ° /proc/
.
ΠΠ²Π΄Π΅ /proc/meminfo
ΡΠ΅ ΠΏΡΠ°Π·Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΊΠΎΡΠ° ΠΈΠΏΠ°ΠΊ ΡΠ°Π΄ΡΠΆΠΈ Π²ΡΠ΅Π΄Π½Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΠ΅.
ΠΠΎΠ½Π°ΡΠ°ΡΠ΅ /proc
Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΡΠ΅ ΠΊΠΎΠ»ΠΈΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΡΠΈ ΠΠ€Π‘ ΡΠΈΡΡΠ΅ΠΌΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π΄ΠΈΡΠΊΠ° ΠΌΠΎΠ³Ρ Π±ΠΈΡΠΈ. Ρ ΡΠ΅Π΄Π½Π΅ ΡΡΡΠ°Π½Π΅, /proc/meminfo
ΡΠ°Π΄ΡΠΆΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΠ΅ ΠΊΠΎΡΠ΅ ΡΠ΅ ΠΌΠΎΠ³Ρ Π²ΠΈΠ΄Π΅ΡΠΈ ΠΏΠΎΠΌΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ free
. Π‘ Π΄ΡΡΠ³Π΅ ΡΡΡΠ°Π½Π΅, ΠΏΡΠ°Π·Π°Π½ ΡΠ΅! ΠΠ°ΠΊΠΎ ΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ΅? Π‘ΠΈΡΡΠ°ΡΠΈΡΠ° ΠΏΠΎΠ΄ΡΠ΅ΡΠ° Π½Π° ΡΡΠ²Π΅Π½ΠΈ ΡΠ»Π°Π½Π°ΠΊ ΠΏΠΎΠ΄ Π½Π°ΡΠ»ΠΎΠ²ΠΎΠΌ /proc
, ΠΈ Π·Π°ΠΏΡΠ°Π²ΠΎ Ρ ΡΠ°ΡΠ»ΠΎΠ²ΠΈΠΌΠ° /proc
Π½Π΅ΠΌΠ° Π½ΠΈΡΠ΅Π³Π° ΠΊΠ°Π΄ Π½ΠΈΠΊΠΎ Π½Π΅ Π³Π»Π΅Π΄Π°. ΠΠ°ΠΎ ΡΡΠΎ ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΎ
ΠΡΠΈΠ²ΠΈΠ΄Π½Π° ΠΏΡΠ°Π·Π½ΠΈΠ½Π° procfs
ΠΈΠΌΠ° ΡΠΌΠΈΡΠ»Π° ΡΠ΅Ρ ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΠ΅ ΡΠ°ΠΌΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½Π΅. ΠΠ°Π»ΠΎ Π΄ΡΡΠ³Π°ΡΠΈΡΠ° ΡΠΈΡΡΠ°ΡΠΈΡΠ° ΡΠ° sysfs
. Π₯Π°ΡΠ΄Π΅ Π΄Π° ΡΠΏΠΎΡΠ΅Π΄ΠΈΠΌΠΎ Ρ ΠΊΠΎΠ»ΠΈΠΊΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΈΠΌΠ° Π½Π°ΡΠΌΠ°ΡΠ΅ ΡΠ΅Π΄Π°Π½ Π±Π°ΡΡ /proc
ΠΈ /sys
.
Procfs
ΠΈΠΌΠ° ΡΠ΅Π΄Π½Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΡ, Π½Π°ΠΈΠΌΠ΅ ΠΈΠ·Π²Π΅Π·Π΅Π½Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ ΠΊΠ΅ΡΠ½Π΅Π»Π°, ΡΡΠΎ ΡΠ΅ ΠΈΠ·ΡΠ·Π΅ΡΠ°ΠΊ ΡΠ΅Ρ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ΅ ΡΠ°ΠΌΠΎ ΡΠ΅Π΄Π½ΠΎΠΌ ΠΏΠΎ ΠΏΠΎΠΊΡΠ΅ΡΠ°ΡΡ. Π‘ Π΄ΡΡΠ³Π΅ ΡΡΡΠ°Π½Π΅, Ρ /sys
ΠΏΠΎΡΡΠΎΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΅ΡΠΈΡ
Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°, ΠΎΠ΄ ΠΊΠΎΡΠΈΡ
ΠΌΠ½ΠΎΠ³Π΅ Π·Π°ΡΠ·ΠΈΠΌΠ°ΡΡ ΡΠ΅Π»Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ΅. ΠΠ±ΠΈΡΠ½ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ sysfs
ΡΠ°Π΄ΡΠΆΠ΅ ΡΠ°ΡΠ½ΠΎ ΡΠ΅Π΄Π°Π½ Π±ΡΠΎΡ ΠΈΠ»ΠΈ ΡΠ΅Π΄, Π·Π° ΡΠ°Π·Π»ΠΈΠΊΡ ΠΎΠ΄ ΡΠ°Π±Π΅Π»Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΠ° Π΄ΠΎΠ±ΠΈΡΠ΅Π½ΠΈΡ
ΡΠΈΡΠ°ΡΠ΅ΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΊΠ°ΠΎ Π½ΠΏΡ /proc/meminfo
.
Π¦ΠΈΡ sysfs
- ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΡΠ²ΠΎΡΡΡΠ²Π° ΡΠΈΡΠ°ΡΠ°/ΠΏΠΈΡΠ°ΡΠ° ΠΎΠ½ΠΎΠ³Π° ΡΡΠΎ ΠΊΠ΅ΡΠ½Π΅Π» ΠΏΠΎΠ·ΠΈΠ²Π° Β«kobjectsΒ»
Ρ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΎΠΌ ΠΏΡΠΎΡΡΠΎΡΡ. ΠΠ΅Π΄ΠΈΠ½ΠΈ ΡΠΈΡ kobjects
ΡΠ΅ Π±ΡΠΎΡ Π²Π΅Π·Π°: ΠΊΠ°Π΄Π° ΡΠ΅ ΡΠΊΠ»ΠΎΠ½ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΠ° Π²Π΅Π·Π° Π΄ΠΎ ΠΊΠΎΠ±ΡΠ΅ΡΡ-Π°, ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ Π²ΡΠ°ΡΠΈΡΠΈ ΡΠ΅ΡΡΡΡΠ΅ ΠΏΠΎΠ²Π΅Π·Π°Π½Π΅ ΡΠ° ΡΠΈΠΌ. ΠΈΠΏΠ°ΠΊ, /sys
ΡΠΈΠ½ΠΈ Π²Π΅ΡΠΈΠ½Ρ ΠΏΠΎΠ·Π½Π°ΡΠΈΡ
Π‘ΡΠ°Π±ΠΈΠ»Π½ΠΈ ΠΠΠ ΠΊΠ΅ΡΠ½Π΅Π»Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π° ΠΎΠ½ΠΎ Ρ ΡΠ΅ΠΌΡ ΡΠ΅ ΠΌΠΎΠΆΠ΅ ΠΏΠΎΡΠ°Π²ΠΈΡΠΈ /sys
, Π° Π½Π΅ ΠΎΠ½ΠΎ ΡΡΠΎ ΡΠ΅ Π·Π°ΠΏΡΠ°Π²ΠΎ ΠΏΡΠΈΡΡΡΠ½ΠΎ Ρ ΡΠΎΠΌ ΡΡΠ΅Π½ΡΡΠΊΡ. ΠΠ°Π²ΠΎΡΠ΅ΡΠ΅ Π΄ΠΎΠ·Π²ΠΎΠ»Π° Π·Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ Ρ ΡΠΈΡΡΡ-Ρ ΠΏΡΡΠΆΠ° ΡΠ²ΠΈΠ΄ Ρ ΡΠΎ ΠΊΠ°ΠΊΠΎ ΡΠ΅ ΠΌΠΎΠ³Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠΈ ΠΏΠΎΡΡΠ°Π²ΠΊΠ΅ Π·Π° ΡΡΠ΅ΡΠ°ΡΠ΅, ΠΌΠΎΠ΄ΡΠ»Π΅, ΡΠΈΡΡΠ΅ΠΌΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΈΡΠ΄. ΠΌΠΎΠΆΠ΅ ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠΈ ΠΈΠ»ΠΈ ΡΠΈΡΠ°ΡΠΈ. ΠΠΎΠ³ΠΈΡΠ°Π½ Π·Π°ΠΊΡΡΡΠ°ΠΊ ΡΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΡΡ ΡΠ°ΠΊΠΎΡΠ΅ Π΄Π΅ΠΎ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎΠ³ ΠΠΠ ΠΊΠ΅ΡΠ½Π΅Π»Π°, ΠΈΠ°ΠΊΠΎ ΡΠΎ Π½ΠΈΡΠ΅ Π΅ΠΊΡΠΏΠ»ΠΈΡΠΈΡΠ½ΠΎ Π½Π°Π²Π΅Π΄Π΅Π½ΠΎ Ρ
Π€Π°ΡΠ»ΠΎΠ²ΠΈ Ρ sysfs
ΠΎΠΏΠΈΡΡΡΡ ΡΠ΅Π΄Π½ΠΎ ΠΏΠΎΡΠ΅Π±Π½ΠΎ ΡΠ²ΠΎΡΡΡΠ²ΠΎ Π·Π° ΡΠ²Π°ΠΊΠΈ Π΅Π½ΡΠΈΡΠ΅Ρ ΠΈ ΠΌΠΎΠ³Ρ Π±ΠΈΡΠΈ ΡΠΈΡΡΠΈΠ²Π΅, ΡΠΏΠΈΡΡΠΈΠ²Π΅ ΠΈΠ»ΠΈ ΠΎΠ±ΠΎΡΠ΅. β0β Ρ Π΄Π°ΡΠΎΡΠ΅ΡΠΈ Π·Π½Π°ΡΠΈ Π΄Π° ΡΠ΅ Π‘Π‘Π Π½Π΅ ΠΌΠΎΠΆΠ΅ ΡΠΊΠ»ΠΎΠ½ΠΈΡΠΈ.
ΠΠ°ΠΏΠΎΡΠ½ΠΈΠΌΠΎ Π΄ΡΡΠ³ΠΈ Π΄Π΅ΠΎ ΠΏΡΠ΅Π²ΠΎΠ΄Π° ΠΊΠ°ΠΊΠΎ Π΄Π° Π½Π°Π΄Π³Π»Π΅Π΄Π°ΠΌΠΎ ΠΠ€Π‘ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠΈ Π΅ΠΠΠ€ ΠΈ Π±ΡΡ Π°Π»Π°ΡΠ΅, Π° ΡΠ°Π΄Π° ΡΠ΅ΠΊΠ°ΠΌΠΎ Π²Π°ΡΠ΅ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠ΅ ΠΈ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π°Π»Π½ΠΎ Π²Π°Ρ ΠΏΠΎΠ·ΠΈΠ²Π°ΠΌΠΎ Π΄Π°
ΠΠ·Π²ΠΎΡ: Π²Π²Π².Ρ
Π°Π±Ρ.ΡΠΎΠΌ