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

рд╕рд░реНрд╡рд╛рдВрдирд╛ рдирдорд╕реНрдХрд╛рд░! рддреБрдореНрд╣реА рдЖрдзреАрдЪ рдкреНрд░реЗрдорд╛рдд рдкрдбрд▓реЗрд▓реНрдпрд╛ рдЕрднреНрдпрд╛рд╕рдХреНрд░рдорд╛рдВрд╕рд╛рдареА рдЖрдореНрд╣реА рдирд╡реАрди рдкреНрд░рд╡рд╛рд╣ рд╕реБрд░реВ рдХрд░рдд рдЖрд╣реЛрдд рдЖрдгрд┐ рдЖрддрд╛ рдЖрдореНрд╣реА рдЕрднреНрдпрд╛рд╕рдХреНрд░рдорд╛рдВрдЪрд╛ рдПрдХ рдирд╡реАрди рд╕рдВрдЪ рд╕реБрд░реВ рдХрд░рдд рдЖрд╣реЛрдд рд╣реЗ рдЬрд╛рд╣реАрд░ рдХрд░рдгреНрдпрд╛рдЪреА рдШрд╛рдИ рдХрд░рдд рдЖрд╣реЛрдд. "рд▓рд┐рдирдХреНрд╕ рдкреНрд░рд╢рд╛рд╕рдХ"рдЬреЗ рдПрдкреНрд░рд┐рд▓рдЪреНрдпрд╛ рд╢реЗрд╡рдЯреА рд╕реБрд░реВ рд╣реЛрдИрд▓. рдпрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдорд╛рд╕рд╛рдареА рдирд╡реАрди рдкреНрд░рдХрд╛рд╢рдирд╛рдЪреА рддрд╛рд░реАрдЦ рджрд┐рд▓реА рдЬрд╛рдИрд▓. рдореВрд│ рд╕рд╛рдордЧреНрд░реАрд╕рд╣, рдЖрдкрдг рд╣реЗ рдХрд░реВ рд╢рдХрддрд╛ рдпреЗрдереЗ рд╡рд╛рдЪрд╛.

рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯреАрдо рдПрдХ рдкреНрд░рдХрд╛рд░рдЪреЗ рдЬрд╛рджреБрдИ рдЕтАНреЕрдмреНрд╕реНрдЯреНрд░реЕрдХреНрд╢рди рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░рддреЗ рдЬреЗ рд▓рд┐рдирдХреНрд╕рдЪреНрдпрд╛ рддрддреНрддреНрд╡рдЬреНрдЮрд╛рдирд╛рд▓рд╛ "рд╕рд░реНрд╡ рдХрд╛рд╣реА рдПрдХ рдлрд╛рдЗрд▓ рдЖрд╣реЗ" рдЕрд╕реЗ рдореНрд╣рдгреВ рджреЗрддреЗ.

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

рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореНрд╣рдгрдЬреЗ рдХрд╛рдп? Linux рдЪреНрдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рдпреЛрдЧрджрд╛рдирдХрд░реНрддреНрдпрд╛рдВрдкреИрдХреА рдПрдХрд╛рдЪреНрдпрд╛ рдЖрдгрд┐ рд▓реЗрдЦрдХрд╛рдВрдЪреНрдпрд╛ рд╢рдмреНрджрд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд░реЙрдмрд░реНрдЯрд╛ рд▓рд╛рд╡рд╛, "рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯреАрдо рд╣реА рдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд░рдЪрдиреЗрдиреБрд╕рд╛рд░ рдПрдХрддреНрд░рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбреЗрдЯрд╛рдЪреЗ рд╢реНрд░реЗрдгреАрдмрджреНрдз рд╕рдВрдЪрдпрди рдЕрд╕рддреЗ." рд╣реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╡реНрд╣реАрдПрдлрдПрдЯреА (рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдлрд╛рдЗрд▓ рдНрд▓реЛрдХреЗрд╢рди рдЯреЗрдмрд▓), рдЧрд┐рдЯ рдЖрдгрд┐ рд╢рд░рд┐рд░рд╛рд╕рд╛рдареА рдЪрд╛рдВрдЧрд▓рдВ рдЕрд╕рддрдВ, (NoSQL рдбреЗрдЯрд╛рдмреЗрд╕). рдордЧ рдЕрд╢рд╛ рдЧреЛрд╖реНрдЯреАрд▓рд╛ "рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо" рдореНрд╣рдгреВрди рдиреЗрдордХреЗ рдХрд╛рдп рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ?

рдлрд╛рдЗрд▓рд╕рд┐рд╕реНрдЯрдо рдореВрд▓рднреВрдд

рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓рд▓рд╛ рдПрдЦрд╛рджреНрдпрд╛ рдШрдЯрдХрд╛рд╕рд╛рдареА рдХрд╛рд╣реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддрд╛рдд рдЬреНрдпрд╛рд▓рд╛ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдорд╛рдирд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдкрджреНрдзрддреА рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реНрдпрд╛ рдкрд╛рд╣рд┐рдЬреЗрдд open(), read() ╨╕ write() рд╕рддрдд рд╡рд╕реНрддреВ рдЬреНрдпрд╛рдВрдирд╛ рдирд╛рд╡реЗ рдЖрд╣реЗрдд. рдСрдмреНрдЬреЗрдХреНрдЯ рдУрд░рд┐рдПрдВрдЯреЗрдб рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рддреВрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ, рдХрд░реНрдирд▓ рдЬреЗрдиреЗрд░рд┐рдХ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдорд▓рд╛ рдЕрдореВрд░реНрдд рдЗрдВрдЯрд░рдлреЗрд╕ рдореНрд╣рдгреВрди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рд╣реА рддреАрди рдореЛрдареА рдХрд╛рд░реНрдпреЗ "рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓" рдорд╛рдирд▓реА рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреА рдХреЛрдгрддреАрд╣реА рдареЛрд╕ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдирд╛рд╣реА. рддреНрдпрд╛рдиреБрд╕рд╛рд░, рдбреАрдлреЙрд▓реНрдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд▓рд╛ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо (VFS) рдореНрд╣рдгрддрд╛рдд.

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

рдЬрд░ рдЖрдкрдг рдПрдЦрд╛рджреНрдпрд╛ рдШрдЯрдХрд╛рд▓рд╛ рдЙрдШрдбреВ, рд╡рд╛рдЪреВ рдЖрдгрд┐ рд▓рд┐рд╣реВ рд╢рдХрд▓реЛ, рддрд░ рддреА рд╕рдВрд╕реНрдерд╛ рдлрд╛рдЗрд▓ рдорд╛рдирд▓реА рдЬрд╛рддреЗ, рдЬрд╕реЗ рдХреА рдЖрдкрдг рд╡рд░реАрд▓ рдХрдиреНрд╕реЛрд▓рдордзреАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рд╡рд░реВрди рдкрд╛рд╣реВ рд╢рдХрддреЛ.
VFS рдШрдЯрдирд╛ рдХреЗрд╡рд│ рдпреБрдирд┐рдХреНрд╕ рд╕рд╛рд░рдЦреА рдирд┐рд░реАрдХреНрд╖рдгреЗ рдЕрдзреЛрд░реЗрдЦрд┐рдд рдХрд░рддреЗ рдХреА "рд╕рд░реНрд╡ рдХрд╛рд╣реА рдПрдХ рдлрд╛рдЗрд▓ рдЖрд╣реЗ". рд╡рд░реАрд▓ рдЫреЛрдЯреЗрд╕реЗ /dev/console рдЙрджрд╛рд╣рд░рдг рдХрдиреНрд╕реЛрд▓ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реЗ рдХрд┐рддреА рд╡рд┐рдЪрд┐рддреНрд░ рдЖрд╣реЗ рдпрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░рд╛. рдЪрд┐рддреНрд░ рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджреА рдмреЕрд╢ рд╕рддреНрд░ рджрд╛рдЦрд╡рддреЗ. рдХрдиреНрд╕реЛрд▓рд╡рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд╛рдард╡рдгреЗ (рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдХрдиреНрд╕реЛрд▓ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕) рддреЗ рдЖрднрд╛рд╕реА рд╕реНрдХреНрд░реАрдирд╡рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ. VFS рдордзреНрдпреЗ рдЗрддрд░, рдЕрдЧрджреА рдЕрдиреЛрд│рдЦреА рдЧреБрдгрдзрд░реНрдо рдЖрд╣реЗрдд. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреЗ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╢реЛрдзрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ рддреНрдпрд╛рд▓рд╛.

ext4, NFS рдЖрдгрд┐ /proc рд╕рд╛рд░рдЦреНрдпрд╛ рдкрд░рд┐рдЪрд┐рдд рд╕рд┐рд╕реНрдЯреАрдордордзреНрдпреЗ C рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░рдордзреНрдпреЗ рддреАрди рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдпреЗ рдЖрд╣реЗрдд file_operations. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдХрд╛рд╣реА рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдореНрд╕ рдкрд░рд┐рдЪрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдорд╛рд░реНрдЧрд╛рдиреЗ VFS рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд╛рдврд╡рддрд╛рдд рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛рдд. рд░реЙрдмрд░реНрдЯ рд▓рд╡реНрд╣рдиреЗ рдирдореВрдж рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, VFS рдЕтАНреЕрдмреНрд╕реНрдЯреНрд░реЕрдХреНрд╢рди рд▓рд┐рдирдХреНрд╕ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рдбреЗрдЯрд╛ рдлреЙрд░рдореЕрдЯрдЪреА рдЪрд┐рдВрддрд╛ рди рдХрд░рддрд╛ рддреГрддреАрдп рдкрдХреНрд╖ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд┐рдВрд╡рд╛ рдкрд╛рдИрдкреНрд╕рд╕рд╛рд░рдЦреНрдпрд╛ рдЕрдореВрд░реНрдд рдШрдЯрдХрд╛рдВрд╡рд░ рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреВрди рдлрд╛рдЗрд▓реНрд╕рдЪреА рдирдХрд│рддрдкрдгреЗ рдХреЙрдкреА рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдмрд╛рдЬреВрдиреЗ (рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЬрд╛рдЧрд╛), рд╕рд┐рд╕реНрдЯрдо рдХреЙрд▓ рд╡рд╛рдкрд░реВрди, рдкрджреНрдзрдд рд╡рд╛рдкрд░реВрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдлрд╛рдЗрд▓рдордзреВрди рдХрд░реНрдирд▓ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрд╕рд╡рд░ рдХреЙрдкреА рдХрд░реВ рд╢рдХрддреЗ. read() рдПрдХ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдЖрдгрд┐ рдирдВрддрд░ рдкрджреНрдзрдд рд╡рд╛рдкрд░рд╛ write () рдбреЗрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯрд╕рд╛рдареА рджреБрд╕рд░реА рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо.

рдмреЗрд╕ VFS рдкреНрд░рдХрд╛рд░рд╛рдВрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдлрдВрдХреНрд╢рди рд╡реНрдпрд╛рдЦреНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕рдордзреНрдпреЗ рдЖрд╣реЗрдд fs/*.c рдХрд░реНрдирд▓ рд╕реНрддреНрд░реЛрдд рдХреЛрдб, рддрд░ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ fs/ рдард░рд╛рд╡рд┐рдХ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕рдорд╛рд╡рд┐рд╖реНрдЯреАрдд рдЖрд╣реЗ. рдХреЛрд░рдордзреНрдпреЗ рдШрдЯрдХ рджреЗрдЦреАрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд рдЬрд╕реЗ рдХреА cgroups, /dev ╨╕ tmpfs, рдЬреЗ рдмреВрдЯ рдкреНрд░рдХреНрд░рд┐рдпреЗрджрд░рдореНрдпрд╛рди рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреЗ рдЖрдгрд┐ рдореНрд╣рдгреВрди рдХрд░реНрдирд▓ рдЙрдкрдбрд┐рд░реЗрдХреНрдЯрд░реАрдордзреНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ init/. рддреНрдпрд╛рдЪреА рдиреЛрдВрдж рдШреНрдпрд╛ cgroups, /dev ╨╕ tmpfs "рдореЛрдареЗ рддреАрди" рдХрд╛рд░реНрдпреЗ рдХреЙрд▓ рдХрд░реВ рдирдХрд╛ file_operations, рдкрд░рдВрддреБ рдереЗрдЯ рд╡рд╛рдЪрд╛ рдЖрдгрд┐ рдореЗрдорд░реАрдордзреНрдпреЗ рд▓рд┐рд╣рд╛.
рдЦрд╛рд▓реАрд▓ рдЖрдХреГрддреА рджрд░реНрд╢рд╡рд┐рддреЗ рдХреА рдпреБрдЬрд░рд╕реНрдкреЗрд╕ рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯреАрдорд╡рд░ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдорд╛рдЙрдВрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд┐рд╡рд┐рдз рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдореНрд╕рдордзреНрдпреЗ рдХрд╕реЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ. рд╕рдВрд░рдЪрдирд╛ рджрд░реНрд╢рд╡рд┐рд▓реНрдпрд╛ рдирд╛рд╣реАрдд pipes, dmesg ╨╕ POSIX clocks, рдЬреЗ рд░рдЪрдирд╛ рджреЗрдЦреАрд▓ рд▓рд╛рдЧреВ рдХрд░рддреЗ file_operations, VFS рд╕реНрддрд░рд╛рджреНрд╡рд╛рд░реЗ рдкреНрд░рд╡реЗрд╢ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.

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

VFS рд╣рд╛ рд╕рд┐рд╕реНрдЯреАрдо рдХреЙрд▓ рдЖрдгрд┐ рдХрд╛рд╣реА рдард░рд╛рд╡рд┐рдХ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рджрд░рдореНрдпрд╛рди "рд░реЕрдкрд░ рд▓реЗрдпрд░" рдЖрд╣реЗ file_operations, рдЬрд╕реЗ ext4 ╨╕ procfs. рдХрд╛рд░реНрдпреЗ file_operations рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рдбреНрд░рд╛рдпрд╡реНрд╣рд░реНрд╕ рдХрд┐рдВрд╡рд╛ рдореЗрдорд░реА рдНрдХреНрд╕реЗрд╕ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕рд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзреВ рд╢рдХрддрд╛рдд. tmpfs, devtmpfs ╨╕ cgroups рд╡рд╛рдкрд░реВ рдирдХрд╛ file_operations, рдкрд░рдВрддреБ рдореЗрдорд░реАрдордзреНрдпреЗ рдереЗрдЯ рдкреНрд░рд╡реЗрд╢ рдХрд░рд╛.
VFS рдЪреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЛрдб рдкреБрдиреНрд╣рд╛ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╕рдВрдзреА рджреЗрддреЗ, рдХрд╛рд░рдг рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдорд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдореВрд▓рднреВрдд рдкрджреНрдзрддреА рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдорджреНрд╡рд╛рд░реЗ рдкреБрдиреНрд╣рд╛ рд▓рд╛рдЧреВ рдХрд░рд╛рд╡реНрдпрд╛ рд▓рд╛рдЧрдд рдирд╛рд╣реАрдд. рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдЕрднрд┐рдпрдВрддреНрдпрд╛рдВрдордзреНрдпреЗ рдХреЛрдбрдЪрд╛ рдкреБрдирд░реНрд╡рд╛рдкрд░ рд╣реА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдерд╛ рдЖрд╣реЗ! рддрдерд╛рдкрд┐, рдкреБрдиреНрд╣рд╛ рд╡рд╛рдкрд░рддрд╛ рдпреЗрдгреНрдпрд╛рдЬреЛрдЧреНрдпрд╛ рдХреЛрдбрдордзреНрдпреЗ рдЕрд╕рд▓реНрдпрд╛рд╕ рдЧрдВрднреАрд░ рдЪреБрдХрд╛, рд╕рд╛рдорд╛рдиреНрдп рдкрджреНрдзрддреАрдВрдЪрд╛ рд╡рд╛рд░рд╕рд╛ рдорд┐рд│рд╛рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдВрдирд╛ рддреНрдпрд╛рдВрдЪрд╛ рддреНрд░рд╛рд╕ рд╣реЛрддреЛ.

/tmp: рд╕рд╛рдзрд╛ рдЗрд╢рд╛рд░рд╛

рд╕рд┐рд╕реНрдЯрдорд╡рд░ VFS рдЖрд╣реЗ рд╣реЗ рд╢реЛрдзрдгреНрдпрд╛рдЪрд╛ рд╕реЛрдкрд╛ рдорд╛рд░реНрдЧ рдореНрд╣рдгрдЬреЗ рдЯрд╛рдЗрдк рдХрд░рдгреЗ mount | grep -v sd | grep -v :/, рдЬреЗ рд╕рд░реНрд╡ рдЖрд░реЛрд╣рд┐рдд рджрд░реНрд╢рд╡реЗрд▓ (mounted) рдлрд╛рдЗрд▓рдкреНрд░рдгрд╛рд▓реА рдЬреА рдбрд┐рд╕реНрдХ-рдирд┐рд╡рд╛рд╕реА рдирд╕рддрд╛рдд рдЖрдгрд┐ NFS рдирд╕рддрд╛рдд, рдЬреА рдмрд╣реБрддреЗрдХ рд╕рдВрдЧрдгрдХрд╛рдВрд╡рд░ рд╕рддреНрдп рдЕрд╕рддреЗ. рд╕реВрдЪреАрдмрджреНрдз рдорд╛рдЙрдВрдЯреНрд╕рдкреИрдХреА рдПрдХ (mounts) VFS рдирд┐рдГрд╕рдВрд╢рдпрдкрдгреЗ рд╣реЛрдИрд▓ /tmp, рдмрд░реЛрдмрд░?

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

рдкреНрд░рддреНрдпреЗрдХрд╛рд▓рд╛ рддреЗ рд╕реНрдЯреЛрд░реЗрдЬ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ / tmp рднреМрддрд┐рдХ рдорд╛рдзреНрдпрдорд╛рд╡рд░ - рд╡реЗрдбреЗрдкрдгрд╛! рд╕реНрддреНрд░реЛрдд.

рд╕рд╛рдард╡рдгреЗ рдЕрд╡рд╛рдВрдЫрдиреАрдп рдХрд╛ рдЖрд╣реЗ /tmp рднреМрддрд┐рдХ рдорд╛рдзреНрдпрдорд╛рдВрд╡рд░? рдХрд╛рд░рдг рддреНрдпрд╛рддреАрд▓ рдлрд╛рдИрд▓реНрд╕ /tmp рддрд╛рддреНрдкреБрд░рддреЗ рдЖрд╣реЗрдд рдЖрдгрд┐ рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд╛рдзрдиреЗ tmpfs рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдореЗрдорд░реАрдкреЗрдХреНрд╖рд╛ рд╣рд│реВ рдЖрд╣реЗрдд. рд╢рд┐рд╡рд╛рдп, рдореЗрдорд░реАрдкреЗрдХреНрд╖рд╛ рдУрд╡реНрд╣рд░рд░рд╛рдИрдЯ рдХреЗрд▓реНрдпрд╛рд╡рд░ рднреМрддрд┐рдХ рдорд╛рдзреНрдпрдореЗ рдкрд░рд┐рдзрд╛рди рдХрд░рдгреНрдпрд╛рд╕ рдЕрдзрд┐рдХ рд╕рдВрд╡реЗрджрдирд╛рдХреНрд╖рдо рдЕрд╕рддрд╛рдд. рд╢реЗрд╡рдЯреА, /tmp рдордзреАрд▓ рдлрд╛рдпрд▓реАрдВрдордзреНрдпреЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдорд╛рд╣рд┐рддреА рдЕрд╕реВ рд╢рдХрддреЗ, рддреНрдпрд╛рдореБрд│реЗ рдкреНрд░рддреНрдпреЗрдХ рд░реАрдмреВрдЯрд╡рд░ рддреНрдпрд╛рдВрдирд╛ рдЕрджреГрд╢реНрдп рдХрд░рдгреЗ рд╣реЗ рдПрдХ рдЖрд╡рд╢реНрдпрдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдЖрд╣реЗ.

рджреБрд░реНрджреИрд╡рд╛рдиреЗ, рдХрд╛рд╣реА Linux рд╡рд┐рддрд░рдг рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рд╕реНрдЯреЛрд░реЗрдЬ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рд╡рд░ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ /tmp рддрдпрд╛рд░ рдХрд░рддрд╛рдд. рддреБрдордЪреНрдпрд╛ рд╕рд┐рд╕реНрдЯреАрдордордзреНрдпреЗрд╣реА рдЕрд╕реЗ рдШрдбрд▓реЗ рдЕрд╕реЗрд▓ рддрд░ рдирд┐рд░рд╛рд╢ рд╣реЛрдК рдирдХрд╛. рдпрд╛рд╕рд╣ рдХрд╛рд╣реА рд╕реЛрдкреНрдпрд╛ рд╕реВрдЪрдирд╛рдВрдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░рд╛ рдЖрд░реНрдХ рд╡рд┐рдХреАрдпрд╛рдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдгрд┐ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рдореЗрдорд░реА рд╡рд╛рдЯрдк рдХреЗрд▓реА рдЖрд╣реЗ tmpfs рдЗрддрд░ рдХрд╛рд░рдгрд╛рдВрд╕рд╛рдареА рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛрддреЗ. рджреБрд╕рд░реНтАНрдпрд╛ рд╢рдмреНрджрд╛рдд, рдПрдХ рд╡рд┐рд╢рд╛рд▓ tmpfs рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░реАрд▓ рдореЛрдареНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕ рдЕрд╕рд▓реЗрд▓реА рдкреНрд░рдгрд╛рд▓реА рдореЗрдорд░реА рд╕рдВрдкреБрд╖реНрдЯрд╛рдд рдпреЗрдКрди рдХреНрд░реЕрд╢ рд╣реЛрдК рд╢рдХрддреЗ. рджреБрд╕рд░реА рд╕реВрдЪрдирд╛: рдлрд╛рдЗрд▓ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддрд╛рдирд╛ /etc/fstab, рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА рддреЗ рдирд╡реАрди рд▓рд╛рдЗрдирд╕рд╣ рд╕рдорд╛рдкреНрдд рдЭрд╛рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ, рдЕрдиреНрдпрдерд╛ рддреБрдордЪреА рдкреНрд░рдгрд╛рд▓реА рдмреВрдЯ рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА.

/proc рдЖрдгрд┐ /sys

рдпрд╛рд╢рд┐рд╡рд╛рдп /tmp, VFS (рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо) рдЬреЗ рд▓рд┐рдирдХреНрд╕ рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдВрдирд╛ рд╕рд░реНрд╡рд╛рдд рдкрд░рд┐рдЪрд┐рдд рдЖрд╣реЗрдд /proc ╨╕ /sys, (/dev рд╕рд╛рдорд╛рдпрд┐рдХ рдореЗрдорд░реАрдордзреНрдпреЗ рд░рд╛рд╣рддреЗ рдЖрдгрд┐ рдирд╛рд╣реА file_operations). рд╣реЗ рджреЛрди рдШрдЯрдХ рдХрд╛? рдЪрд▓рд╛ рдпрд╛ рд╕рдорд╕реНрдпреЗрдХрдбреЗ рд▓рдХреНрд╖ рджреНрдпрд╛.

procfs рдХрд░реНрдирд▓рдЪрд╛ рд╕реНрдиреЕрдкрд╢реЙрдЯ рддрдпрд╛рд░ рдХрд░рддреЛ рдЖрдгрд┐ рдЬреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрд╕рд╛рдареА рддреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рддреЗ userspace. рдж /proc рдХрд░реНрдирд▓ рддреНрдпрд╛рдЪреНрдпрд╛рдХрдбреЗ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдорд╛рд╣рд┐рддреАрдЪреА рдореБрджреНрд░рд┐рдд рдХрд░рддреЗ, рдЬрд╕реЗ рдХреА рдЗрдВрдЯрд░рдкреНрдЯреНрд╕, рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдореЗрдорд░реА рдЖрдгрд┐ рд╢реЗрдбреНрдпреБрд▓рд░. рдпрд╛рд╢рд┐рд╡рд╛рдп, /proc/sys рдХрдорд╛рдВрдбрд╕рд╣ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗрд▓реЗ рдард┐рдХрд╛рдг рдЖрд╣реЗ sysctl, рд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз userspace. рд╡реИрдпрдХреНрддрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдЪреА рд╕реНрдерд┐рддреА рдЖрдгрд┐ рдЖрдХрдбреЗрд╡рд╛рд░реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдВрдордзреНрдпреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓реА рдЬрд╛рддреЗ /proc/.

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

рддреЛ рдЖрд╣реЗ /proc/meminfo рд╣реА рдПрдХ рд░рд┐рдХрд╛рдореА рдлрд╛рдЗрд▓ рдЖрд╣реЗ рдЬреНрдпрд╛рдд рдореМрд▓реНрдпрд╡рд╛рди рдорд╛рд╣рд┐рддреА рдЖрд╣реЗ.

рд╡рд╛рдЧрдгреВрдХ /proc рдлрд╛рдИрд▓реНрд╕ VFS рдбрд┐рд╕реНрдХ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд┐рддреА рднрд┐рдиреНрди рдЕрд╕реВ рд╢рдХрддрд╛рдд рд╣реЗ рджрд╛рдЦрд╡рддреЗ. рдПрдХрд╛ рдмрд╛рдЬреВрд▓рд╛, /proc/meminfo рдХрдорд╛рдВрдбрд╕рд╣ рдкрд╛рд╣рд┐рд▓реА рдЬрд╛рдК рд╢рдХрдгрд╛рд░реА рдорд╛рд╣рд┐рддреА рдЕрд╕рддреЗ free. рджреБрд╕рд░реАрдХрдбреЗ, рддреЗ рд░рд┐рдХрд╛рдореЗ рдЖрд╣реЗ! рд╣реЗ рдХрд╕ рдХрд╛рдо рдХрд░рдд? рдирд╛рд╡рд╛рдЪреНрдпрд╛ рдкреНрд░рд╕рд┐рджреНрдз рд▓реЗрдЦрд╛рдЪреА рдЖрдард╡рдг рдХрд░реВрди рджреЗрдгрд╛рд░реА рдкрд░рд┐рд╕реНрдерд┐рддреА рдХреЛрдгреАрд╣реА рдкрд╛рд╣рдд рдирд╕рддрд╛рдирд╛ рдЪрдВрджреНрд░ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЖрд╣реЗ рдХрд╛? рд╡рд╛рд╕реНрддрд╡ рдЖрдгрд┐ рдХреНрд╡рд╛рдВрдЯрдо рд╕рд┐рджреНрдзрд╛рдВрдд"рдХреЙрд░реНрдиреЗрд▓ рд╡рд┐рджреНрдпрд╛рдкреАрдард╛рдЪреЗ рднреМрддрд┐рдХрд╢рд╛рд╕реНрддреНрд░рд╛рдЪреЗ рдкреНрд░рд╛рдзреНрдпрд╛рдкрдХ рдбреЗрд╡реНрд╣рд┐рдб рдорд░реНрдорд┐рди рдпрд╛рдВрдиреА 1985 рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реЗ. рд╡рд╕реНрддреБрд╕реНрдерд┐рддреА рдЕрд╢реА рдЖрд╣реЗ рдХреА рдЬреЗрд╡реНрд╣рд╛ рд╡рд┐рдирдВрддреА рдХреЗрд▓реА рдЬрд╛рддреЗ рддреЗрд╡реНрд╣рд╛ рдХрд░реНрдирд▓ рдореЗрдорд░реА рдЖрдХрдбреЗрд╡рд╛рд░реА рдЧреЛрд│рд╛ рдХрд░рддреЗ /proc, рдЖрдгрд┐ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдлрд╛рдпрд▓реАрдВрдордзреНрдпреЗ /proc рдХреЛрдгреА рдкрд╛рд╣рдд рдирд╕рддрд╛рдирд╛ рдХрд╛рд╣реАрд╣реА рдирд╕рддреЗ. рдореНрд╣рдЯрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдорд░реНрдорд┐рди, "рдореВрд▓рднреВрдд рдХреНрд╡рд╛рдВрдЯрдо рд╕рд┐рджреНрдзрд╛рдВрдд рдореНрд╣рдгрддреЗ рдХреА рдореЛрдЬрдорд╛рдк рд╕рд╛рдорд╛рдиреНрдпрдд: рдореЛрдЬрд▓реНрдпрд╛ рдЬрд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдорд╛рд▓рдорддреНрддреЗрдЪреЗ рдкреВрд░реНрд╡-рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЕрд╕рд▓реЗрд▓реЗ рдореВрд▓реНрдп рдкреНрд░рдХрдЯ рдХрд░рдд рдирд╛рд╣реА." (рдЖрдгрд┐ рдЪрдВрджреНрд░рд╛рдЪреНрдпрд╛ рдкреНрд░рд╢реНрдирд╛рд▓рд╛ рдЧреГрд╣рдкрд╛рда рд╕рдордЬрд╛!)
рд╢реВрдиреНрдпрддрд╛ рджрд┐рд╕рддреЗ procfs рдЕрд░реНрде рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЛ рдХрд╛рд░рдг рддреЗрдереАрд▓ рдорд╛рд╣рд┐рддреА рдбрд╛рдпрдиреЕрдорд┐рдХ рдЖрд╣реЗ. рд╕рд╣ рдереЛрдбреА рд╡реЗрдЧрд│реА рдкрд░рд┐рд╕реНрдерд┐рддреА sysfs. рдХрд┐рдорд╛рди рдПрдХ рдмрд╛рдЗрдЯ рдЖрдХрд╛рд░рд╛рдЪреНрдпрд╛ рдХрд┐рддреА рдлрд╛рдИрд▓реНрд╕ рдЖрд╣реЗрдд рдпрд╛рдЪреА рддреБрд▓рдирд╛ рдХрд░реВ /proc рдЖрдгрд┐ рдордзреНрдпреЗ /sys.

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

Procfs рдХрдбреЗ рдПрдХ рдлрд╛рдИрд▓ рдЖрд╣реЗ, рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдХреЗрд▓реЗрд▓реЗ рдХрд░реНрдирд▓ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди, рдЬреЗ рдЕрдкрд╡рд╛рдж рдЖрд╣реЗ рдХрд╛рд░рдг рддреЗ рдлрдХреНрдд рдПрдХрджрд╛рдЪ рдкреНрд░рддрд┐ рдмреВрдЯ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рджреБрд╕рд░реАрдХрдбреЗ, рдордзреНрдпреЗ /sys рдмрд░реНтАНрдпрд╛рдЪ рдореЛрдареНрдпрд╛ рдлрд╛рдпрд▓реА рдЖрд╣реЗрдд, рддреНрдпрд╛рдкреИрдХреА рдмрд░реНтАНрдпрд╛рдЪ рдореЗрдорд░реА рд╕рдВрдкреВрд░реНрдг рдкреГрд╖реНрда рдШреЗрддрд╛рдд. рд╕рд╣рд╕рд╛ рдлрд╛рдпрд▓реА sysfs рд╕рд╛рд░рдЦреНрдпрд╛ рдлрд╛рдпрд▓реА рд╡рд╛рдЪреВрди рдорд┐рд│рд╡рд▓реЗрд▓реНрдпрд╛ рдорд╛рд╣рд┐рддреАрдЪреНрдпрд╛ рд╕рд╛рд░рдгреНрдпрд╛рдВрдкреЗрдХреНрд╖рд╛ рдЕрдЧрджреА рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХрд┐рдВрд╡рд╛ рдУрд│ рдЕрд╕рддреЗ /proc/meminfo.

рдЧреЛрд▓ sysfs - рдХрд░реНрдирд▓ рдЬреНрдпрд╛рд▓рд╛ рдХреЙрд▓ рдХрд░рддреЗ рддреНрдпрд╛рдЪреЗ рд╡рд╛рдЪрди/рд▓реЗрдЦрди рдЧреБрдгрдзрд░реНрдо рдкреНрд░рджрд╛рди рдХрд░рд╛ ┬лkobjects┬╗ рдпреВрдЬрд░рд╕реНрдкреЗрд╕рдордзреНрдпреЗ. рдПрдХрдореЗрд╡ рдзреНрдпреЗрдп kobjects рд▓рд┐рдВрдХ рдореЛрдЬрдгреА рдЖрд╣реЗ: рдЬреЗрд╡реНрд╣рд╛ рдХреЛрдмрдЬреЗрдХреНрдЯрдЪреА рд╢реЗрд╡рдЯрдЪреА рд▓рд┐рдВрдХ рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реА рдЬрд╛рддреЗ, рддреЗрд╡реНрд╣рд╛ рд╕рд┐рд╕реНрдЯрдо рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрд╕рд╛рдзрдиреЗ рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХрд░реЗрд▓. рдЕрд╕реЗ рдЕрд╕рд▓реЗ рддрд░реА, /sys рдмрд╣реБрддреЗрдХ рдкреНрд░рд╕рд┐рджреНрдз рдмрдирд╡рддреЗ "рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕реНрдерд╛рдирд╛рд╕рд╛рдареА рд╕реНрдерд┐рд░ ABI" рдХреЛрд░, рдЬреЗ рдХреЛрдгреАрд╣реА рдХрдзреАрд╣реА рдХреЛрдгрддреНрдпрд╛рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА "рдмреНрд░реЗрдХ". рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдирд╛рд╣реА рдХреА sysfs рдордзреАрд▓ рдлрд╛рдЗрд▓реНрд╕ рд╕реНрдерд┐рд░ рдЖрд╣реЗрдд, рдЬреНрдпрд╛ рдЕрд╕реНрдерд┐рд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреНрдпрд╛ рд╕рдВрджрд░реНрдн рдореЛрдЬрдгреАрд╢реА рд╡рд┐рд╕рдВрдЧрдд рдЕрд╕рддреАрд▓.
рдХрд░реНрдирд▓рдЪреЗ рд╕реНрдерд┐рд░ ABI рдпрд╛рдордзреНрдпреЗ рдХрд╛рдп рджрд┐рд╕реВ рд╢рдХрддреЗ рддреЗ рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рддреЗ /sys, рддреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╖рдгреА рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдЬреЗ рдЖрд╣реЗ рддреЗ рдирд╛рд╣реА. sysfs рдордзреНтАНрдпреЗ рдлрд╛рдЗрд▓ рдкрд░рд╡рд╛рдирдЧреНрдпрд╛ рд╕реВрдЪреАрдмрджреНрдз рдХреЗрд▓реНтАНрдпрд╛рдиреЗ рдбрд┐рд╡реНтАНрд╣рд╛рдЗрд╕реЗрд╕, рдореЙрдбреНрдпреБрд▓реНтАНрд╕, рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНтАНрдЯрдо рдЗ.рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНтАНрдпрд╛рдЪреА рд╕реЗрдЯрд┐рдВрдЧреНтАНрдЬ рдХрд╢реА рдЖрд╣реЗрдд рдпрд╛рдЪреА рдорд╛рд╣рд┐рддреА рдорд┐рд│рддреЗ. рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд┐рдВрд╡рд╛ рд╡рд╛рдЪрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рддрд╛рд░реНрдХрд┐рдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА procfs рджреЗрдЦреАрд▓ рдХрд░реНрдирд▓рдЪреНрдпрд╛ рд╕реНрдерд┐рд░ ABI рдЪрд╛ рднрд╛рдЧ рдЖрд╣реЗ, рдЬрд░реА рд╣реЗ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рдирдореВрдж рдХреЗрд▓реЗрд▓реЗ рдирд╛рд╣реА. рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг.

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

рдордзреНрдпреЗ рдлрд╛рдЗрд▓реНрд╕ sysfs рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХрд╛рд╕рд╛рдареА рдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧреБрдгрдзрд░реНрдорд╛рдЪреЗ рд╡рд░реНрдгрди рдХрд░рд╛ рдЖрдгрд┐ рддреЗ рд╡рд╛рдЪрдиреАрдп, рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдпреЛрдЧреНрдп рдХрд┐рдВрд╡рд╛ рджреЛрдиреНрд╣реА рдЕрд╕реВ рд╢рдХрддрд╛рдд. рдлрд╛рдЗрд▓рдордзреАрд▓ "0" рдореНрд╣рдгрдЬреЗ SSD рдХрд╛рдврддрд╛ рдпреЗрдд рдирд╛рд╣реА.

eBPF рдЖрдгрд┐ bcc рд╕рд╛рдзрдирд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди VFS рдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд╕реЗ рдХрд░рд╛рд╡реЗ рдпрд╛рд╕рд╣ рднрд╛рд╖рд╛рдВрддрд░рд╛рдЪрд╛ рджреБрд╕рд░рд╛ рднрд╛рдЧ рд╕реБрд░реВ рдХрд░реВрдпрд╛ рдЖрдгрд┐ рдЖрддрд╛ рдЖрдореНрд╣реА рддреБрдордЪреНрдпрд╛ рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрдЪреА рд╡рд╛рдЯ рдкрд╛рд╣рдд рдЖрд╣реЛрдд рдЖрдгрд┐ рдкрд░рдВрдкрд░реЗрдиреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рдд рдЖрд╣реЛрдд. рд╡реЗрдмрд┐рдирд╛рд░ рдЙрдШрдбрд╛, рдЬреЗ рдЖрдордЪреНрдпрд╛ рд╢рд┐рдХреНрд╖рдХрд╛рдВрджреНрд╡рд╛рд░реЗ 9 рдПрдкреНрд░рд┐рд▓ рд░реЛрдЬреА рд╣реЛрдгрд╛рд░ рдЖрд╣реЗ - рд╡реНрд▓рд╛рджрд┐рдореАрд░ рдбреНрд░реЛрдЭрдбреЗрддреНрд╕реНрдХреА.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛