рдирдорд╕реНрддреЗ рд╕рдмреИ! рд╣рд╛рдореАрд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдкрд╣рд┐рд▓реЗ рдиреИ рдкреНрд░реЗрдордорд╛ рдкрд░реЗрдХрд╛ рдкрд╛рдареНрдпрдХреНрд░рдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рд╕реНрдЯреНрд░рд┐рдорд╣рд░реВ рд╕реБрд░реВ рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрдЫреМрдВ рд░ рдЕрдм рд╣рд╛рдореА рдкрд╛рдареНрдпрдХреНрд░рдорд╣рд░реВрдХреЛ рдирдпрд╛рдБ рд╕реЗрдЯ рд╕реБрд░реБ рдЧрд░реНрджреИрдЫреМрдВ рднрдиреЗрд░ рдШреЛрд╖рдгрд╛ рдЧрд░реНрди рд╣рддрд╛рд░рдорд╛ рдЫреМрдВред
рднрд░реНрдЪреБрдЕрд▓ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрд▓реЗ рдПрдХ рдкреНрд░рдХрд╛рд░рдХреЛ рдЬрд╛рджреБрдИ рдЕрдореВрд░реНрддрддрд╛рдХреЛ рд░реВрдкрдорд╛ рд╕реЗрд╡рд╛ рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ рд▓рд┐рдирдХреНрд╕рдХреЛ рджрд░реНрд╢рдирд▓рд╛рдИ "рд╕рдмреИ рдХреБрд░рд╛ рдлрд╛рдЗрд▓ рд╣реЛ" рднрдиреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╣реЛ? рд▓рд┐рдирдХреНрд╕рдХреЛ рдкрд╣рд┐рд▓реЛ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рд░ рд▓реЗрдЦрдХрд╣рд░реВрдХреЛ рд╢рдмреНрджрд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд
рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рдЖрдзрд╛рд░рднреВрдд
рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рдорд╛ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рдорд╛рдирд┐рдиреЗ рдирд┐рдХрд╛рдпрдХрд╛ рд▓рд╛рдЧрд┐ рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдЫрдиреНред рд╡рд┐рдзрд┐рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрдкрд░реНрдЫ open()
, read()
╨╕ write()
рдирд╛рдорд╣рд░реВ рднрдПрдХрд╛ рдирд┐рд░рдиреНрддрд░ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ред рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ
рдпрджрд┐ рд╣рд╛рдореА рдПрдХ рдирд┐рдХрд╛рдпрдорд╛ рдЦреЛрд▓реНрди, рдкрдвреНрди рд░ рд▓реЗрдЦреНрди рд╕рдХреНрдЫреМрдВ рднрдиреЗ, рддреНрдпрд╕ рдирд┐рдХрд╛рдпрд▓рд╛рдИ рдлрд╛рдЗрд▓ рдорд╛рдирд┐рдиреНрдЫ, рдЬрд╕реНрддреЛ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рдорд╛рдерд┐рдХреЛ рдХрдиреНрд╕реЛрд▓рдХреЛ рдЙрджрд╛рд╣рд░рдгрдмрд╛рдЯ рджреЗрдЦреНрди рд╕рдХреНрдЫреМрдВред
VFS рдШрдЯрдирд╛рд▓реЗ "рд╕рдмреИ рдХреБрд░рд╛ рдлрд╛рдЗрд▓ рд╣реЛ" рднрдиреНрдиреЗ рдпреБрдирд┐рдХреНрд╕-рдЬрд╕реНрддреЛ рдЕрд╡рд▓реЛрдХрдирд▓рд╛рдИ рдорд╛рддреНрд░ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдЧрд░реНрджрдЫред рд╕реЛрдЪреНрдиреБрд╣реЛрд╕реН рдХрд┐ рдХрддрд┐ рдЕрдиреМрдареЛ рдЫ рдХрд┐ рддреНрдпреЛ рд╕рд╛рдиреЛ /dev/console рдорд╛рдерд┐рдХреЛ рдЙрджрд╛рд╣рд░рдгрд▓реЗ рдХрдиреНрд╕реЛрд▓рд▓реЗ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрджрдЫ рднрдиреЗрд░ рджреЗрдЦрд╛рдЙрдБрдЫред рддрд╕реНрд╡рд┐рд░рд▓реЗ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдмрд╛рд╕ рд╕рддреНрд░ рджреЗрдЦрд╛рдЙрдБрдЫред рдХрдиреНрд╕реЛрд▓рдорд╛ рд╕реНрдЯреНрд░рд┐рдЩ рдкрдард╛рдЙрдБрджреИ (рднрд░реНрдЪреБрдЕрд▓ рдХрдиреНрд╕реЛрд▓ рдЙрдкрдХрд░рдг) рдпрд╕рд▓рд╛рдИ рднрд░реНрдЪреБрдЕрд▓ рд╕реНрдХреНрд░рд┐рдирдорд╛ рджреЗрдЦрд╛рдЙрдБрдЫред VFS рд╕рдБрдЧ рдЕрдиреНрдп, рдЕрдкрд░рд┐рдЪрд┐рдд рдЧреБрдгрд╣рд░реВ рдкрдирд┐ рдЫрдиреНред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЦреЛрдЬреА рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ
рдкрд░рд┐рдЪрд┐рдд рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рдЬрд╕реНрддреИ ext4, NFS, рд░ /proc рд╕рдБрдЧ C рдбрд╛рдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдорд╛ рддреАрди рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдпрд╣рд░реВ рдЫрдиреН рдЬрд╕рд▓рд╛рдИ рднрдирд┐рдиреНрдЫред read()
рдПрдЙрдЯрд╛ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН write ()
рдбрд╛рдЯрд╛ рдЖрдЙрдЯрдкреБрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдЕрд░реНрдХреЛ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАред
рдЖрдзрд╛рд░ VFS рдкреНрд░рдХрд╛рд░рд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдкреНрд░рдХрд╛рд░реНрдп рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдЫрдиреН fs/
рдирд┐рд╢реНрдЪрд┐рдд рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рдХреЛрд░рдорд╛ рд╕рдВрд╕реНрдерд╛рд╣рд░реВ рдкрдирд┐ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН рдЬрд╕реНрддреИ cgroups
, /dev
╨╕ tmpfs
, рдЬреБрди рдмреБрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд╕рдордпрдорд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫ рд░ рддреНрдпрд╕реИрд▓реЗ рдХрд░реНрдиреЗрд▓ рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдиреНрдЫ init/
ред рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ cgroups
, /dev
╨╕ tmpfs
"рдареВрд▓реЛ рддреАрди" рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдХрд▓ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН file_operations
, рддрд░ рд╕рд┐рдзреИ рдкрдвреНрдиреБрд╣реЛрд╕реН рд░ рдореЗрдореЛрд░реАрдорд╛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реНред
рддрд▓рдХреЛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рд▓реЗ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╕реНрдкреЗрд╕рд▓реЗ рд▓рд┐рдирдХреНрд╕ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдорд╛рдЙрдиреНрдЯ рдЧрд░рд┐рдПрдХрд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░рдХрд╛ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ рдЧрд░реНрдЫ рднрдиреЗрд░ рджреЗрдЦрд╛рдЙрдБрдЫред рд╕рдВрд░рдЪрдирд╛рд╣рд░реВ рджреЗрдЦрд╛рдЗрдПрдХреЛ рдЫреИрди pipes
, dmesg
╨╕ POSIX clocks
рдЬрд╕рд▓реЗ рд╕рдВрд░рдЪрдирд╛рд▓рд╛рдИ рдкрдирд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдЫ file_operations
, VFS рддрд╣ рдорд╛рд░реНрдлрдд рдкрд╣реБрдБрдЪ рдЧрд░рд┐рдпреЛред
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
, рд╣реИрди?
рддреНрдпреЛ рднрдгреНрдбрд╛рд░рдг рд╕рдмреИрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ / tmp
рдПрдХ рднреМрддрд┐рдХ рдорд╛рдзреНрдпрдо рдорд╛ - рдкрд╛рдЧрд▓рдкрди!
рдХрд┐рди рдпреЛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдЕрд╡рд╛рдВрдЫрдиреАрдп рдЫ /tmp
рднреМрддрд┐рдХ рдорд┐рдбрд┐рдпрд╛рдорд╛? рдХрд┐рдирднрдиреЗ рдлрд╛рдЗрд▓рд╣рд░реВ рднрд┐рддреНрд░ рдЫрдиреН /tmp
рдЕрд╕реНрдерд╛рдпреА рдЫрдиреН рд░ рднрдгреНрдбрд╛рд░рдг рдЙрдкрдХрд░рдгрд╣рд░реВ рдореЗрдореЛрд░реА рднрдиреНрджрд╛ рдврд┐рд▓реЛ рдЫрдиреН рдЬрд╣рд╛рдБ tmpfs рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред рдпрд╕рдмрд╛рд╣реЗрдХ, рдореЗрдореЛрд░реА рднрдиреНрджрд╛ рдУрднрд░рд░рд╛рдЗрдЯ рдЧрд░реНрджрд╛ рднреМрддрд┐рдХ рдорд┐рдбрд┐рдпрд╛ рдкрд╣рд┐рд░рдирдорд╛ рдмрдвреА рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реБрдиреНрдЫред рдЕрдиреНрддрдорд╛, /tmp рдорд╛ рдлрд╛рдЗрд▓рд╣рд░реВрд▓реЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рд╕рдХреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдмреБрдЯрдорд╛ рдЧрд╛рдпрдм рдмрдирд╛рдЙрдиреЗ рдПрдХ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛред
рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдХреЗрд╣рд┐ рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рд╕реНрдерд╛рдкрдирд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рднрдгреНрдбрд╛рд░рдг рдЙрдкрдХрд░рдгрдорд╛ /tmp рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫред рдпрджрд┐ рдпреЛ рддрдкрд╛рдИрдВрдХреЛ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдкрдирд┐ рднрдпреЛ рднрдиреЗ рдирд┐рд░рд╛рд╢ рдирдЧрд░реНрдиреБрд╣реЛрд╕реНред рд╕рд╛рде рдХреЗрд╣рд┐ рд╕рд░рд▓ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкрд╛рд▓рдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН tmpfs
рдЕрдиреНрдп рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реБрдиреНрдЫред рдЕрд░реНрдХреЛ рд╢рдмреНрджрдорд╛, рдПрдХ рд╡рд┐рд╢рд╛рд▓ tmpfs рд░ рдпрд╕рдорд╛ рдареВрд▓рд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рднрдПрдХреЛ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдореЗрдореЛрд░реА рд░ рдХреНрд░реНрдпрд╛рд╕ рд╣реБрди рд╕рдХреНрдЫред рдЕрд░реНрдХреЛ рд╕рдВрдХреЗрдд: рдлрд╛рдЗрд▓ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрджрд╛ /etc/fstab
, рдпрд╛рдж рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдпреЛ рдирдпрд╛рдБ рд▓рд╛рдЗрди рд╕рдВрдЧ рд╕рдорд╛рдкреНрдд рд╣реБрдиреБрдкрд░реНрдЫ, рдЕрдиреНрдпрдерд╛ рддрдкрд╛рдЗрдБрдХреЛ рдкреНрд░рдгрд╛рд▓реА рдмреБрдЯ рд╣реБрдиреЗрдЫреИрдиред
/proc рд░ /sys
рдмрд╛рд╣реЗрдХ /tmp
, VFS (рднрд░реНрдЪреБрдЕрд▓ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ) рдЬреБрди рд▓рд┐рдирдХреНрд╕ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдмреИрднрдиреНрджрд╛ рдкрд░рд┐рдЪрд┐рдд рдЫрдиреН /proc
╨╕ /sys
ред (/dev
рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реАрдорд╛ рд░рд╣рдиреНрдЫ рд░ рдЫреИрди file_operations
)ред рдХрд┐рди рдпреА рджреБрдИ рдШрдЯрдХ? рдпреЛ рдореБрджреНрджрд╛ рд╣реЗрд░реМрдВред
procfs
рдХрд░реНрдиреЗрд▓рдХреЛ рд╕реНрдиреНрдпрд╛рдкрд╕рдЯ рд░ рдпрд╕рд▓реЗ рдЕрдиреБрдЧрдорди рдЧрд░реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ userspace
ред рдХреЛ /proc
рдХрд░реНрдиреЗрд▓рд▓реЗ рдХреЗ рдЙрдкрд▓рдмреНрдз рдЫ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдЬрд╛рдирдХрд╛рд░реА рдЫрд╛рдкреНрдЫ, рдЬрд╕реНрддреИ рдЕрд╡рд░реЛрдз, рднрд░реНрдЪреБрдЕрд▓ рдореЗрдореЛрд░реА, рд░ рдЕрдиреБрд╕реВрдЪрдХред рдпрд╕рдмрд╛рд╣реЗрдХ, /proc/sys
рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рдкрд░рд┐рдорд┐рддрд┐рд╣рд░реВ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдард╛рдЙрдБ рд╣реЛ sysctl
рдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрд▓рдмреНрдз рдЫ userspace
ред рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд╕реНрдерд┐рддрд┐ рд░ рддрдереНрдпрд╛рдЩреНрдХрд╣рд░реВ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрд╣рд░реВрдорд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реБрдиреНрдЫрдиреН /proc/
.
рдпреЛ рдЫ /proc/meminfo
рддреИрдкрдирд┐ рдмрд╣реБрдореВрд▓реНрдп рдЬрд╛рдирдХрд╛рд░реА рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рдЦрд╛рд▓реА рдлрд╛рдЗрд▓ рд╣реЛред
рд╡реНрдпрд╡рд╣рд╛рд░ /proc
рдлрд╛рдЗрд▓рд╣рд░реВрд▓реЗ рдХрд╕рд░реА рдлрд░рдХ VFS рдбрд┐рд╕реНрдХ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рд╣реБрди рд╕рдХреНрдЫ рднрдиреЗрд░ рджреЗрдЦрд╛рдЙрдБрдЫред рдПрдХрд╛рддрд┐рд░, /proc/meminfo
рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рд╣реЗрд░реНрди рд╕рдХрд┐рдиреЗ рдЬрд╛рдирдХрд╛рд░реА рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ free
ред рдЕрд░реНрдХреЛрддрд░реНрдл, рдпреЛ рдЦрд╛рд▓реА рдЫ! рдпрд╕реНрд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ? рд╕реНрдерд┐рддрд┐рд▓реЗ рдкреНрд░рд╕рд┐рджреНрдз рд╢реАрд░реНрд╖рдХрдХреЛ рд▓реЗрдЦрдХреЛ рд╕рдореНрдЭрдирд╛ рдЧрд░рд╛рдЙрдБрдЫ /proc
, рд░ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ /proc
рдХрд╕реИрд▓реЗ рдирд╣реЗрд░реНрджрд╛ рдХреЗрд╣реА рд╣реБрдБрджреИрдиред рднрдиреЗ рдЕрдиреБрд╕рд╛рд░
рд╢реВрдиреНрдпрддрд╛ рджреЗрдЦрд┐рдиреНрдЫ procfs
рддреНрдпрд╣рд╛рдБ рдЬрд╛рдирдХрд╛рд░реА рдЧрддрд┐рд╢реАрд▓ рдЫ рдХрд┐рдирднрдиреЗ рдЕрд░реНрде рдмрдирд╛рдЙрдБрдЫред рдЕрд▓рд┐ рдлрд░рдХ рдЕрд╡рд╕реНрдерд╛ рд╕рдВрдЧ sysfs
ред рдХрдореНрддрд┐рдорд╛ рдПрдХ рдмрд╛рдЗрдЯ рд╕рд╛рдЗрдЬрдорд╛ рдХрддрд┐ рдлрд╛рдЗрд▓рд╣рд░реВ рдЫрдиреН рддреБрд▓рдирд╛ рдЧрд░реМрдВ /proc
рд░ рднрд┐рддреНрд░ /sys
.
Procfs
рдПрдЙрдЯрд╛ рдлрд╛рдЗрд▓ рдЫ, рдЕрд░реНрдерд╛рддреН рдирд┐рд░реНрдпрд╛рдд рдЧрд░рд┐рдПрдХреЛ рдХрд░реНрдиреЗрд▓ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди, рдЬреБрди рдЕрдкрд╡рд╛рдж рд╣реЛ рдХрд┐рдирднрдиреЗ рдпрд╕рд▓рд╛рдИ рдкреНрд░рддрд┐ рдмреБрдЯ рдПрдХ рдкрдЯрдХ рдорд╛рддреНрд░ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдЕрд░реНрдХреЛрддрд░реНрдл, рдорд╛ /sys
рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдареВрд▓рд╛ рдлрд╛рдЗрд▓рд╣рд░реВ рдЫрдиреН, рдЬрд╕рдордзреНрдпреЗ рдзреЗрд░реИрд▓реЗ рдореЗрдореЛрд░реАрдХреЛ рд╕рдореНрдкреВрд░реНрдг рдкреГрд╖реНрда рд▓рд┐рдиреНрдЫрдиреНред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдлрд╛рдЗрд▓рд╣рд░реВ sysfs
рдареНрдпрд╛рдХреНрдХреИ рдПрдХ рдирдореНрдмрд░ рд╡рд╛ рд░реЗрдЦрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рдЬрд╕реНрддреИ рдлрд╛рдЗрд▓рд╣рд░реВ рдкрдвреНрдирдмрд╛рдЯ рдкреНрд░рд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рддрд╛рд▓рд┐рдХрд╛рдХреЛ рд╡рд┐рдкрд░реАрдд /proc/meminfo
.
рд▓рдХреНрд╖реНрдп sysfs
- рдХрд░реНрдиреЗрд▓рд▓реЗ рдХреЗ рдХрд▓ рдЧрд░реНрджрдЫ рднрдиреЗрд░ рдкрдвреНрди/рд▓реЗрдЦреНрдиреЗ рдЧреБрдгрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреБрд╣реЛрд╕реН ┬лkobjects┬╗
рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рдирдорд╛ред рдПрдЙрдЯреИ рдЧреЛрд▓ kobjects
рд▓рд┐рдЩреНрдХ рдЧрдгрдирд╛ рдЧрд░реНрджреИрдЫ: рдЬрдм kobject рдХреЛ рдЕрдиреНрддрд┐рдо рд▓рд┐рдЩреНрдХ рд╣рдЯрд╛рдЗрдиреНрдЫ, рдкреНрд░рдгрд╛рд▓реАрд▓реЗ рдпрд╕рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕реНрд░реЛрддрд╣рд░реВ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдЧрд░реНрдиреЗрдЫред рддреИрдкрдирд┐, /sys
рдзреЗрд░реИ рдкреНрд░рд╕рд┐рджреНрдз рдмрдирд╛рдЙрдБрдЫ
рдХрд░реНрдиреЗрд▓рдХреЛ рд╕реНрдерд┐рд░ ABI рд▓реЗ рдХреЗ рджреЗрдЦрд╛ рдкрд░реНрди рд╕рдХреНрдЫ рд▓рд╛рдИ рд╕реАрдорд┐рдд рдЧрд░реНрджрдЫ /sys
, рддреНрдпреЛ рд╡рд┐рд╢реЗрд╖ рдХреНрд╖рдгрдорд╛ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХреЗ рдЫ рднрдиреНрдиреЗ рд╣реЛрдЗрдиред sysfs рдорд╛ рд╕реВрдЪреАрдмрджреНрдз рдлрд╛рдЗрд▓ рдЕрдиреБрдорддрд┐рд╣рд░реВрд▓реЗ рдпрдиреНрддреНрд░рд╣рд░реВ, рдореЛрдбреНрдпреБрд▓рд╣рд░реВ, рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ, рдЖрджрд┐рдХрд╛ рд▓рд╛рдЧрд┐ рдХрд╕рд░реА рдХрдиреНрдлрд┐рдЧрд░ рдпреЛрдЧреНрдп рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдмрд╛рд░реЗ рдЕрдиреНрддрд░рджреГрд╖реНрдЯрд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рд╡рд╛ рдкрдвреНрди рд╕рдХрд┐рдиреНрдЫред рддрд╛рд░реНрдХрд┐рдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдпреЛ рд╣реЛ рдХрд┐ procfs рдкрдирд┐ рдХрд░реНрдиреЗрд▓рдХреЛ рд╕реНрдерд┐рд░ ABI рдХреЛ рднрд╛рдЧ рд╣реЛ, рдпрджреНрдпрдкрд┐ рдпреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рднрдирд┐рдПрдХреЛ рдЫреИрдиред
рдорд╛ рдлрд╛рдЗрд▓рд╣рд░реВ sysfs
рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╕реНрдерд╛рдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЧреБрдг рд╡рд░реНрдгрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдкрдвреНрди рдпреЛрдЧреНрдп, рд▓реЗрдЦреНрди рдпреЛрдЧреНрдп, рд╡рд╛ рджреБрд╡реИ рд╣реБрди рд╕рдХреНрдЫред рдлрд╛рдЗрд▓рдорд╛ "0" рдХреЛ рдЕрд░реНрде SSD рд╣рдЯрд╛рдЙрди рд╕рдХрд┐рдБрджреИрдиред
eBPF рд░ bcc рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ VFS рдХрд╕рд░реА рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдЕрдиреБрд╡рд╛рджрдХреЛ рджреЛрд╕реНрд░реЛ рднрд╛рдЧ рд╕реБрд░реБ рдЧрд░реМрдВ, рд░ рдЕрдм рд╣рд╛рдореА рддрдкрд╛рдИрдВрдХреЛ рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВ рд░ рдкрд░рдореНрдкрд░рд╛рдЧрдд рд░реВрдкрдорд╛ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЖрдордиреНрддреНрд░рд┐рдд рдЧрд░реНрджрдЫреМрдВред
рд╕реНрд░реЛрдд: www.habr.com