рд▓рд┐рдирдХреНрд╕ рд╡рд░реНрдЪреБрдЕрд▓ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо: рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ рдФрд░ рд╡реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ? рднрд╛рдЧ реи

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░, рд╣рдо рдЖрдкрдХреЗ рд╕рд╛рде рдкреНрд░рдХрд╛рд╢рди рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ "рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо: рд╕рд╛рдЭрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ рдФрд░ рд╡реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ?" рдкрд╣рд▓рд╛ рднрд╛рдЧ рдпрд╣рд╛рдБ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреА рдпрд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд▓рд┐рдирдХреНрд╕ рдкреНрд░рд╢рд╛рд╕рдХ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рдПрдХ рдирдП рд╕реВрддреНрд░ рдХреЗ рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИ, рдЬреЛ рдмрд╣реБрдд рдЬрд▓реНрдж рд╢реБрд░реВ рд╣реЛрдЧреАред

VFS рдХреЛ EBPF рдФрд░ bcc рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рджреЗрдЦреЗрдВ

рдпрд╣ рд╕рдордЭрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдХрд░реНрдиреЗрд▓ sysfs рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рджреЗрдЦрдирд╛ рд╣реИ, рдФрд░ ARM64 рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ, EBPF рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред EBPF (рдмрд░реНрдХрд▓реЗ рдкреИрдХреЗрдЯ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯрд╛) рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ query рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрд░реНрдиреЗрд▓ рд╕реНрд░реЛрдд рдкрд╛рдардХ рдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХрд░реНрдиреЗрд▓ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ; рд╡реНрдпрд╕реНрдд рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ eBPF рдЯреВрд▓ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдХрд░реНрдиреЗрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред



рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдИрдПрдХреНрд╕рдкреАрдПрдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдмреАрд╕реАрд╕реА рдЯреВрд▓реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рд╕реЗ рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рдФрд░ рдмрд░реНрдирд╛рд░реНрдб рдЧреНрд░реАрдЧ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИрдВред bcc рдЙрдкрдХрд░рдг рдЫреЛрдЯреЗ C рдХреЛрдб рдЖрд╡реЗрд╖рдг рдХреЗ рд╕рд╛рде рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЬреЛ рднреА рджреЛрдиреЛрдВ рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред bcc/tools рдореЗрдВ 80 рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░ рдпрд╛ рд╕рд┐рд╕реНрдЯрдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдХреБрдЫ рдЪреБрди рдкрд╛рдПрдВрдЧреЗред

рдЪрд▓ рд░рд╣реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░ VFS рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рднреА рд╕рддрд╣реА рд╡рд┐рдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, vfscount рдпрд╛ vfsstat ред рдпрд╣ рджрд┐рдЦрд╛рдПрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐ vfs_open() рдФрд░ "рдЙрд╕рдХреЗ рджреЛрд╕реНрддреЛрдВ" рдХреЛ рджрд░реНрдЬрдиреЛрдВ рдХреЙрд▓ рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рд╕реЗ рд╣рд░ vfs_open() рд╣реЛрддреЗ рд╣реИрдВред



vfsstat.py , C рдХреЛрдб рдЖрд╡реЗрд╖рдг рдХреЗ рд╕рд╛рде рдПрдХ рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ VFS рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред


рд╣рдо рдПрдХ рдЕрдзрд┐рдХ рддреБрдЪреНрдЫ рдЙрджрд╛рд╣рд░рдг рджреЗрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм рд╣рдо рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рдпреВрдПрд╕рдмреА рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИред



EBPF рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ USB рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдбрд╛рд▓рдиреЗ рдкрд░ /sys рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рд╕рд░рд▓ рдФрд░ рдЬрдЯрд┐рд▓ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, sysfs_create_files() рдХрдорд╛рдВрдб sysfs_create_files() bcc рдЯреВрд▓ рдЯреНрд░реЗрд╕рд╣реЛрдо рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдлрд╝реНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдХреЗ рдбрд╛рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ kworker рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ sysfs_create_files() рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХреМрди рд╕реА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЧрдИ рдереА? рджреВрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг eBPF рдХреА рдкреВрд░реНрдг рд╢рдХреНрддрд┐ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдВ trace.py рдХрд░реНрдиреЗрд▓ рдмреИрдХрдЯреНрд░реЗрд╕ ( trace.py рд╡рд┐рдХрд▓реНрдк) рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ sysfs_create_files() рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдереАред рдПрдХрд▓ рдХрдерди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ C рдХреЛрдб рд╣реИ рдЬрд┐рд╕рдореЗрдВ Python рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ LLVM рдХреЛ рд╕рд┐рд░реНрдл-рдЗрди-рдЯрд╛рдЗрдо рд╕рдВрдХрд▓рдХ рдЪрд▓рд╛рддрд╛ рд╣реИред рд╡рд╣ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдХрд░реНрдиреЗрд▓ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред sysfs_create_files () рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкреВрд░реНрдг рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рджреВрд╕рд░реА рдХрдорд╛рдВрдб рдореЗрдВ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХреЗред рдЗрд╕ рд╕реА рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкрд╣рдЪрд╛рдирдиреЗ рдпреЛрдЧреНрдп рд╕реА рд╕рдВрдХрд▓рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХрд░рддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк -l рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ "рдмреАрдкреАрдПрдл рдкрд╛рда рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ред" рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬреЛ C рдФрд░ рдкрд╛рдпрдерди рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ bcc рдЯреВрд▓ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рдФрд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд▓рдЧреЗрдЧрд╛ред

рдЬрдм USB рдбреНрд░рд╛рдЗрд╡ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдХрд░реНрдиреЗрд▓ kworker рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ PID 7711 kworker рд╕реНрдЯреНрд░реАрдо рд╣реИ рдЬрд┐рд╕рдиреЗ ┬лevents┬╗ рдлрд╝рд╛рдЗрд▓ рдХреЛ sysfs ред рддрджрдиреБрд╕рд╛рд░, sysfs_remove_files() рд╕рд╛рде рдПрдХ рдХреЙрд▓ рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рдбреНрд░рд╛рдЗрд╡ рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ events рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ events , рдЬреЛ рд╕рдВрджрд░реНрдн рдЧрд┐рдирддреА рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдЙрд╕реА рд╕рдордп, USB рдбреНрд░рд╛рдЗрд╡ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп eBPF рдХреЗ рд╕рд╛рде sysfs_create_link () рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдХрдо рд╕реЗ рдХрдо 48 рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред

рддреЛ рдШрдЯрдирд╛рдУрдВ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрд░реНрде рдХреНрдпрд╛ рд╣реИ? __Device_add_disk () рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП cscope рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ disk_add_events () рдХреЙрд▓ disk_add_events () , рдФрд░ рдпрд╛ рддреЛ "media_change" рдпрд╛ "eject_request" рдХреЛ рдИрд╡реЗрдВрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдБ, рдХрд░реНрдиреЗрд▓ рдмреНрд▓реЙрдХ рд▓реЗрдпрд░ "рдбрд┐рд╕реНрдХ" рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖рдг рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд╢реЛрдз рд╡рд┐рдзрд┐ рдпреВрдПрд╕рдмреА рдбреНрд░рд╛рдЗрд╡ рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдХрд┐рддрдиреА рдЙрдкрдпреЛрдЧреА рд╣реИ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реНрд░реЛрдд рд╕реЗред

рдХреЗрд╡рд▓-рд░реВрдЯ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдПрдореНрдмреЗрдбреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ

рдмреЗрд╢рдХ, рдХреЛрдИ рднреА рд╕рд░реНрд╡рд░ рдпрд╛ рдЙрдирдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдмрдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЖрдЙрдЯрд▓реЗрдЯ рд╕реЗ рдкреНрд▓рдЧ рдЦреАрдВрдЪ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ? рдФрд░ рд╕рднреА рдХреНрдпреЛрдВрдХрд┐ рднреМрддрд┐рдХ рднрдВрдбрд╛рд░рдг рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдШреБрдбрд╝рд╕рд╡рд╛рд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓рдВрдмрд┐рдд рд░рд┐рдХреЙрд░реНрдб рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдЬреЛ рдЙрдирдХреЗ рд░рд╛рдЬреНрдп рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреА рд╣реИрдВ, рднрдВрдбрд╛рд░рдг рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рдЬрдм рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рд╕рд┐рд╕реНрдЯрдо рдорд╛рд▓рд┐рдХреЛрдВ рдХреЛ fsck filesystem-recovery рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рдмреВрдЯ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдФрд░, рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдбреЗрдЯрд╛ рдЦреЛ рджреЗрддреЗ рд╣реИрдВред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХрдИ IoT рдбрд┐рд╡рд╛рдЗрд╕, рд╕рд╛рде рд╣реА рд░рд╛рдЙрдЯрд░, рдерд░реНрдореЛрд╕реНрдЯреИрдЯ рдФрд░ рдХрд╛рд░реЗрдВ рдЕрдм рд▓рд┐рдирдХреНрд╕ рдЪрд▓ рд░рд╣реА рд╣реИрдВред рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдХрдИ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЙрдиреНрд╣реЗрдВ "рд╕рд╛рдл" рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдПрдХ рдбрд┐рд╕реНрдЪрд╛рд░реНрдЬ рдмреИрдЯрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ, рдЬрдм рд▓рд┐рдирдХреНрд╕ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдЙрдкрдХрд░рдг рдХреА рд╢рдХреНрддрд┐ рд▓рдЧрд╛рддрд╛рд░ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рдХреВрджрддреА рд╣реИред рдпрд╣ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЗрдВрдЬрди рдЖрдЦрд┐рд░рдХрд╛рд░ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ рддреЛ рд╕рд┐рд╕реНрдЯрдо рд▓рдВрдмреА fsck рдмрд┐рдирд╛ рдмреВрдЯ рд╣реЛрддрд╛ рд╣реИ? рдФрд░ рдЬрд╡рд╛рдм рдЖрд╕рд╛рди рд╣реИред рдПрдВрдмреЗрдбреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рд░реАрдб-рдУрдирд▓реА рд░реВрдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо (рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдореЗрдВ ro-rootfs (рд░реАрдб-рдУрдирд▓реА рд░реВрдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо)) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред

ro-rootfs рдХрдИ рд▓рд╛рдн рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реЗ рдХрдо рд╕реНрдкрд╖реНрдЯ рд╣реЛрддреЗ рд╣реИрдВред рдПрдХ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рд▓рд┐рдирдХреНрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреА рд╣реИ рддреЛ рдореИрд▓рд╡реЗрдпрд░ /usr /lib рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдФрд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рджреВрд░рджрд░рд╛рдЬ рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреНрд╖реЗрддреНрд░ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╣рдж рддрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд╣рд╛рдпрдХ рдХрд░реНрдордЪрд╛рд░реА рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╣реИрдВред рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг (рд▓реЗрдХрд┐рди рдпрд╣ рднреА рд╕рдмрд╕реЗ рдХрдкрдЯреА) рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЖрд░рдУ-рд░реВрдЯрдлреЙрдлрд╝ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдЪрд░рдг рдореЗрдВ рдХреМрди рд╕реА рд╕рд┐рд╕реНрдЯрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣реЗрдВрдЧреЗред рд░реЛ-рд░реВрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рджрд░реНрджрдирд╛рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдХреНрд╕рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдХреЙрдиреНрд╕реНрдЯреЗрдмрд▓ рдЪрд░ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рд▓рд╛рдн рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдУрд╡рд░рд╣реЗрдб рдХреЛ рдХрд╡рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

rootfs рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдореНрдмреЗрдбреЗрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдпрд╣реА рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рд╡реАрдПрдлрдПрд╕ рджреГрд╢реНрдп рдкрд░ рдЖрддрд╛ рд╣реИред рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓реЗрдВ /var рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реЛ, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рд▓реЛрдХрдкреНрд░рд┐рдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди $HOME рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди dot-files рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред рд╣реЛрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЖрдорддреМрд░ рдкрд░ rootfs рдореЗрдВ рдЙрдирдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреАрдврд╝реА рдФрд░ рдЕрд╕реЗрдВрдмрд▓реА рд╣реИред /var рд╕рдВрднрд╡ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдХрд┐ рд▓реЗрдЦрди рдпреЛрдЧреНрдп рд╣реИ, рдЬрдмрдХрд┐ / рдорд╛рдЙрдВрдЯ рд╕реНрд╡рдпрдВ рд░реАрдб-рдУрдирд▓реА рд╣реИред рдПрдХ рдЕрдиреНрдп рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рдХрд▓реНрдк рдмрд╛рдЗрдВрдб рдпрд╛ рдУрд╡рд░рд▓реЗ рдорд╛рдЙрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

рдЬреЛрдбрд╝рдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЕрддрд┐рд╡реНрдпрд╛рдкреА рдорд╛рдЙрдВрдЯ, рдХрдВрдЯреЗрдирд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ

man mount рдХрдорд╛рдВрдб рдЪрд▓рд╛рдирд╛ рдореИрдкреНрдб рдФрд░ рд╕реБрдкрд░рдЗрдореНрдкреЛрдЬрд╝реНрдб рдорд╛рдЙрдВрдЯреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдХреЛ рдПрдХ рддрд░рд╣ рд╕реЗ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рджреВрд╕рд░реЗ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд░реАрдб-рдУрдирд▓реА рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдкрд░ /var рдореЗрдВ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛, рд▓реЗрдХрд┐рди рдмреВрдЯ рдкрд░ tmpfs рд╕реЗ /var рддрдХ рдХреЗ рд░рд╛рд╕реНрддреЗ рдХреЛ tmpfs рдпрд╛ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд╣рд╛рдВ рдиреЛрдЯреНрд╕ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреА (рд╕реНрдХреНрд░реИрд╡рд▓)ред рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдЖрдк рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ /var рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдЦреЛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рдУрд╡рд░рд▓реИрдб рдорд╛рдЙрдВрдЯ tmpfs рдФрд░ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдВрдШ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ ro-tootf рдореЗрдВ рдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХрдерд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдПрдХ рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдорд╛рдЙрдВрдЯ рдирдП рдЦрд╛рд▓реА tmpfs рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЛ ro-rootfs рдкрдереЛрдВ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдпреЛрдЧреНрдп ro-rootfs рд╣реИред рдЬрдмрдХрд┐ overlayfs рдПрдХ proper рдкреНрд░рдХрд╛рд░ рдХреА рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рд╣реИ, VFS рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдорд╛рдЙрдВрдЯ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред

рд╕реБрдкрд░рд┐рдореНрдкреЛрдЬрд╝ рдФрд░ рд▓рд┐рдВрдХреНрдб рдорд╛рдЙрдВрдЯ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдХреЛрдИ рднреА рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдХрдВрдЯреЗрдирд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП bcc mountsnoop рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП systemd-nspawn рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред



mountsnoop.py рдЬрдмрдХрд┐ mountsnoop.py system-nspawn рд▓рд┐рдП рдХреЙрд▓ рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рдХрд░рддрд╛ mountsnoop.py ред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХреНрдпрд╛ рд╣реБрдЖ:



рдХрдВрдЯреЗрдирд░ "рдмреВрдЯ" рдХреЗ рджреМрд░рд╛рди mountsnoop рдЪрд▓рд╛рдирд╛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрдВрдЯреЗрдирд░ рд░рдирдЯрд╛рдЗрдо рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдЙрдВрдЯ рдкрд░ рдЕрддреНрдпрдзрд┐рдХ рдирд┐рд░реНрднрд░ рд╣реИ (рдХреЗрд╡рд▓ рд▓рдВрдмреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреА рд╢реБрд░реБрдЖрдд рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИ)ред

рдпрд╣рд╛рдВ, systemd-nspawn рдореЗрдЬрдмрд╛рди рдХреЗ procfs рдФрд░ sysfs рдореЗрдВ рдЪрдпрдирд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЙрд╕рдХреЗ rootfs рд▓рд┐рдП рдкрде рдХреЗ рд░реВрдк рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред MS_BIND рдзреНрд╡рдЬ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреЛ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдорд╛рдЙрдВрдЯ рдХреЛ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдорд╛рдЙрдВрдЯреЗрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреБрдЫ рдЕрдиреНрдп рдЭрдВрдбреЗ рдореЗрдЬрдмрд╛рди рдирд╛рдо рд╕реНрдерд╛рди рдФрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдорд╛рдЙрдВрдЯ рдпрд╛ рддреЛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ /proc рдФрд░ /sys рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдХреЙрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдиреНрд╣реЗрдВ рдЫрд┐рдкрд╛ рд╕рдХрддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖

рд▓рд┐рдирдХреНрд╕ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдирд╛ рдПрдХ рдЕрд╕рдВрднрд╡ рдХрд╛рд░реНрдп рдХреА рддрд░рд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рд╣реА рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХреЛрдб рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд▓рд┐рдирдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдкреЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ glibc ред рдкреНрд░рдЧрддрд┐ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдХрд░реНрдиреЗрд▓ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рдкрд░ рдЬреЛрд░ рджрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рд╣реЗрдбрд░ рдХреЛ рдпреВрдЬрд░ рд╕реНрдкреЗрд╕ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ file_operations , рд╕рд╛рде рд╣реА рдореБрдЦреНрдп рдЖрдВрддрд░рд┐рдХ рдХрд░реНрдиреЗрд▓ рдЗрдВрдЯрд░рдлреЗрд╕, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, file_operations рдЯреЗрдмрд▓ред рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЪрд╛рд▓рди "рд╕рдм рдХреБрдЫ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ" рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред C рд╕реНрд░реЛрдд рдХрд░реНрдиреЗрд▓ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ fs/ рд╡рд░реНрдЪреБрдЕрд▓ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИрдВ, рдЬреЛ рдПрдХ рд╢реЗрд▓ рд▓реЗрдпрд░ рд╣реИрдВ рдЬреЛ рд▓реЛрдХрдкреНрд░рд┐рдп рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рд╕реНрдЯреЛрд░реЗрдЬ рдбрд┐рд╡рд╛рдЗрд╕реЗрд╕ рдХреА рд╡рд┐рд╕реНрддреГрдд рдФрд░ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рд╕рдВрдЧрддрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред рд▓рд┐рдирдХреНрд╕ рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдФрд░ рдУрд╡рд░рд▓реЗрдЗрдВрдЧ рдХреЗ рд╕рд╛рде рдмрдврд╝рддреЗ рд╣реБрдП VFS рдореИрдЬрд┐рдХ рд╣реИ рдЬреЛ рд░реАрдб-рдУрдирд▓реА рдХрдВрдЯреЗрдирд░ рдФрд░ рд░реВрдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рд╕реЛрд░реНрд╕ рдХреЛрдб рд▓рд░реНрдирд┐рдВрдЧ, eBPF рдХреЛрд░ рдЯреВрд▓ рдФрд░ рдЗрд╕рдХреЗ bcc рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд
рдХрд░реНрдиреЗрд▓ рдЕрдиреБрд╕рдВрдзрд╛рди рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛рдПрдВред

рджреЛрд╕реНрддреЛрдВ, рдЗрд╕ рд▓реЗрдЦ рдХреЛ рд▓рд┐рдЦрдирд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдерд╛? рд╢рд╛рдпрдж рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдпрд╛ рдЯрд┐рдкреНрдкрдгреА рд╣реИ? рдФрд░ рдЬреЛ рд▓реЛрдЧ рд▓рд┐рдирдХреНрд╕ рдкреНрд░рд╢рд╛рд╕рдХ рдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд╣рдо рдЖрдкрдХреЛ рдШрд░ рдХрд╛ рджрд┐рди рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ , рдЬреЛ 18 рдЕрдкреНрд░реИрд▓ рдХреЛ рд╣реЛрдЧрд╛ред

рдкрд╣рд▓рд╛ рднрд╛рдЧред

Source: https://habr.com/ru/post/hi447748/


All Articles