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

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

vfsstat.pyрд╕реА рдХреЛрдб рдЗрдВрд╕рд░реНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рд╡реАрдПрдлрдПрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреА рдЧрдгрдирд╛ рдХрд░рддреА рд╣реИред
рдЖрдЗрдП рдПрдХ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрджрд╛рд╣рд░рдг рджреЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЬрдм рд╣рдо рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рдпреВрдПрд╕рдмреА рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред

рдИрдмреАрдкреАрдПрдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ
/sysрдЬрдм USB рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд╕рд░рд▓ рдФрд░ рдЬрдЯрд┐рд▓ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ.
рдКрдкрд░ рджрд┐рдЦрд╛рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, bcc рд╕рд╛рдзрди рдХрдорд╛рдВрдб рдЪрд▓рдиреЗ рдкрд░ рдПрдХ рд╕рдВрджреЗрд╢ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ sysfs_create_files(). рд╣рдордиреЗ рджреЗрдЦрд╛ рдХрд┐ sysfs_create_files() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ kworker рдЗрд╕ рддрдереНрдп рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рдХрд░реЗрдВ рдХрд┐ рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдбрд╛рд▓реА рдЧрдИ рдереА, рд▓реЗрдХрд┐рди рдХреМрди рд╕реА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЧрдИ рдереА? рджреВрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг eBPF рдХреА рд╢рдХреНрддрд┐ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ trace.py рдПрдХ рдХрд░реНрдиреЗрд▓ рдмреИрдХрдЯреНрд░реЗрд╕ (-K рд╡рд┐рдХрд▓реНрдк) рдФрд░ рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИ sysfs_create_files(). рд╕рд┐рдВрдЧрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЗрдВрд╕рд░реНрд╢рди рд╕реА рдХреЛрдб рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрд▓рдПрд▓рд╡реАрдПрдо рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реА рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╣рдЪрд╛рдирдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд╕реНрдЯ-рдЗрди-рдЯрд╛рдЗрдо рдХрдВрдкрд╛рдЗрд▓рд░. рдпрд╣ рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд░реНрдиреЗрд▓ рдХреЗ рдЕрдВрджрд░ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдкреВрд░реНрдг рдХрд╛рд░реНрдп рд╣рд╕реНрддрд╛рдХреНрд╖рд░ sysfs_create_files () рджреВрд╕рд░реЗ рдХрдорд╛рдВрдб рдореЗрдВ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд┐рд╕реА рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░ рд╕рдХреЗред рд╕реА рдХреЛрдб рдХреЗ рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реА рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реЗ рдкрд╣рдЪрд╛рдирдиреЗ рдпреЛрдЧреНрдп рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ -l рдкреИрд░рд╛рдореАрдЯрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдк "рдмреАрдкреАрдПрдл рдкрд╛рда рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓" рджреЗрдЦреЗрдВрдЧреЗред рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реА рдФрд░ рдкрд╛рдпрдерди рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЯреВрд▓ рдорд┐рд▓ рдЬрд╛рдПрдВрдЧреЗ bcc рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдФрд░ рдмрджрд▓рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдЬрдм USB рдбреНрд░рд╛рдЗрд╡ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрд░реНрдиреЗрд▓ рдмреИрдХрдЯреНрд░реЗрд╕ рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ PID 7711 рдПрдХ рдереНрд░реЗрдб рд╣реИ kworkerрдЬрд┐рд╕рдиреЗ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ ┬лevents┬╗ ╨▓ sysfs. рддрджрдиреБрд╕рд╛рд░, рд╕реЗ рдХреЙрд▓ sysfs_remove_files() рдпрд╣ рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рдбреНрд░рд╛рдЗрд╡ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдлрд╝рд╛рдЗрд▓ рд╣рдЯрд╛ рджреА рдЧрдИ рд╣реИ events, рдЬреЛ рд╕рдВрджрд░реНрдн рдЧрдгрдирд╛ рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рд╕рд╛рде рд╣реА рджреЗрдЦ рднреА рд░рд╣реЗ рд╣реИрдВ sysfs_create_link () рдпреВрдПрд╕рдмреА рдбреНрд░рд╛рдЗрд╡ рдбрд╛рд▓рддреЗ рд╕рдордп рдИрдмреАрдкреАрдПрдл рдХреЗ рд╕рд╛рде рдпрд╣ рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рдХрдо рд╕реЗ рдХрдо 48 рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдВрдХ рдмрдирд╛рдП рдЧрдП рд╣реИрдВред
рддреЛ рдЗрд╡реЗрдВрдЯ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? рдкреНрд░рдпреЛрдЧ рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП , рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реИ disk_add_events (), рдФрд░ рдпрд╛ рддреЛ "media_change"рдпрд╛ "eject_request" рдЗрд╡реЗрдВрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рдпрд╣рд╛рдВ рдХрд░реНрдиреЗрд▓ рдмреНрд▓реЙрдХ рдкрд░рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдПрдХ "рдбрд┐рд╕реНрдХ" рдкреНрд░рдХрдЯ рд╣реБрдИ рд╣реИ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЧрдИ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпреВрдПрд╕рдмреА рдбреНрд░рд╛рдЗрд╡ рдбрд╛рд▓рдХрд░ рдпрд╣ рд╢реЛрдз рдкрджреНрдзрддрд┐ рдХрд┐рддрдиреА рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рд╣реИ, рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдЪреАрдЬреЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд░реЛрдд рд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред
рд░реАрдб-рдУрдирд▓реА рд░реВрдЯ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдПрдореНрдмреЗрдбреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ
рдмреЗрд╢рдХ, рдХреЛрдИ рднреА рд╕реЙрдХреЗрдЯ рд╕реЗ рдкреНрд▓рдЧ рдЦреАрдВрдЪрдХрд░ рд╕рд░реНрд╡рд░ рдпрд╛ рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рдмрдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВ? рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рднреМрддрд┐рдХ рднрдВрдбрд╛рд░рдг рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдорд╛рдЙрдВрдЯ рдХрд┐рдП рдЧрдП рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓реЗрдЦрди рдореЗрдВ рджреЗрд░реА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдЬреЛ рдЙрдирдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреА рд╣реИрдВ, рднрдВрдбрд╛рд░рдг рдореЗрдВ рд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЬрдм рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдорд╛рд▓рд┐рдХреЛрдВ рдХреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рдмреВрдЯ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред fsck filesystem-recovery рдФрд░, рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдбреЗрдЯрд╛ рдЦреЛрдирд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХрдИ рдЖрдИрдУрдЯреА рдбрд┐рд╡рд╛рдЗрд╕, рд╕рд╛рде рд╣реА рд░рд╛рдЙрдЯрд░, рдерд░реНрдореЛрд╕реНрдЯреЗрдЯ рдФрд░ рдХрд╛рд░реЗрдВ, рдЕрдм рдЗрд╕ рдкрд░ рдЪрд▓ рд░рд╣реА рд╣реИрдВред LinuxрдЗрдирдореЗрдВ рд╕реЗ рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд▓рдЧрднрдЧ рдХреЛрдИ рдпреВрдЬрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрдиреНрд╣реЗрдВ рдареАрдХ рд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдПрдХ рдРрд╕реА рдХрд╛рд░ рдХреЛ рд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рдирд╛ рдЬрд┐рд╕рдХреА рдмреИрдЯрд░реА рдбреЗрдб рд╣реЛ рдЧрдИ рд╣реЛ рдФрд░ рдХрдВрдЯреНрд░реЛрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдмрд┐рдЬрд▓реА рдХрдЯ рдЧрдИ рд╣реЛред рд▓рдЧрд╛рддрд╛рд░ рдКрдкрд░-рдиреАрдЪреЗ рдХреВрджрдирд╛ред рдРрд╕рд╛ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдмрд┐рдирд╛ рджреЗрд░ рдХрд┐рдП рдмреВрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ? fsckрдЖрдЦрд╝рд┐рд░ рдЗрдВрдЬрди рдХрдм рдЪрд▓рдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ? рдФрд░ рдЙрддреНрддрд░ рд╕рд░рд▓ рд╣реИ. рдПрдВрдмреЗрдбреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рд░реВрдЯ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрддреЗ рд╣реИрдВ (рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рдореЗрдВ) ro-rootfs (рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рд░реВрдЯ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо))ред
ro-rootfs рдХрдИ рд▓рд╛рдн рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рд╛рдорд╛рдгрд┐рдХрддрд╛ рд╕реЗ рдХрдо рд╕реНрдкрд╖реНрдЯ рд╣реИрдВред рдПрдХ рдлрд╛рдпрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореИрд▓рд╡реЗрдпрд░ рд▓рд┐рдЦ рдирд╣реАрдВ рд╕рдХрддрд╛ /usr рдпрд╛ /libрдпрджрд┐ рдХреЛрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИ Linux рдЗрд╕ рдкрд░ рд▓рд┐рдЦрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ред рдПрдХ рдФрд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рджреВрд░рд╕реНрде рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдлреАрд▓реНрдб рд╕рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдкреЛрд░реНрдЯ рдХрд░реНрдореА рд╕реНрдерд╛рдиреАрдп рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдирд╛рдордорд╛рддреНрд░ рд░реВрдк рд╕реЗ рдСрди-рд╕рд╛рдЗрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рдорд╛рди рд╣реЛрддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг (рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдХрдкрдЯрдкреВрд░реНрдг рднреА) рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ ro-rootfs рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд╢реБрд░реБрдЖрддреА рдЪрд░рдг рдореЗрдВ рд╣реА рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реЛрдВрдЧреЗред ro-rootfs рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдХрд╖реНрдЯрджрд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдХреНрд╕рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ const рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд╛рдн рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рдЧрдд рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рд╣реИрдВред
рд╕реГрдЬрди 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. рдлрд╝рд╛рдЗрд▓ рд╕рдВрдЪрд╛рд▓рди "рд╕рдмрдХреБрдЫ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ" рд╕рд┐рджреНрдзрд╛рдВрдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реБрдЦрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ C рдХрд░реНрдиреЗрд▓ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЗрдВ fs/ рдпрд╣ рд╡рд░реНрдЪреБрдЕрд▓ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд░реИрдкрд░ рд▓реЗрдпрд░ рд╣реИ рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдп рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рд╕реНрдЯреЛрд░реЗрдЬ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдмреАрдЪ рд╡реНрдпрд╛рдкрдХ рдФрд░ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рдЕрдиреБрдХреВрд▓рддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд┐рдВрдХрд┐рдВрдЧ рдФрд░ рдУрд╡рд░рд▓реЗрдЗрдВрдЧ рдХреЗ рд╕рд╛рде рдорд╛рдЙрдВрдЯрд┐рдВрдЧред Linux VFS рдХрд╛ рдЬрд╛рджреВ рд╣реА рд╣реИ рдЬреЛ рдХрдВрдЯреЗрдирд░ рдФрд░ рд░реАрдб-рдУрдирд▓реА рд░реВрдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рд╕реЛрд░реНрд╕ рдХреЛрдб, eBPF рдХрд░реНрдиреЗрд▓ рдЯреВрд▓ рдФрд░ рдЗрд╕рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдЕрдзреНрдпрдпрди рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░, bcc
рдореБрдЦреНрдп рдЕрдиреНрд╡реЗрд╖рдг рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдЖрд╕рд╛рди рдмрдирд╛рдирд╛ред
рджреЛрд╕реНрддреЛрдВ, рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдерд╛ред рд╢рд╛рдпрдж рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдпрд╛ рд╕реБрдЭрд╛рд╡ рд╣реЛ? рдФрд░ рдЬреЛ рд▓реЛрдЧ "рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░" рдХреЛрд░реНрд╕ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, Linuxрд╣рдо рдЖрдкрдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ 18 рдЕрдкреНрд░реИрд▓ рдХреЛ рд╣реЛрдЧрд╛.
рд╕реНрд░реЛрдд: www.habr.com
