ΠΠ΄ΡΠ°Π²ΠΎ ΡΠ²ΠΈΠΌΠ°, ΡΠ° Π²Π°ΠΌΠ° Π΄Π΅Π»ΠΈΠΌΠΎ Π΄ΡΡΠ³ΠΈ Π΄Π΅ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡΠ΅ βΠΠΈΡΡΡΠ΅Π»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° Ρ ΠΠΈΠ½ΡΠΊΡ: Π·Π°ΡΡΠΎ ΡΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ ΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡ?β ΠΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΠΈ ΠΏΡΠ²ΠΈ Π΄Π΅ΠΎ
ΠΠ°ΠΊΠΎ ΠΏΡΠ°ΡΠΈΡΠΈ ΠΠ€Π‘ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠΈ Π΅ΠΠΠ€ ΠΈ Π±ΡΡ Π°Π»Π°ΡΠ΅
ΠΠ°ΡΠ»Π°ΠΊΡΠΈ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ°Π·ΡΠΌΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠΎ ΠΊΠ΅ΡΠ½Π΅Π» ΡΠ°Π΄ΠΈ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΠΌΠ° 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
ΠΈ, Ρ Π½Π°ΡΠ³ΠΎΡΠ΅ΠΌ ΡΠ»ΡΡΠ°ΡΡ, Π³ΡΠ±ΠΈΡΠ°ΠΊ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ°.
ΠΠ΅ΡΡΡΠΈΠΌ, ΡΠ²ΠΈ Π·Π½Π°ΠΌΠΎ Π΄Π° ΠΌΠ½ΠΎΠ³ΠΈ ΠΠΎΠ’ ΡΡΠ΅ΡΠ°ΡΠΈ, ΠΊΠ°ΠΎ ΠΈ ΡΡΡΠ΅ΡΠΈ, ΡΠ΅ΡΠΌΠΎΡΡΠ°ΡΠΈ ΠΈ Π°ΡΡΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ, ΡΠ°Π΄Π° ΠΏΠΎΠΊΡΠ΅ΡΡ ΠΠΈΠ½ΡΠΊ. ΠΠ½ΠΎΠ³ΠΈ ΠΎΠ΄ ΠΎΠ²ΠΈΡ
ΡΡΠ΅ΡΠ°ΡΠ° ΠΈΠΌΠ°ΡΡ ΠΌΠ°Π»ΠΎ ΠΈΠ»ΠΈ Π½ΠΈΠΌΠ°Π»ΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΎΠ³ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠ° ΠΈ Π½Π΅ ΠΏΠΎΡΡΠΎΡΠΈ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ ΠΈΡΠΊΡΡΡΠ΅ βΡΠΈΡΡΠΎβ. ΠΠ°ΠΌΠΈΡΠ»ΠΈΡΠ΅ Π΄Π° ΠΏΠΎΠΊΡΠ΅Π½Π΅ΡΠ΅ Π°ΡΡΠΎΠΌΠΎΠ±ΠΈΠ» ΡΠ° ΠΈΡΡΡΠΎΡΠ΅Π½ΠΈΠΌ Π°ΠΊΡΠΌΡΠ»Π°ΡΠΎΡΠΎΠΌ ΠΊΠ°Π΄Π° ΡΠ΅ Π½Π°ΠΏΠ°ΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π΅ ΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ fsck
ΠΊΠ°Π΄Π° ΠΌΠΎΡΠΎΡ ΠΊΠΎΠ½Π°ΡΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ΅ Π΄Π° ΡΠ°Π΄ΠΈ? Π ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ ΡΠ΅ ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π°Π½. Π£Π³ΡΠ°ΡΠ΅Π½ΠΈ ΡΡΠ΅ΡΠ°ΡΠΈ ΡΠ΅ ΠΎΡΠ»Π°ΡΠ°ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ro-rootfs
(ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΠ°ΡΠ» ΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΌΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅)).
ro-rootfs
Π½ΡΠ΄Π΅ ΠΌΠ½ΠΎΠ³Π΅ ΠΏΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΠΊΠΎΡΠ΅ ΡΡ ΠΌΠ°ΡΠ΅ ΠΎΡΠΈΠ³Π»Π΅Π΄Π½Π΅ ΠΎΠ΄ Π°ΡΡΠ΅Π½ΡΠΈΡΠ½ΠΎΡΡΠΈ. ΠΠ΅Π΄Π½Π° ΠΎΠ΄ ΠΏΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΡΠ΅ ΡΡΠΎ Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ½ΠΈ ΡΠΎΡΡΠ²Π΅Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΈΡΠ΅ /usr
ΠΈΠ»ΠΈ /lib
, Π°ΠΊΠΎ Π½ΠΈΡΠ΅Π΄Π°Π½ ΠΠΈΠ½ΡΠΊ ΠΏΡΠΎΡΠ΅Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΏΠΈΡΠ΅ ΡΠ°ΠΌΠΎ. ΠΡΡΠ³ΠΈ ΡΠ΅ Π΄Π° ΡΠ΅ ΡΠ³Π»Π°Π²Π½ΠΎΠΌ Π½Π΅ΠΏΡΠΎΠΌΠ΅Π½ΡΠΈΠ² ΡΠΈΡΡΠ΅ΠΌ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΊΡΠΈΡΠΈΡΠ°Π½ Π·Π° ΡΠ΅ΡΠ΅Π½ΡΠΊΡ ΠΏΠΎΠ΄ΡΡΠΊΡ ΡΠ΄Π°ΡΠ΅Π½ΠΈΠΌ ΡΡΠ΅ΡΠ°ΡΠΈΠΌΠ°, ΠΏΠΎΡΡΠΎ ΡΠ΅ ΠΎΡΠΎΠ±ΡΠ΅ Π·Π° ΠΏΠΎΠ΄ΡΡΠΊΡ ΠΎΡΠ»Π°ΡΠ° Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π΅ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΡΠΈ ΡΡ Π½ΠΎΠΌΠΈΠ½Π°Π»Π½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈΠΌΠ° Π½Π° ΡΠ΅ΡΠ΅Π½Ρ. ΠΠΎΠΆΠ΄Π° ΡΠ΅ Π½Π°ΡΠ²Π°ΠΆΠ½ΠΈΡΠ° (Π°Π»ΠΈ ΠΈ Π½Π°ΡΠΏΠΎΠ΄ΠΌΡΠΊΠ»Π°) ΠΏΡΠ΅Π΄Π½ΠΎΡΡ ΡΠΎ ΡΡΠΎ ΡΠΎ-ΡΠΎΠΎΡΡΡ ΠΏΡΠΈΠΌΠΎΡΠ°Π²Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠ΅ Π΄Π° ΠΎΠ΄Π»ΡΡΠ΅ ΠΊΠΎΡΠΈ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΈ ΡΠ΅ Π±ΠΈΡΠΈ Π½Π΅ΠΏΡΠΎΠΌΠ΅Π½ΡΠΈΠ²ΠΈ Ρ ΡΠ°Π·ΠΈ ΠΏΡΠΎΡΠ΅ΠΊΡΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. Π Π°Π΄ ΡΠ° ΡΠΎ-ΡΠΎΠΎΡΡ-ΠΎΠ²ΠΈΠΌΠ° ΠΌΠΎΠΆΠ΅ Π±ΠΈΡΠΈ Π½Π΅Π·Π³ΠΎΠ΄Π°Π½ ΠΈ Π±ΠΎΠ»Π°Π½, ΡΠ΅Ρ ΡΡ ΡΠΎΠ½ΡΡ Π²Π°ΡΠΈΡΠ°Π±Π»Π΅ ΡΠ΅ΡΡΠΎ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈΠΌ ΡΠ΅Π·ΠΈΡΠΈΠΌΠ°, Π°Π»ΠΈ ΡΠΈΡ
ΠΎΠ²Π΅ ΠΏΡΠ΅Π΄Π½ΠΎΡΡΠΈ Π»Π°ΠΊΠΎ ΠΎΠΏΡΠ°Π²Π΄Π°Π²Π°ΡΡ Π΄ΠΎΠ΄Π°ΡΠ½Π΅ ΡΡΠΎΡΠΊΠΎΠ²Π΅.
ΡΡΠ²Π°ΡΠ°ΡΠ΅ rootfs
Π‘Π°ΠΌΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅ ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π°Π½ Π΄ΠΎΠ΄Π°ΡΠ½ΠΈ Π½Π°ΠΏΠΎΡ Π·Π° ΡΠ³ΡΠ°ΡΠ΅Π½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠ΅, ΠΈ ΡΡ ΡΠ΅ ΠΏΠΎΡΠ°Π²ΡΡΡΠ΅ ΠΠ€Π‘. ΠΠΈΠ½ΡΠΊ Π·Π°Ρ
ΡΠ΅Π²Π° Π΄Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ Π±ΡΠ΄Ρ ΡΠ½ΡΡΡΠ° /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
Ρ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈΠ»ΠΈ ΠΈΡ
ΡΠ°ΠΊΡΠΈΡΡΠ΅ Ρ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ ΠΎΠ΄ ΠΏΠΎΠ·ΠΈΠ²Π°.
ΠΠ°ΠΊΡΡΡΠ°ΠΊ
Π Π°Π·ΡΠΌΠ΅Π²Π°ΡΠ΅ ΡΠ½ΡΡΡΠ°ΡΡΠ΅Π³ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°ΡΠ° ΠΠΈΠ½ΡΠΊ-Π° ΠΌΠΎΠΆΠ΅ ΠΈΠ·Π³Π»Π΅Π΄Π°ΡΠΈ ΠΊΠ°ΠΎ Π½Π΅ΠΌΠΎΠ³ΡΡ Π·Π°Π΄Π°ΡΠ°ΠΊ, ΠΏΠΎΡΡΠΎ ΡΠ°ΠΌΠΎ ΡΠ΅Π·Π³ΡΠΎ ΡΠ°Π΄ΡΠΆΠΈ ΠΎΠ³ΡΠΎΠΌΠ½Ρ ΠΊΠΎΠ»ΠΈΡΠΈΠ½Ρ ΠΊΠΎΠ΄Π°, ΠΎΡΡΠ°Π²ΡΠ°ΡΡΡΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ΅ ΠΠΈΠ½ΡΠΊ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΎΠ³ ΠΏΡΠΎΡΡΠΎΡΠ° ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΡ
ΠΏΠΎΠ·ΠΈΠ²Π° Ρ Π¦ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠ° ΠΊΠ°ΠΎ ΡΡΠΎ ΡΠ΅ Π½ΠΏΡ. glibc
. ΠΠ΅Π΄Π°Π½ ΠΎΠ΄ Π½Π°ΡΠΈΠ½Π° Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½Π΅ Π½Π°ΠΏΡΠ΅Π΄Π°ΠΊ ΡΠ΅ ΡΠΈΡΠ°ΡΠ΅ ΠΈΠ·Π²ΠΎΡΠ½ΠΎΠ³ ΠΊΠΎΠ΄Π° ΡΠ΅Π΄Π½ΠΎΠ³ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅Π·Π³ΡΠ°, ΡΠ° Π½Π°Π³Π»Π°ΡΠΊΠΎΠΌ Π½Π° ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΡ
ΠΏΠΎΠ·ΠΈΠ²Π° ΠΈ Π·Π°Π³Π»Π°Π²ΡΠ° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΎΠ³ ΠΏΡΠΎΡΡΠΎΡΠ°, ΠΊΠ°ΠΎ ΠΈ Π³Π»Π°Π²Π½ΠΈΡ
ΠΈΠ½ΡΠ΅ΡΠ½ΠΈΡ
ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠ° ΠΊΠ΅ΡΠ½Π΅Π»Π°, ΠΊΠ°ΠΎ ΡΡΠΎ ΡΠ΅ ΡΠ°Π±Π΅Π»Π° file_operations
. ΠΠΏΠ΅ΡΠ°ΡΠΈΡΠ΅ ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΠΌΠ° ΠΏΡΡΠΆΠ°ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ βΡΠ²Π΅ ΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°β, ΡΡΠΎ ΠΈΡ
ΡΠΈΠ½ΠΈ ΠΏΠΎΡΠ΅Π±Π½ΠΎ ΠΏΡΠΈΡΠ°ΡΠ½ΠΈΠΌ Π·Π° ΡΠΏΡΠ°Π²ΡΠ°ΡΠ΅. ΠΠ·Π²ΠΎΡΠ½Π΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ΅ Π¦ ΠΊΠ΅ΡΠ½Π΅Π»Π° Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡΠΌΡ Π½Π°ΡΠ²ΠΈΡΠ΅Π³ Π½ΠΈΠ²ΠΎΠ° fs/
ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ°ΡΡ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ Π²ΠΈΡΡΡΠ΅Π»Π½ΠΈΡ
ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΈ ΡΡ ΡΠ»ΠΎΡ ΠΎΠΌΠΎΡΠ°ΡΠ° ΠΊΠΎΡΠΈ ΠΎΠ±Π΅Π·Π±Π΅ΡΡΡΠ΅ ΡΠΈΡΠΎΠΊΡ ΠΈ ΡΠ΅Π»Π°ΡΠΈΠ²Π½ΠΎ ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½Ρ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡ ΠΈΠ·ΠΌΠ΅ΡΡ ΠΏΠΎΠΏΡΠ»Π°ΡΠ½ΠΈΡ
ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ° ΠΈ ΡΡΠ΅ΡΠ°ΡΠ° Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠ΅. ΠΠΎΠ²Π΅Π·ΠΈΠ²Π°ΡΠ΅ ΠΈ ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠ΅ΠΊΠ»Π°ΠΏΠ°ΡΠ° ΠΏΡΠ΅ΠΊΠΎ ΠΠΈΠ½ΡΠΊ ΠΈΠΌΠ΅Π½ΡΠΊΠΈΡ
ΠΏΡΠΎΡΡΠΎΡΠ° ΡΠ΅ ΠΌΠ°Π³ΠΈΡΠ° ΠΠ€Π‘-Π° ΠΊΠΎΡΠ° ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° ΡΠ°ΠΌΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅ ΠΈ ΡΠΎΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°. Π£ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΠΈ ΡΠ° ΠΏΡΠ΅Π³Π»Π΅Π΄ΠΎΠΌ ΠΈΠ·Π²ΠΎΡΠ½ΠΎΠ³ ΠΊΠΎΠ΄Π°, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ Π°Π»Π°ΡΠ° Π΅ΠΠΠ€-Π° ΠΈ ΡΠ΅Π³ΠΎΠ²ΠΎΠ³ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠ° bcc
ΡΠΈΠ½Π΅ΡΠΈ ΠΈΡΡΡΠ°ΠΆΠΈΠ²Π°ΡΠ΅ ΡΠ΅Π·Π³ΡΠ° Π»Π°ΠΊΡΠΈΠΌ Π½Π΅Π³ΠΎ ΠΈΠΊΠ°Π΄.
ΠΡΠΈΡΠ°ΡΠ΅ΡΠΈ, ΠΏΠΈΡΠΈΡΠ΅, Π΄Π° Π»ΠΈ Π²Π°ΠΌ ΡΠ΅ ΠΎΠ²Π°Ρ ΡΠ»Π°Π½Π°ΠΊ Π±ΠΈΠΎ ΠΊΠΎΡΠΈΡΡΠ°Π½? ΠΠΎΠΆΠ΄Π° ΠΈΠΌΠ°ΡΠ΅ Π½Π΅ΠΊΠΈ ΠΊΠΎΠΌΠ΅Π½ΡΠ°Ρ ΠΈΠ»ΠΈ ΠΏΡΠΈΠΌΠ΅Π΄Π±Ρ? Π ΠΎΠ½ΠΈ ΠΊΠΎΡΠΈ ΡΡ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½ΠΈ Π·Π° ΠΊΡΡΡ ΠΠΈΠ½ΡΠΊ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ° ΡΡ ΠΏΠΎΠ·Π²Π°Π½ΠΈ
ΠΠ·Π²ΠΎΡ: Π²Π²Π².Ρ
Π°Π±Ρ.ΡΠΎΠΌ