ΠΠ΄ΡΠ°Π²ΠΎ ΡΠ²ΠΈΠΌΠ°, Π΄Π΅Π»ΠΈΠΌΠΎ ΡΠ° Π²Π°ΠΌΠ° Π΄ΡΡΠ³ΠΈ Π΄Π΅ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡΠ΅ βΠΠΈΡΡΡΠ΅Π»Π½ΠΈ ΡΠ°ΡΠ» ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ LinuxΠΠ°ΡΡΠΎ ΡΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ ΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡ? ΠΡΠ²ΠΈ Π΄Π΅ΠΎ ΡΠ΅ ΠΌΠΎΠΆΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΠΈ . ΠΠΎΠ΄ΡΠ΅ΡΠΈΠΌΠΎ, ΠΎΠ²Π° ΡΠ΅ΡΠΈΡΠ° ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠ΅ ΡΠ΅ΠΌΠΏΠΈΡΠ°Π½Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠΊΠ»ΠΎΠΏΠΈ ΡΠ° ΠΏΠΎΠΊΡΠ΅ΡΠ°ΡΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ³ ΡΠΎΠΊΠ° Π½Π° ΠΊΡΡΡΡ , ΠΊΠΎΡΠΈ ΠΏΠΎΡΠΈΡΠ΅ Π²ΡΠ»ΠΎ Π±ΡΠ·ΠΎ.
ΠΠ°ΠΊΠΎ ΠΏΡΠ°ΡΠΈΡΠΈ ΠΠ€Π‘ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠΈ Π΅ΠΠΠ€ ΠΈ Π±ΡΡ Π°Π»Π°ΡΠ΅
ΠΠ°ΡΠ»Π°ΠΊΡΠΈ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ°Π·ΡΠΌΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠΎ ΠΊΠ΅ΡΠ½Π΅Π» ΡΠ°Π΄ΠΈ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΠΌΠ° sysfs ΡΠ΅ Π΄Π° ΡΠΎ Π²ΠΈΠ΄ΠΈΡΠ΅ Ρ ΠΏΡΠ°ΠΊΡΠΈ, Π° Π½Π°ΡΠ»Π°ΠΊΡΠΈ Π½Π°ΡΠΈΠ½ Π΄Π° Π³Π»Π΅Π΄Π°ΡΠ΅ ΠΠ Π64 ΡΠ΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ Π΅ΠΠΠ€. Π΅ΠΠΠ€ (ΡΠΊΡΠ°ΡΠ΅Π½ΠΎ ΠΎΠ΄ ΠΠ΅ΡΠΊΠ΅Π»Π΅ΠΈ ΠΠ°ΡΠΊΠ΅Ρ Π€ΠΈΠ»ΡΠ΅Ρ) ΡΠ΅ ΡΠ°ΡΡΠΎΡΠΈ ΠΎΠ΄ Π²ΠΈΡΡΡΠ΅Π»Π½Π΅ ΠΌΠ°ΡΠΈΠ½Π΅ ΠΊΠΎΡΠ° ΡΠ°Π΄ΠΈ , ΠΊΠΎΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΎΠ²Π°Π½ΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ ΠΌΠΎΠ³Ρ Π΄Π° Π·Π°Ρ
ΡΠ΅Π²Π°ΡΡ (query) ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½Π΅ Π»ΠΈΠ½ΠΈΡΠ΅. ΠΠ·Π²ΠΎΡΠΈ ΠΊΠ΅ΡΠ½Π΅Π»Π° Π³ΠΎΠ²ΠΎΡΠ΅ ΡΠΈΡΠ°ΠΎΡΡ ΡΡΠ° ΠΊΠ΅ΡΠ½Π΅Π» ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π΄ΠΈ; ΠΏΠΎΠΊΡΠ΅ΡΠ°ΡΠ΅ Π΅ΠΠΠ€ Π°Π»Π°ΡΠ° Π½Π° ΡΡΠΈΡΠ°Π½ΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠΊΠ°Π·ΡΡΠ΅ ΡΡΠ° ΠΊΠ΅ΡΠ½Π΅Π» Π·Π°ΠΏΡΠ°Π²ΠΎ ΡΠ°Π΄ΠΈ.

Π‘ΡΠ΅ΡΠΎΠΌ, ΠΏΠΎΡΠ΅ΡΠ°ΠΊ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ° Π΅ΠΠΠ€-Π° ΡΠ΅ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π°Π½ ΡΠ· ΠΏΠΎΠΌΠΎΡ Π°Π»Π°ΡΠ° , ΠΊΠΎΡΠΈ ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ ΠΊΠ°ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΠΈΠ· ΠΎΠΏΡΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ΅ ΠΈ Π΄Π΅ΡΠ°ΡΠ½ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ²Π°Π½Π° . ΠΠ»Π°ΡΠΈ bcc ΡΡ ΠΠΈΡΡ
ΠΎΠ½ ΡΠΊΡΠΈΠΏΡΠ΅ ΡΠ° ΠΌΠ°Π»ΠΈΠΌ ΡΠΌΠ΅ΡΠ°ΡΠΈΠΌΠ° Π¦ ΠΊΠΎΠ΄Π°, ΡΡΠΎ Π·Π½Π°ΡΠΈ Π΄Π° ΡΠ²Π°ΠΊΠΎ ΠΊΠΎ ΠΏΠΎΠ·Π½Π°ΡΠ΅ ΠΎΠ±Π° ΡΠ΅Π·ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅ Π»Π°ΠΊΠΎ Π΄Π° ΠΈΡ
ΠΈΠ·ΠΌΠ΅Π½ΠΈ. ΠΠ bcc/tools ΠΠΎΡΡΠΎΡΠΈ 80 ΠΠΈΡΡ
ΠΎΠ½ ΡΠΊΡΠΈΠΏΡΠΈ, ΡΡΠΎ Π·Π½Π°ΡΠΈ Π΄Π° ΡΠ΅ Π½Π°ΡΠ²Π΅ΡΠΎΠ²Π°ΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅Ρ ΠΈΠ»ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΡΠΈ Π΄Π° ΠΈΠ·Π°Π±Π΅ΡΠ΅ Π½Π΅ΡΡΠΎ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ Π·Π° ΡΠ΅ΡΠ°Π²Π°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°.
ΠΠ° Π±ΠΈΡΡΠ΅ Π΄ΠΎΠ±ΠΈΠ»ΠΈ Π±Π°ΡΠ΅ΠΌ ΠΏΠΎΠ²ΡΡΠ½Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Ρ ΠΎ ΡΠΎΠΌΠ΅ ΡΡΠ° ΠΠ€Π‘-ΠΎΠ²ΠΈ ΡΠ°Π΄Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΡΠΈ ΡΠ°Π΄ΠΈ, ΠΏΠΎΠΊΡΡΠ°ΡΡΠ΅ vfscount ΠΈΠ»ΠΈ vfsstat. ΠΠ²ΠΎ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠΈ, ΡΠ΅ΡΠΈΠΌΠΎ, Π΄Π΅ΡΠ΅ΡΠΈΠ½Π΅ ΠΏΠΎΠ·ΠΈΠ²Π° vfs_open() Π° βΡΠ΅Π³ΠΎΠ²ΠΈ ΠΏΡΠΈΡΠ°ΡΠ΅ΡΠΈβ ΡΠ΅ Π΄Π΅ΡΠ°Π²Π°ΡΡ Π±ΡΠΊΠ²Π°Π»Π½ΠΎ ΡΠ²Π°ΠΊΠ΅ ΡΠ΅ΠΊΡΠ½Π΄Π΅.

vfsstat.pyΡΠ΅ ΠΠΈΡΡ ΠΎΠ½ ΡΠΊΡΠΈΠΏΡΠ° ΡΠ° ΡΠΌΠ΅ΡΡΠΈΠΌΠ° Π¦ ΠΊΠΎΠ΄Π° ΠΊΠΎΡΠ° ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π±ΡΠΎΡΠΈ ΠΏΠΎΠ·ΠΈΠ²Π΅ ΠΠ€Π‘ ΡΡΠ½ΠΊΡΠΈΡΠ°.
Π₯Π°ΡΠ΄Π΅ Π΄Π° Π΄Π°ΠΌΠΎ ΡΠ΅Π΄Π°Π½ ΡΡΠΈΠ²ΠΈΡΠ°Π»Π½ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠΎ ΡΡΠ° ΡΠ΅ Π΄Π΅ΡΠ°Π²Π° ΠΊΠ°Π΄Π° ΡΠ±Π°ΡΠΈΠΌΠΎ Π£Π‘Π ΡΠ»Π΅Ρ Π΄ΠΈΡΠΊ Ρ ΡΠ°ΡΡΠ½Π°Ρ ΠΈ ΡΠΈΡΡΠ΅ΠΌ Π³Π° Π΄Π΅ΡΠ΅ΠΊΡΡΡΠ΅.

ΠΠΎΡΠΈΡΡΠ΅ΡΠΈ Π΅ΠΠΠ€ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΠΈ ΡΡΠ° ΡΠ΅ Π΄Π΅ΡΠ°Π²Π°
/sysΠΊΠ°Π΄Π° ΡΠ΅ Π£Π‘Π ΡΠ»Π΅Ρ Π΄ΠΈΡΠΊ ΡΠΌΠ΅ΡΠ½ΡΡ. ΠΠ²Π΄Π΅ ΡΠ΅ ΠΏΡΠΈΠΊΠ°Π·Π°Π½ ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π°Π½ ΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ.
Π£ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΊΠ°Π·Π°Π½ΠΎΠΌ ΠΈΠ·Π½Π°Π΄, bcc Π°Π»Π°ΡΠΊΠ° ΡΡΠ°ΠΌΠΏΠ° ΠΏΠΎΡΡΠΊΡ ΠΊΠ°Π΄Π° ΡΠ΅ Π½Π°ΡΠ΅Π΄Π±Π° ΠΏΠΎΠΊΡΠ΅Π½Π΅ sysfs_create_files(). Π’ΠΎ Π²ΠΈΠ΄ΠΈΠΌΠΎ sysfs_create_files() ΡΠ΅ ΠΏΠΎΠΊΡΠ΅Π½ΡΡ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ΠΌ kworker ΡΡΡΠ΅Π°ΠΌ ΠΊΠ°ΠΎ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ Π½Π° ΡΠΈΡΠ΅Π½ΠΈΡΡ Π΄Π° ΡΠ΅ ΡΠ»Π΅Ρ Π΄ΠΈΡΠΊ ΡΠΌΠ΅ΡΠ½ΡΡ, Π°Π»ΠΈ ΠΊΠΎΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°Π½Π°? ΠΡΡΠ³ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·ΡΡΠ΅ ΠΌΠΎΡ Π΅ΠΠΠ€-Π°. ΠΠ²ΠΎ trace.py Π¨ΡΠ°ΠΌΠΏΠ° ΠΏΠΎΠ²ΡΠ°ΡΠ½ΠΈ ΡΡΠ°Π³ ΠΊΠ΅ΡΠ½Π΅Π»Π° (ΠΎΠΏΡΠΈΡΠ° -Π) ΠΈ ΠΈΠΌΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ ΠΊΠΎΡΠ° ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°Π½Π° sysfs_create_files(). Π£ΠΌΠ΅ΡΠ°ΡΠ΅ ΡΠ΅Π΄Π½Π΅ ΠΈΠ·ΡΠ°Π²Π΅ ΡΠ΅ Π¦ ΠΊΠΎΠ΄ ΠΊΠΎΡΠΈ ΡΠΊΡΡΡΡΡΠ΅ Π»Π°ΠΊΠΎ ΠΏΡΠ΅ΠΏΠΎΠ·Π½Π°ΡΡΠΈΠ² ΡΡΡΠΈΠ½Π³ ΡΠΎΡΠΌΠ°ΡΠ° ΠΊΠΎΡΠΈ ΠΎΠ±Π΅Π·Π±Π΅ΡΡΡΠ΅ ΠΠΈΡΡ
ΠΎΠ½ ΡΠΊΡΠΈΠΏΡΠ° ΠΊΠΎΡΠ° ΠΏΠΎΠΊΡΠ΅ΡΠ΅ ΠΠΠΠ ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅Ρ ΡΠ°ΡΠ½ΠΎ Π½Π° Π²ΡΠ΅ΠΌΠ΅. ΠΠ½ ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ° ΠΎΠ²Ρ Π»ΠΈΠ½ΠΈΡΡ ΠΈ ΠΈΠ·Π²ΡΡΠ°Π²Π° ΡΠ΅ Ρ Π²ΠΈΡΡΡΠ΅Π»Π½ΠΎΡ ΠΌΠ°ΡΠΈΠ½ΠΈ ΡΠ½ΡΡΠ°Ρ ΠΊΠ΅ΡΠ½Π΅Π»Π°. ΠΠΎΡΠΏΠΈΡ ΠΏΡΠ½Π΅ ΡΡΠ½ΠΊΡΠΈΡΠ΅ sysfs_create_files () ΠΌΠΎΡΠ° ΡΠ΅ ΡΠ΅ΠΏΡΠΎΠ΄ΡΠΊΠΎΠ²Π°ΡΠΈ Ρ Π΄ΡΡΠ³ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΡΠ°ΠΊΠΎ Π΄Π° ΡΡΡΠΈΠ½Π³ ΡΠΎΡΠΌΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΏΡΡΡΡΠ΅ Π½Π° ΡΠ΅Π΄Π°Π½ ΠΎΠ΄ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠ°. ΠΡΠ΅ΡΠΊΠ΅ Ρ ΠΎΠ²ΠΎΠΌ Π΄Π΅Π»Ρ Π¦ ΠΊΠΎΠ΄Π° Π΄ΠΎΠ²ΠΎΠ΄Π΅ Π΄ΠΎ ΠΏΡΠ΅ΠΏΠΎΠ·Π½Π°ΡΡΠΈΠ²ΠΈΡ
Π³ΡΠ΅ΡΠ°ΠΊΠ° Π¦ ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅ΡΠ°. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°Ρ -Π» ΠΈΠ·ΠΎΡΡΠ°Π²ΡΠ΅Π½, Π²ΠΈΠ΄Π΅ΡΠ΅ΡΠ΅ βΠΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΠ° ΠΠΠ€ ΡΠ΅ΠΊΡΡΠ° Π½ΠΈΡΠ΅ ΡΡΠΏΠ΅Π»Π°β. ΠΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈ ΠΊΠΎΡΠΈ ΡΡ ΡΠΏΠΎΠ·Π½Π°ΡΠΈ ΡΠ° Π¦ ΠΈ ΠΠΈΡΡ
ΠΎΠ½-ΠΎΠΌ ΡΠ΅ ΠΏΡΠΎΠ½Π°ΡΠΈ Π°Π»Π°ΡΠ΅ bcc Π»Π°ΠΊΠΎ ΠΏΡΠΎΡΠΈΡΠΈΡΠΈ ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠΈ.
ΠΠ°Π΄Π° ΡΠ΅ Π£Π‘Π Π΄ΠΈΡΠΊ ΡΠΌΠ΅ΡΠ½ΡΡ, ΠΏΡΠ°ΡΠ΅ΡΠ΅ ΡΠ΅Π·Π³ΡΠ° ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠΈ Π΄Π° ΡΠ΅ ΠΠΠ 7711 Π½ΠΈΡ kworkerΠΊΠΎΡΠΈ ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΡ Β«eventsΒ» Π² sysfs. Π‘Ρ
ΠΎΠ΄Π½ΠΎ ΡΠΎΠΌΠ΅, ΠΏΠΎΠ·ΠΈΠ² ΠΈΠ· sysfs_remove_files() ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠΈ Π΄Π° ΡΠ΅ ΡΠΊΠ»Π°ΡΠ°ΡΠ΅ Π΄ΠΈΡΠΊ ΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠΈΡΠ°Π»ΠΎ Π±ΡΠΈΡΠ°ΡΠ΅ΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ events, ΡΡΠΎ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ° ΠΎΠΏΡΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡ Π±ΡΠΎΡΠ°ΡΠ° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈ. ΠΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ, Π³Π»Π΅Π΄Π°ΡΠ΅ sysfs_create_link () ΡΠ° Π΅ΠΠΠ€-ΠΎΠΌ Π΄ΠΎΠΊ ΡΠ±Π°ΡΡΡΠ΅ΡΠ΅ Π£Π‘Π Π΄ΠΈΡΠΊ ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠΈ Π΄Π° ΡΠ΅ ΠΊΡΠ΅ΠΈΡΠ°Π½ΠΎ Π½Π°ΡΠΌΠ°ΡΠ΅ 48 ΡΠΈΠΌΠ±ΠΎΠ»ΠΈΡΠΊΠΈΡ
Π²Π΅Π·Π°.
ΠΠ°ΠΊΠ»Π΅, ΠΊΠΎΡΠ° ΡΠ΅ ΡΠ²ΡΡ
Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ Π΄ΠΎΠ³Π°ΡΠ°ΡΠ°? Π£ΠΏΠΎΡΡΠ΅Π±Π° ΠΠ° ΠΏΡΠ΅ΡΡΠ°Π³Ρ , ΠΏΠΎΠΊΠ°Π·ΡΡΠ΅ ΡΡΠ° ΡΠ·ΡΠΎΠΊΡΡΠ΅ disk_add_events (), ΠΈ Π±ΠΈΠ»ΠΎ "media_change"ΠΠ»ΠΈ "eject_request" ΠΌΠΎΠΆΠ΅ ΡΠ΅ ΡΠ½ΠΈΠΌΠΈΡΠΈ Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΡ Π΄ΠΎΠ³Π°ΡΠ°ΡΠ°. ΠΠ²Π΄Π΅ ΡΠ»ΠΎΡ Π±Π»ΠΎΠΊΠ° ΠΊΠ΅ΡΠ½Π΅Π»Π° ΠΎΠ±Π°Π²Π΅ΡΡΠ°Π²Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ ΠΏΡΠΎΡΡΠΎΡ Π΄Π° ΡΠ΅ "Π΄ΠΈΡΠΊ" ΠΏΠΎΡΠ°Π²ΠΈΠΎ ΠΈ ΠΈΠ·Π±Π°ΡΠ΅Π½. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ ΠΏΠ°ΠΆΡΡ Π½Π° ΡΠΎ ΠΊΠΎΠ»ΠΈΠΊΠΎ ΡΠ΅ ΠΎΠ²Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΡΡΡΠ°ΠΆΠΈΠ²Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ²Π°Π½ ΡΠΌΠ΅ΡΠ°ΡΠ΅ΠΌ Π£Π‘Π Π΄ΠΈΡΠΊΠ°, Ρ ΠΏΠΎΡΠ΅ΡΠ΅ΡΡ ΡΠ° ΠΏΠΎΠΊΡΡΠ°ΡΠ΅ΠΌ Π΄Π° ΡΡ
Π²Π°ΡΠΈΡΠ΅ ΠΊΠ°ΠΊΠΎ ΡΡΠ²Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡ ΠΈΡΠΊΡΡΡΠΈΠ²ΠΎ ΠΈΠ· ΠΈΠ·Π²ΠΎΡΠ°.
Π ΠΎΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΡΠ°ΠΌΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅ ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π°ΡΡ ΡΠ³ΡΠ°ΡΠ΅Π½Π΅ ΡΡΠ΅ΡΠ°ΡΠ΅
ΠΠ°ΡΠ°Π²Π½ΠΎ, Π½ΠΈΠΊΠΎ Π½Π΅ ΠΈΡΠΊΡΡΡΡΡΠ΅ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠ»ΠΈ ΡΠ²ΠΎΡ ΡΠ°ΡΡΠ½Π°Ρ ΠΈΠ·Π²Π»Π°ΡΠ΅ΡΠ΅ΠΌ ΡΡΠΈΠΊΠ°ΡΠ° ΠΈΠ· ΡΡΠΈΡΠ½ΠΈΡΠ΅. ΠΠ»ΠΈ Π·Π°ΡΡΠΎ? Π’ΠΎ ΡΠ΅ Π·Π°ΡΠΎ ΡΡΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ°Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π½Π° ΡΠΈΠ·ΠΈΡΠΊΠΈΠΌ ΡΡΠ΅ΡΠ°ΡΠΈΠΌΠ° Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠ΅ ΠΌΠΎΠ³Ρ ΠΈΠΌΠ°ΡΠΈ Π·Π°ΠΎΡΡΠ°ΡΠ°ΡΠ΅ ΡΠΏΠΈΡΠΈΠ²Π°ΡΠ°, Π° ΡΡΡΡΠΊΡΡΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° ΠΊΠΎΡΠ΅ Π±Π΅Π»Π΅ΠΆΠ΅ ΡΠΈΡ
ΠΎΠ²ΠΎ ΡΡΠ°ΡΠ΅ ΠΌΠΎΠΆΠ΄Π° Π½Π΅ΡΠ΅ Π±ΠΈΡΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΎΠ²Π°Π½Π΅ ΡΠ° ΡΠΏΠΈΡΠΈΠΌΠ° Ρ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅. ΠΠ°Π΄Π° ΡΠ΅ ΡΠΎ Π΄ΠΎΠ³ΠΎΠ΄ΠΈ, Π²Π»Π°ΡΠ½ΠΈΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΡΠ°ΡΡ Π΄Π° ΡΠ°ΡΠ΅ΠΊΠ°ΡΡ Π΄ΠΎ ΡΠ»Π΅Π΄Π΅ΡΠ΅Π³ ΠΏΠΎΠΊΡΠ΅ΡΠ°ΡΠ° Π΄Π° Π±ΠΈ ΠΏΠΎΠΊΡΠ΅Π½ΡΠ»ΠΈ ΡΡΠ»ΡΠΆΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌ. fsck filesystem-recovery ΠΈ, Ρ Π½Π°ΡΠ³ΠΎΡΠ΅ΠΌ ΡΠ»ΡΡΠ°ΡΡ, Π³ΡΠ±ΠΈΡΠ°ΠΊ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ°.
ΠΠ΅ΡΡΡΠΈΠΌ, ΡΠ²ΠΈ Π·Π½Π°ΠΌΠΎ Π΄Π° ΠΌΠ½ΠΎΠ³ΠΈ IoT ΡΡΠ΅ΡΠ°ΡΠΈ, ΠΊΠ°ΠΎ ΠΈ ΡΡΡΠ΅ΡΠΈ, ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠΈ ΠΈ Π°ΡΡΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ, ΡΠ°Π΄Π° ΡΠ°Π΄Π΅ Π½Π° LinuxΠΠ½ΠΎΠ³ΠΈ ΠΎΠ΄ ΠΎΠ²ΠΈΡ
ΡΡΠ΅ΡΠ°ΡΠ° ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎ Π½Π΅ΠΌΠ°ΡΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡ ΠΈ Π½Π΅ ΠΏΠΎΡΡΠΎΡΠΈ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ Π»Π°ΠΊΠΎ ΠΈΡΠΊΡΡΡΠ΅. ΠΠ°ΠΌΠΈΡΠ»ΠΈΡΠ΅ Π΄Π° ΠΏΠΎΠΊΡΠ΅Π½Π΅ΡΠ΅ Π°ΡΡΠΎΠΌΠΎΠ±ΠΈΠ» ΡΠ° ΠΏΡΠ°Π·Π½ΠΎΠΌ Π±Π°ΡΠ΅ΡΠΈΡΠΎΠΌ ΠΊΠ°Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΊΠΈΠ½Π΅ Π½Π°ΠΏΠ°ΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΎΠ³ ΡΡΠ΅ΡΠ°ΡΠ°. Π½Π΅ΠΏΡΠ΅ΡΡΠ°Π½ΠΎ ΡΠΊΠ°ΡΡΡΠΈ Π³ΠΎΡΠ΅-Π΄ΠΎΠ»Π΅. ΠΠ°ΠΊΠΎ ΡΠΎ Π΄Π° ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎΠΊΡΠ΅ΡΠ΅ Π±Π΅Π· Π΄ΡΠ³ΠΎΠ³ fsckΠΊΠ°Π΄Π° ΠΌΠΎΡΠΎΡ ΠΊΠΎΠ½Π°ΡΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ΅ Π΄Π° ΡΠ°Π΄ΠΈ? Π ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ ΡΠ΅ ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π°Π½. Π£Π³ΡΠ°ΡΠ΅Π½ΠΈ ΡΡΠ΅ΡΠ°ΡΠΈ ΡΠ΅ ΠΎΡΠ»Π°ΡΠ°ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° (ΡΠΊΡΠ°ΡΠ΅Π½ΠΎ ro-rootfs (ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΠ°ΡΠ» ΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΌΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅)).
ro-rootfs Π½ΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³Π΅ ΠΏΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΠΊΠΎΡΠ΅ ΡΡ ΠΌΠ°ΡΠ΅ ΠΎΡΠΈΠ³Π»Π΅Π΄Π½Π΅ ΠΎΠ΄ Π°ΡΡΠ΅Π½ΡΠΈΡΠ½ΠΎΡΡΠΈ. ΠΠ΅Π΄Π½Π° ΠΎΠ΄ ΠΏΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΡΠ΅ ΡΡΠΎ Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ½ΠΈ ΡΠΎΡΡΠ²Π΅Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΈΡΠ΅ /usr ΠΈΠ»ΠΈ /lib, Π°ΠΊΠΎ Π½Π΅ΠΌΠ° ΠΏΡΠΎΡΠ΅ΡΠ° Linux ΠΠ΅ ΠΌΠΎΠ³Ρ Π΄Π° ΠΏΠΈΡΠ΅ΠΌ Π½Π° ΡΠ΅Π³Π°. ΠΡΡΠ³Π° ΠΏΡΠ΅Π΄Π½ΠΎΡΡ ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠ³Π»Π°Π²Π½ΠΎΠΌ Π½Π΅ΠΏΡΠΎΠΌΠ΅Π½ΡΠΈΠ²ΠΈ ΡΠ°ΡΠ» ΡΠΈΡΡΠ΅ΠΌ ΠΊΡΡΡΠ°Π½ Π·Π° ΡΠ΅ΡΠ΅Π½ΡΠΊΡ ΠΏΠΎΠ΄ΡΡΠΊΡ ΡΠ΄Π°ΡΠ΅Π½ΠΈΡ
ΡΡΠ΅ΡΠ°ΡΠ°, ΡΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ΅ Π·Π° ΠΏΠΎΠ΄ΡΡΠΊΡ ΠΊΠΎΡΠΈΡΡΠΈ Π»ΠΎΠΊΠ°Π»Π½Π΅ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΡΠΈ ΡΡ Π½ΠΎΠΌΠΈΠ½Π°Π»Π½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈΠΌΠ° Π½Π° Π»ΠΈΡΡ ΠΌΠ΅ΡΡΠ°. ΠΠΎΠΆΠ΄Π° Π½Π°ΡΠ²Π°ΠΆΠ½ΠΈΡΠ° (Π°Π»ΠΈ ΠΈ Π½Π°ΡΠΏΠΎΠ΄ΠΌΡΠΊΠ»ΠΈΡΠ΅) ΠΏΡΠ΅Π΄Π½ΠΎΡΡ ΡΠ΅ ΡΠΎ ΡΡΠΎ ro-rootfs ΠΏΡΠΈΠΌΠΎΡΠ°Π²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠ΅ Π΄Π° ΠΎΠ΄Π»ΡΡΠ΅ ΠΊΠΎΡΠΈ ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΈ Π±ΠΈΡΠΈ Π½Π΅ΠΏΡΠΎΠΌΠ΅Π½ΡΠΈΠ²ΠΈ ΡΠ°Π½ΠΎ Ρ Π΄ΠΈΠ·Π°ΡΠ½Ρ ΡΠΈΡΡΠ΅ΠΌΠ°. Π Π°Π΄ ΡΠ° ro-rootfs ΠΌΠΎΠΆΠ΅ Π±ΠΈΡΠΈ Π½Π΅Π·Π³ΠΎΠ΄Π°Π½ ΠΈ Π±ΠΎΠ»Π°Π½, ΠΊΠ°ΠΎ ΡΡΠΎ ΡΠ΅ ΡΠ΅ΡΡΠΎ ΡΠ»ΡΡΠ°Ρ ΡΠ° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΈΠΌ ΠΏΡΠΎΠΌΠ΅Π½ΡΠΈΠ²ΠΈΠΌ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈΠΌ ΡΠ΅Π·ΠΈΡΠΈΠΌΠ°, Π°Π»ΠΈ ΡΠ΅Π³ΠΎΠ²Π΅ ΠΏΡΠ΅Π΄Π½ΠΎΡΡΠΈ Π»Π°ΠΊΠΎ Π½Π°Π΄ΠΌΠ°ΡΡΡΡ Π΄ΠΎΠ΄Π°ΡΠ½Π΅ ΡΡΠΎΡΠΊΠΎΠ²Π΅.
ΡΡΠ²Π°ΡΠ°ΡΠ΅ rootfs Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΡΠ°ΠΌΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅ Π·Π°Ρ
ΡΠ΅Π²Π° Π΄ΠΎΠ΄Π°ΡΠ½ΠΈ Π½Π°ΠΏΠΎΡ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠ΅ ΡΠ³ΡΠ°ΡΠ΅Π½ΠΈΡ
ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΈ ΡΡ Π΄ΠΎ ΠΈΠ·ΡΠ°ΠΆΠ°ΡΠ° Π΄ΠΎΠ»Π°Π·ΠΈ VFS. Linux Π·Π°Ρ
ΡΠ΅Π²Π° Π΄Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ Ρ /var Π±ΠΈΠ»ΠΈ ΡΡ ΡΠΏΠΈΡΠΈΠ²ΠΈ, Π° ΠΏΠΎΡΠ΅Π΄ ΡΠΎΠ³Π°, ΠΌΠ½ΠΎΠ³Π΅ ΠΏΠΎΠΏΡΠ»Π°ΡΠ½Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅ ΠΊΠΎΡΠ΅ ΠΏΠΎΠΊΡΠ΅ΡΡ ΡΠ³ΡΠ°ΡΠ΅Π½Π΅ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠ΅ ΠΏΠΎΠΊΡΡΠ°ΡΠΈ Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ dot-files Π² $HOME. ΠΠ΅Π΄Π½ΠΎ ΡΠ΅ΡΠ΅ΡΠ΅ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ Ρ ΠΌΠ°ΡΠΈΡΠ½ΠΎΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠΌΡ ΡΠ΅ ΠΎΠ±ΠΈΡΠ½ΠΎ Π΄Π° ΠΈΡ
ΡΠ½Π°ΠΏΡΠ΅Π΄ Π³Π΅Π½Π΅ΡΠΈΡΠ΅ΡΠ΅ ΠΈ ΡΠ³ΡΠ°Π΄ΠΈΡΠ΅ Ρ ΡΠΈΡ
rootfs. ΠΠΎ /var ΠΠ΅Π΄Π°Π½ ΠΎΠ΄ ΠΌΠΎΠ³ΡΡΠΈΡ
ΠΏΡΠΈΡΡΡΠΏΠ° ΡΠ΅ Π΄Π° ΡΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠ° Π½Π° ΠΏΠΎΡΠ΅Π±Π½Ρ ΠΏΠ°ΡΡΠΈΡΠΈΡΡ Π½Π° ΠΊΠΎΡΡ ΡΠ΅ ΠΌΠΎΠΆΠ΅ ΠΏΠΈΡΠ°ΡΠΈ, Π΄ΠΎΠΊ / ΠΌΠΎΠ½ΡΠΈΡΠ°Π½ ΡΠ°ΠΌΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅. ΠΠΎΡ ΡΠ΅Π΄Π½Π° ΠΏΠΎΠΏΡΠ»Π°ΡΠ½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° ΡΠ΅ ΡΠΏΠΎΡΡΠ΅Π±Π° Π½ΠΎΡΠ°ΡΠ° Π·Π° Π²Π΅Π·ΠΈΠ²Π°ΡΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΊΠ»Π°ΠΏΠ°ΡΠ΅.
ΠΠΎΡΠ°ΡΠΈ ΠΊΠΎΡΠΈ ΡΠ΅ ΠΌΠΎΠ³Ρ ΠΏΠΎΠ²Π΅Π·Π°ΡΠΈ ΠΈ ΡΠ»Π°Π³Π°ΡΠΈ, ΡΠΈΡ ΠΎΠ²Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠΌΠ°
ΠΠ·Π²ΡΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ man mount ΡΠ΅ Π½Π°ΡΠ±ΠΎΡΠΈ Π½Π°ΡΠΈΠ½ Π΄Π° Π½Π°ΡΡΠΈΡΠ΅ ΠΎ ΠΏΠΎΠ²Π΅Π·ΠΈΠ²ΠΈΠΌ ΠΈ ΠΏΡΠ΅ΠΊΠ»Π°ΠΏΠ°ΡΡΡΠΈΠΌ ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠΈΠΌΠ°, ΠΊΠΎΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΠΌΠ° ΠΈ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΠΌ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΠΌΠ° Π΄Π°ΡΡ ΠΌΠΎΠ³ΡΡΠ½ΠΎΡΡ Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Π½Π° ΡΠ΅Π΄Π½ΠΎΡ ΠΏΡΡΠ°ΡΠΈ, Π° Π·Π°ΡΠΈΠΌ Π³Π° ΠΈΠ·Π»ΠΎΠΆΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΠΌΠ° Π½Π° Π΄ΡΡΠ³ΠΎΡ. ΠΠ° ΡΠ³ΡΠ°ΡΠ΅Π½Π΅ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΡΠΎ Π·Π½Π°ΡΠΈ ΠΌΠΎΠ³ΡΡΠ½ΠΎΡΡ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° /var Π½Π° ΡΠ»Π΅Ρ Π΄ΠΈΡΠΊΡ ΡΠ°ΠΌΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅, Π°Π»ΠΈ ΠΏΡΠ΅ΠΊΠ»Π°ΠΏΠ°ΡΡΡΠ° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Π·ΠΈΠ²Π° ΠΏΡΡΠ°ΡΠ° Π·Π° ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ ΠΈΠ· tmpfs Π² /var ΠΏΡΠΈΠ»ΠΈΠΊΠΎΠΌ ΡΡΠΈΡΠ°Π²Π°ΡΠ°, ΠΎΠΌΠΎΠ³ΡΡΠΈΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ°ΠΌΠ° Π΄Π° ΡΠ°ΠΌΠΎ ΠΏΠΈΡΡ Π±Π΅Π»Π΅ΡΠΊΠ΅ (ΡΠΊΡΠ°Π±Π°ΡΠ΅). Π‘Π»Π΅Π΄Π΅ΡΠΈ ΠΏΡΡ ΠΊΠ°Π΄Π° ΡΠΊΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅ Ρ /var ΡΠ΅ Π±ΠΈΡΠΈ ΠΈΠ·Π³ΡΠ±ΡΠ΅Π½ΠΈ. ΠΡΠ΅ΠΊΠ»ΠΎΠΏΠ½ΠΈ Π½ΠΎΡΠ°Ρ ΡΡΠ²Π°ΡΠ° ΡΠΏΠΎΡ ΠΈΠ·ΠΌΠ΅ΡΡ tmpfs ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΈ ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π° Π²Π°ΠΌ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ΄Π½Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅ Ρ ΠΏΠΎΡΡΠΎΡΠ΅ΡΠΈΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΠΌΠ° Ρ ro-tootf Π΄ΠΎΠΊ ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΡΠ΅ ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π²Π΅Π·Π°ΡΠΈ ΠΌΠΎΠΆΠ΅ ΡΡΠΈΠ½ΠΈΡΠΈ Π½ΠΎΠ²Π΅ ΠΏΡΠ°Π·Π½ΠΈΠΌ tmpfs ΡΠ°ΡΡΠΈΠΊΠ»Π΅ Π²ΠΈΠ΄ΡΠΈΠ²Π΅ ΠΊΠ°ΠΎ Ρ ΠΊΠΎΡΠ΅ ΡΠ΅ ΠΌΠΎΠΆΠ΅ ΠΏΠΈΡΠ°ΡΠΈ ro-rootfs Π½Π°ΡΠΈΠ½Π΅. ΠΠΎΠΊ overlayfs ΠΎΠ²ΠΎ ΡΠ΅ ΠΎΠ½ΠΎ ΠΏΡΠ°Π²ΠΎ (proper) ΡΠΈΠΏ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°, ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΡΠ΅ ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π²Π΅Π·Π°ΡΠΈ ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ΠΎ Ρ .
ΠΠ° ΠΎΡΠ½ΠΎΠ²Ρ ΠΎΠΏΠΈΡΠ° ΠΏΡΠ΅ΠΊΠ»Π°ΠΏΠ°ΡΠ° ΠΈ ΠΏΠΎΠ²Π΅Π·ΠΈΠ²ΠΎΠ³ Π½ΠΎΡΠ°ΡΠ°, Π½ΠΈΠΊΠΎ ΡΠ΅ ΡΠΎΠΌΠ΅ Π½Π΅ ΡΡΠ΄ΠΈ ΠΎΠ½ΠΈ ΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΊΠΎΡΠΈΡΡΠ΅. ΠΠ° Π²ΠΈΠ΄ΠΈΠΌΠΎ ΡΡΠ° ΡΠ΅ Π΄Π΅ΡΠ°Π²Π° ΠΊΠ°Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΠΌΠΎ Π΄Π° ΠΏΠΎΠΊΡΠ΅Π½Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π°Π»Π°ΡΠ° mountsnoop ΠΈΠ· bcc.
ΠΠ·Π°Π·ΠΎΠ² system-nspawn ΠΏΠΎΠΊΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ Π΄ΠΎΠΊ ΡΠ°Π΄ΠΈ mountsnoop.py.
ΠΠ° Π²ΠΈΠ΄ΠΈΠΌΠΎ ΡΡΠ° ΡΠ΅ Π΄Π΅ΡΠΈΠ»ΠΎ:
ΠΠΎΠΊΡΠ΅ΡΠ°ΡΠ΅ mountsnoop Π΄ΠΎΠΊ ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ "ΠΏΠΎΠ΄ΠΈΠΆΠ΅" ΠΏΠΎΠΊΠ°Π·ΡΡΠ΅ Π΄Π° Π²ΡΠ΅ΠΌΠ΅ ΠΈΠ·Π²ΠΎΡΠ΅ΡΠ° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° Ρ Π²Π΅Π»ΠΈΠΊΠΎΡ ΠΌΠ΅ΡΠΈ Π·Π°Π²ΠΈΡΠΈ ΠΎΠ΄ ΠΏΠΎΠ²Π΅Π·ΠΈΠ²Π°ΡΠ° (ΠΏΡΠΈΠΊΠ°Π·ΡΡΠ΅ ΡΠ΅ ΡΠ°ΠΌΠΎ ΠΏΠΎΡΠ΅ΡΠ°ΠΊ Π΄ΡΠ³ΠΎΠ³ ΠΈΠ·Π»Π°Π·Π°).
ΠΠ²Π΄Π΅ systemd-nspawn ΠΏΡΡΠΆΠ° ΠΈΠ·Π°Π±ΡΠ°Π½Π΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ Ρ procfs ΠΈ sysfs Ρ
ΠΎΡΡ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΠΊΠ°ΠΎ ΠΏΡΡΠ°ΡΠ΅ Π΄ΠΎ ΡΠ΅Π³Π° rootfs. ΠΡΠΈΠΌ ΡΠΎΠ³Π° MS_BIND Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΡΠ° ΠΏΠΎΡΡΠ°Π²ΡΠ° Π²Π΅Π·ΡΡΡΡΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅, Π½Π΅ΠΊΠ΅ Π΄ΡΡΠ³Π΅ Π·Π°ΡΡΠ°Π²ΠΈΡΠ΅ Π½Π° ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΡ Π΄Π΅ΡΠΈΠ½ΠΈΡΡ ΠΎΠ΄Π½ΠΎΡ ΠΈΠ·ΠΌΠ΅ΡΡ ΠΏΡΠΎΠΌΠ΅Π½Π° Ρ ΠΈΠΌΠ΅Π½ΡΠΊΠΈΠΌ ΠΏΡΠΎΡΡΠΎΡΠΈΠΌΠ° Ρ
ΠΎΡΡΠ° ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ²Π΅Π·Π°Π½ΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ ΠΌΠΎΠΆΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΡΠΊΠΎΡΠΈΡΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π΅ Π½Π° /proc ΠΈ /sys Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈΠ»ΠΈ ΠΈΡ
ΡΠ°ΠΊΡΠΈΡΡΠ΅ Ρ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ ΠΎΠ΄ ΠΏΠΎΠ·ΠΈΠ²Π°.
ΠΠ°ΠΊΡΡΡΠ°ΠΊ
Π Π°Π·ΡΠΌΠ΅Π²Π°ΡΠ΅ ΡΠ½ΡΡΡΠ°ΡΡΠ΅ ΡΡΡΡΠΊΡΡΡΠ΅ Linux ΠΌΠΎΠΆΠ΅ ΠΈΠ·Π³Π»Π΅Π΄Π°ΡΠΈ ΠΊΠ°ΠΎ Π½Π΅ΠΌΠΎΠ³ΡΡ Π·Π°Π΄Π°ΡΠ°ΠΊ, ΡΠ΅Ρ ΡΠ°ΠΌΠΎ ΡΠ΅Π·Π³ΡΠΎ ΡΠ°Π΄ΡΠΆΠΈ ΠΎΠ³ΡΠΎΠΌΠ½Ρ ΠΊΠΎΠ»ΠΈΡΠΈΠ½Ρ ΠΊΠΎΠ΄Π°, ΠΎΡΡΠ°Π²ΡΠ°ΡΡΡΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΎΠ³ ΠΏΡΠΎΡΡΠΎΡΠ° Linux ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΡ
ΠΏΠΎΠ·ΠΈΠ²Π° Ρ C Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠ° ΠΊΠ°ΠΎ ΡΡΠΎ ΡΡ glibc. ΠΠ΅Π΄Π°Π½ ΠΎΠ΄ Π½Π°ΡΠΈΠ½Π° Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ Π½Π°ΠΏΡΠ΅Π΄Π°ΠΊ ΡΠ΅ ΡΠΈΡΠ°ΡΠ΅ ΠΈΠ·Π²ΠΎΡΠ½ΠΎΠ³ ΠΊΠΎΠ΄Π° ΡΠ΅Π΄Π½ΠΎΠ³ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅Π·Π³ΡΠ°, ΡΠ° Π½Π°Π³Π»Π°ΡΠΊΠΎΠΌ Π½Π° ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΡ
ΠΏΠΎΠ·ΠΈΠ²Π° ΠΈ Π·Π°Π³Π»Π°Π²ΡΠ° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΎΠ³ ΠΏΡΠΎΡΡΠΎΡΠ°, ΠΊΠ°ΠΎ ΠΈ Π³Π»Π°Π²Π½ΠΈΡ
ΠΈΠ½ΡΠ΅ΡΠ½ΠΈΡ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠ° ΠΊΠ΅ΡΠ½Π΅Π»Π°, ΠΊΠ°ΠΎ ΡΡΠΎ ΡΠ΅ ΡΠ°Π±Π΅Π»Π° file_operations. ΠΠΏΠ΅ΡΠ°ΡΠΈΡΠ΅ ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΠΌΠ° ΠΏΡΡΠΆΠ°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ βΡΠ²Π΅ ΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°β, ΡΡΠΎ ΠΈΡ
ΡΠΈΠ½ΠΈ ΠΏΠΎΡΠ΅Π±Π½ΠΎ ΠΏΡΠΈΡΠ°ΡΠ½ΠΈΠΌ Π·Π° ΡΠΏΡΠ°Π²ΡΠ°ΡΠ΅. ΠΠ·Π²ΠΎΡΠ½Π΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ Π¦ ΠΊΠ΅ΡΠ½Π΅Π»Π° Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠΌΡ Π½Π°ΡΠ²ΠΈΡΠ΅Π³ Π½ΠΈΠ²ΠΎΠ° fs/ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ°ΡΡ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ Π²ΠΈΡΡΡΠ΅Π»Π½ΠΈΡ
ΡΠ°ΡΠ» ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΈ ΡΡ ΠΎΠΌΠΎΡΠ°ΡΠΊΠΈ ΡΠ»ΠΎΡ ΠΊΠΎΡΠΈ ΠΏΡΡΠΆΠ° ΡΠΈΡΠΎΠΊΡ ΠΈ ΡΠ΅Π»Π°ΡΠΈΠ²Π½ΠΎ ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½Ρ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡ ΠΈΠ·ΠΌΠ΅ΡΡ ΠΏΠΎΠΏΡΠ»Π°ΡΠ½ΠΈΡ
ΡΠ°ΡΠ» ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΡΡΠ΅ΡΠ°ΡΠ° Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠ΅. ΠΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ ΡΠ° ΠΏΠΎΠ²Π΅Π·ΠΈΠ²Π°ΡΠ΅ΠΌ ΠΈ ΠΏΡΠ΅ΠΊΠ»Π°ΠΏΠ°ΡΠ΅ΠΌ ΠΏΡΡΠ΅ΠΌ ΠΈΠΌΠ΅Π½ΡΠΊΠΎΠ³ ΠΏΡΠΎΡΡΠΎΡΠ° Linux β ΡΠ΅ ΠΌΠ°Π³ΠΈΡΠ° VFS-Π° ΠΊΠΎΡΠ° ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΠΈ ΠΊΠΎΡΠ΅Π½ΡΠΊΠΈΡ
ΡΠ°ΡΠ» ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°ΠΌΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅. Π£ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΠΈ ΡΠ° ΠΏΡΠΎΡΡΠ°Π²Π°ΡΠ΅ΠΌ ΠΈΠ·Π²ΠΎΡΠ½ΠΎΠ³ ΠΊΠΎΠ΄Π°, eBPF Π°Π»Π°ΡΠ° Π·Π° ΡΠ΅Π·Π³ΡΠΎ ΠΈ ΡΠ΅Π³ΠΎΠ²ΠΎΠ³ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠ° bcc
ΡΠΈΠ½Π΅ΡΠΈ ΠΈΡΡΡΠ°ΠΆΠΈΠ²Π°ΡΠ΅ ΡΠ΅Π·Π³ΡΠ° Π»Π°ΠΊΡΠΈΠΌ Π½Π΅Π³ΠΎ ΠΈΠΊΠ°Π΄.
ΠΡΠΈΡΠ°ΡΠ΅ΡΠΈ, ΡΠ°Π²ΠΈΡΠ΅ ΠΌΠΈ Π΄Π° Π»ΠΈ Π²Π°ΠΌ ΡΠ΅ ΠΎΠ²Π°Ρ ΡΠ»Π°Π½Π°ΠΊ Π±ΠΈΠΎ ΠΎΠ΄ ΠΏΠΎΠΌΠΎΡΠΈ. ΠΠΎΠΆΠ΄Π° ΠΈΠΌΠ°ΡΠ΅ Π½Π΅ΠΊΠ΅ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠ΅ ΠΈΠ»ΠΈ ΡΡΠ³Π΅ΡΡΠΈΡΠ΅? Π Π·Π° ΠΎΠ½Π΅ ΠΊΠΎΡΠΈ ΡΡ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½ΠΈ Π·Π° ΠΊΡΡΡ βΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡβ, Linuxβ, ΠΏΠΎΠ·ΠΈΠ²Π°ΠΌΠΎ Π²Π°Ρ Π΄Π° , ΠΊΠΎΡΠΈ ΡΠ΅ ΡΠ΅ ΠΎΠ΄ΡΠΆΠ°ΡΠΈ 18. Π°ΠΏΡΠΈΠ»Π°.
ΠΠ·Π²ΠΎΡ: Π²Π²Π².Ρ
Π°Π±Ρ.ΡΠΎΠΌ
