рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рдЬрдмрдХрд┐
рд▓рд┐рдпреЛрдирд┐рдж рд╣рдорд╛рд░реЗ
рд▓рд┐рдирдХреНрд╕ рдкреНрд░рд╢рд╛рд╕рдХ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рдЕрдкрдиреЗ рдкрд╣рд▓реЗ
рдЦреБрд▓реЗ рдкрд╛рда рдХреА рддреИрдпрд╛рд░реА рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╣рдо рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред
рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!
рдпрд╣ рд╕рдордЭрдирд╛ рдХрд┐ рдмрд┐рдирд╛ рдЕрд╕рдлрд▓рддрд╛рдУрдВ рдХреЗ рдХреЛрдИ рд╕рд┐рд╕реНрдЯрдо рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдЯреВрдЯрдиреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рддреИрдпрд╛рд░реА
рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ рдордЬрд╛рдХ рдпрд╣ рдХрдерди рд╣реИ рдХрд┐ "рдХреЛрдб рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реАред" рдЕрдиреБрднрд╡ рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рд╣реИ рдХрд┐ рд╕реНрд░реЛрдд рдХреЛрдб рдкрдврд╝рдирд╛ рдореМрд╕рдо рдХреЗ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреЛ рд╕реБрдирдиреЗ рдЬреИрд╕рд╛ рд╣реИ: рдмреБрджреНрдзрд┐рдорд╛рди рд▓реЛрдЧ рдЕрднреА рднреА рдмрд╛рд╣рд░ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдЖрдХрд╛рд╢ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗред рдиреАрдЪреЗ рдкрд░рд┐рдЪрд┐рдд рдбрд┐рдмрдЧрд┐рдВрдЧ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдмреВрдЯ рдХреА рдЬрд╛рдВрдЪ рдФрд░ рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рд╕реБрдЭрд╛рд╡ рджрд┐рдП рдЧрдП рд╣реИрдВред рдПрдХ рдкреНрд░рдгрд╛рд▓реА рдХреА рдмреВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЬреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рджреБрд░реНрдШрдЯрдирд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред
рдПрдХ рддрд░рдл, рдбрд╛рдЙрдирд▓реЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рд╕рд░рд▓ рд╣реИред рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдХрд░реНрдиреЗрд▓ (рдХрд░реНрдиреЗрд▓) рдПрдХ-рдХреЛрд░ (рдХреЛрд░) рдкрд░ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдФрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рдЪрд▓рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рджрдпрдиреАрдп рдорд╛рдирд╡ рдорди рдХреЗ рд▓рд┐рдП рднреА рд╕рдордЭ рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдУрдПрд╕ рдХрд╛ рдХрд░реНрдиреЗрд▓ рдХреИрд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ? рдХреНрдпрд╛ рдХрд╛рд░реНрдп initrd (
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЖрд░рдВрднреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд░реИрдо рдбрд┐рд╕реНрдХ ) рдФрд░ рдмреВрдЯрд▓реЛрдбрд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВ? рдФрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдИрдерд░рдиреЗрдЯ рдкреЛрд░реНрдЯ рдкрд░ рдПрд▓рдИрдбреА рд╣рдореЗрд╢рд╛ рдкрд░ рдХреНрдпреЛрдВ рд╣реИ?

рдЗрди рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдкрдврд╝реЗрдВ; рд╡рд░реНрдгрд┐рдд рдбреЗрдореЛ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдб
GitHub рдкрд░ рднреА рдЙрдкрд▓рдмреНрдз
рд╣реИ ред
рдмреВрдЯ рдХреА рд╢реБрд░реБрдЖрдд: рд╕реНрдЯреЗрдЯрд╕ рдСрдлрдЬрд╛рдЧреЛ-рдСрди-рд▓реИрдирдСрдл рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкрд╛рд╡рд░ рдирд╣реАрдВ рд╣реИ, рд╣реИ рдирд╛? рд╕реНрдкрд╖реНрдЯ рд╕рд░рд▓рддрд╛ рдзреЛрдЦрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдИрдерд░рдиреЗрдЯ рдПрд▓рдИрдбреА рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рднреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡реЗрдХ-рдСрди-рд▓реИрди (WOL, рд╡реЗрдХ-рдЕрдк [рд╕рд┐рдЧреНрдирд▓ рдСрди рд▓реЛрдХрд▓ рдиреЗрдЯрд╡рд░реНрдХ) рдЪрд╛рд▓реВ рд╣реИред рд▓рд┐рдЦрдХрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ:
$# sudo ethtool <interface name>
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдпрд╣ рдХрд╣рд╛рдБ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, eth0 (рдЗрдереВрд▓ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рд▓рд┐рдирдХреНрд╕ рдкреИрдХреЗрдЬ рдореЗрдВ рд╣реИ)ред рдпрджрд┐ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ "рд╡реЗрдХ-рдСрди" рдЬреА рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рджреВрд░рд╕реНрде рд╣реЛрд╕реНрдЯ
рдореИрдЬрд┐рдХрдкреИрдХреЗрдЯ рднреЗрдЬрдХрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмреВрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рджреВрд╕рд░реЛрдВ рдХреЛ рдпрд╣ рдЕрд╡рд╕рд░ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╕рд┐рд╕реНрдЯрдо BIOS рдореЗрдиреВ рдореЗрдВ WOL рдЕрдХреНрд╖рдо рдХрд░реЗрдВ, рдпрд╛:
$# sudo ethtool -s <interface name> wol d
рдореИрдЬрд┐рдХрдкреИрдХреЗрдЯ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░реЛрд╕реЗрд╕рд░
рдмреЗрд╕рдмреЛрд░реНрдб рдореИрдиреЗрдЬрдореЗрдВрдЯ рдХрдВрдЯреНрд░реЛрд▓рд░ (BMC) рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЗрдВрдЯреЗрд▓ рдкреНрд░рдмрдВрдзрди рдЗрдВрдЬрди, рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рд╣рдм рдФрд░ рдорд┐рдирд┐рдХреНрд╕BMC рдПрдХрдорд╛рддреНрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ (MCU) рдирд╣реАрдВ рд╣реИ рдЬреЛ рдирд╛рдордорд╛рддреНрд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреЛ "рд╕реБрди" рд╕рдХрддрд╛ рд╣реИред X86_64 рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд░рд┐рдореЛрдЯ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЗрдВрдЯреЗрд▓ рдореИрдиреЗрдЬрдореЗрдВрдЯ рдЗрдВрдЬрди (IME) рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдкреИрдХреЗрдЬ рд╣реИред рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛, рд╕рд░реНрд╡рд░ рд╕реЗ рд▓реЗрдХрд░ рд▓реИрдкрдЯреЙрдк рддрдХ, рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рд╣реИ
рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡реАрдПрдо рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдпрд╛ рдЗрдВрдЯреЗрд▓ рдХреИрдкрд┐рдмрд┐рд▓рд┐рдЯреА рд▓рд╛рдЗрд╕реЗрдВрд╕рд┐рдВрдЧ рд╕реЗрд╡рд╛ рдЬреИрд╕реА
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред
INT l рдХреЗ
рдЕрдкрдиреЗ рдЙрдкрдХрд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░,
IME рдХреА рдЕрдкреНрд░рднрд╛рд╡реА рдХрдордЬреЛрд░рд┐рдпрд╛рдБ рд╣реИрдВред рдмреБрд░реА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ IME рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
рдЯреНрд░рд╛рдореЗрд▓ рд╣рдбрд╕рди рдиреЗ
me_cleaner рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛
, рдЬреЛ рдХреБрдЫ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ
рдШрдиреЗ IME рдШрдЯрдХреЛрдВ рдХреЛ
рдорд┐рдЯрд╛рддрд╛ рд╣реИ , рдЬреИрд╕реЗ рдПрдореНрдмреЗрдбреЗрдб рд╡реЗрдм рд╕рд░реНрд╡рд░, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рд╕рд╛рде рдПрдХ рдореМрдХрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЪрд╛рд▓реВ рдХрд░ рджреЗрдЧрд╛ рдЬрд┐рд╕ рдкрд░ рдпрд╣ рдПрдХ рдИрдВрдЯ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИред
IME рдлрд░реНрдорд╡реЗрдпрд░ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдореИрдиреЗрдЬрдореЗрдВрдЯ рдореЛрдб (SMM) рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЬреЛ рдмреВрдЯ рдкрд░ рдЗрд╕рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ
, рдорд┐рдирд┐рдХреНрд╕ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░
рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдореБрдЦреНрдп CPU рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдЕрд▓рдЧ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рд╣рдм рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдлрд┐рд░ SMM рдиреЗ рдореБрдЦреНрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (UEFI) рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ
рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛
рд╣реИ ред рдХреЛрд░рдмреВрдЯ рд╕рдореВрд╣ рдиреЗ Google рдореЗрдВ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖реА
рдиреЙрди-рдПрдХреНрд╕рдЯреЗрдВрд╕рд┐рдмрд▓ рд░рд┐рдбреНрдпреВрд╕реНрдб рдлрд╝рд░реНрдорд╡реЗрдпрд░ (рдПрдирдИрдЖрд░рдПрдл) рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХреА, рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рди рдХреЗрд╡рд▓ рдпреВрдИрдПрдлрдЖрдИ рдХреЛ рдмрджрд▓рдирд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рд▓рд┐рдирдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рд╢реБрд░реБрдЖрддреА рдШрдЯрдХреЛрдВ, рдЬреИрд╕реЗ рдХрд┐ рд╕рд┐рд╕реНрдЯрдордбред рдЗрд╕ рдмреАрдЪ, рд╣рдо рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓рд┐рдирдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрдпреВрд░рд┐рдЬреНрдо, рд╕рд┐рд╕реНрдЯрдо76 рдпрд╛ рдбреЗрд▓ рд╕реЗ рд▓реИрдкрдЯреЙрдк рдЦрд░реАрдж рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░
рдЖрдИрдПрдордИ рдЕрдХреНрд╖рдо рд╣реИ , рд╕рд╛рде рд╣реА, рд╣рдо
64-рдмрд┐рдЯ рдПрдЖрд░рдПрдо рдкреНрд░реЛрд╕реЗрд╕рд░ рд╡рд╛рд▓реЗ рд▓реИрдкрдЯреЙрдк рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЛрдбрд░
рд╕рдВрджрд┐рдЧреНрдз рд╕реНрдкрд╛рдЗрд╡реЗрдпрд░ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдмреВрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдлрд░реНрдорд╡реЗрдпрд░ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ? рдмреВрдЯрд▓реЛрдбрд░ рдХрд╛ рдХрд╛рд░реНрдп рдкреНрд░реЛрд╕реЗрд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ рдЬреЛ рд▓рд┐рдирдХреНрд╕ рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИред рдкрд╛рд╡рд░-рдЕрдк рдХреЗ рджреМрд░рд╛рди, рди рдХреЗрд╡рд▓ рд╡рд░реНрдЪреБрдЕрд▓ рдореЗрдореЛрд░реА рд╣реЛрддреА рд╣реИ, рдмрд▓реНрдХрд┐ DRAM рднреА рд╣реЛрддреА рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдЗрд╕рдХреЗ рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ рдКрдкрд░ рдирд╣реАрдВ рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмреВрдЯрд▓реЛрдбрд░ рддрдм рдмрд┐рдЬрд▓реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд░реНрдиреЗрд▓ рдЫрд╡рд┐ рдФрд░ рд░реВрдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕реЛрдВ рдФрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИред U-рдмреВрдЯ рдФрд░ GRUB рдЬреИрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдмреВрдЯрд▓реЛрдбрд░реНрд╕ USB, PCI, рдФрд░ NFS рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЕрдиреНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдгреЛрдВ, рдЬреИрд╕реЗ NOR- рдФрд░ NAND- рдлреНрд▓реИрд╢, рджреЛрдиреЛрдВ рд╕рд╛рдорд╛рдиреНрдп рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рд▓реЛрдбрд░ рд╕реБрд░рдХреНрд╖рд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рднреА рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐
рдЯреНрд░рд╕реНрдЯреЗрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЙрдбреНрдпреВрд▓ (рдЯреАрдкреАрдПрдо) , рдбрд╛рдЙрдирд▓реЛрдб рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ рдПрдХ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рдкрд░ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдпреВ-рдмреВрдЯ рд▓реЛрдбрд░ рдЪрд▓рд╛рдирд╛редрд▓реЛрдХрдкреНрд░рд┐рдп рдУрдкрди рд╕реЛрд░реНрд╕
рдпреВ-рдмреВрдЯ рдмреВрдЯрд▓реЛрдбрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ рдирд┐рдирдЯреЗрдВрдбреЛ рдбрд┐рд╡рд╛рдЗрд╕, рдХрд╛рд░ рдмреЛрд░реНрдб рдФрд░ рдХреНрд░реЛрдордмреБрдХ рддрдХ рдХреЗ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред рдХреЛрдИ рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЕрдЧрд░ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ рднреА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдпреВ-рдмреВрдЯ рдЯреАрдо рдмрд┐рд▓реНрдб рд╣реЛрд╕реНрдЯ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрдВрдЯреАрдиреНрдпреВрдЕрд╕ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреИрдЪ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдЬреАрдЖрдИрдЯреА рдФрд░ рдЬреАрдПрдирдпреВ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд▓реЗрдХреНрд╢рди (рдЬреАрд╕реАрд╕реА) рдЬреИрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░, рдпреВ-рдмреВрдЯ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХреЛ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИред
$# git clone git://git.denx.de/u-boot; cd u-boot $# make ARCH=sandbox defconfig $# make; ./u-boot => printenv => help
рдпрд╣ рд╕рдм рд╣реИ: рдЖрдкрдиреЗ x86_64 рдкрд░ рдпреВ-рдмреВрдЯ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдФрд░ рдЖрдк рдЯреНрд░рд┐рдХреА рдлреАрдЪрд░реНрд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдХрд╛рд▓реНрдкрдирд┐рдХ рд╕реНрдЯреЛрд░реЗрдЬ рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдХрд╛ рдкреБрдирд░реНрдореВрд▓реНрдпрд╛рдВрдХрди, рдЯреАрдкреАрдПрдо-рдЖрдзрд╛рд░рд┐рдд рдЧреБрдкреНрдд рдХреБрдВрдЬреА рд╣реЗрд░рдлреЗрд░ рдФрд░ рдпреВрдПрд╕рдмреА рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рд╣реЙрдЯрдкреНрд▓рдЧред UDB рдмреВрдЯ рд╕реИрдВрдбрдмреЙрдХреНрд╕ GDB рдбреАрдмрдЧрд░ рдХреЗ рднреАрддрд░ рдПрдХ-рдЪрд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╡рд┐рдХрд╛рд╕ рдмреЛрд░реНрдб рдкрд░ рдмреВрдЯрд▓реЛрдбрд░ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдХреЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗ 10 рдЧреБрдирд╛ рддреЗрдЬ рд╣реИ, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, "рдИрдВрдЯ" рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХреЛ Ctrl + C рджрдмрд╛рдХрд░ рдмрд╣рд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХрд░реНрдиреЗрд▓ рд▓реЙрдиреНрдЪрдмреВрдЯрд┐рдВрдЧ рдХрд░реНрдиреЗрд▓ рдЖрдкреВрд░реНрддрд┐рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░, рдмреВрдЯрд▓реЛрдбрд░ рдХрд░реНрдиреЗрд▓ рдХреЛрдб рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рдЗрд╕реЗ рдореБрдЦреНрдп рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рднреА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдХрд░реНрдиреЗрд▓ рдХреНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реИ? рдлрд╝рд╛рдЗрд▓ / рдмреВрдЯ / vmlinuz рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ bzImage рд╣реИред рд▓рд┐рдирдХреНрд╕ рд╕реЛрд░реНрд╕ рдЯреНрд░реА рдореЗрдВ
рдПрдХ рдПрдХреНрд╕реНрдЯреНрд░реЗрдХреНрдЯ-рд╡реАрдореНрд▓рд┐рдирдХреНрд╕ рдЯреВрд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдлрд╛рдЗрд▓ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
$# scripts/extract-vmlinux /boot/vmlinuz-$(uname -r) > vmlinux $# file vmlinux vmlinux: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, stripped
рдХрд░реНрдиреЗрд▓ рд▓рд┐рдирдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреА рддрд░рд╣ рдПрдХ
рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдФрд░ рд▓рд┐рдВрдХрд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк (рдИрдПрд▓рдПрдл) рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмреАрдирдЯрд┐рд▓реНрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреБрд▓рдирд╛ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд╖реНрдХрд░реНрд╖:
$# readelf -S /bin/date $# readelf -S vmlinux
рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рдХреА рд╕реВрдЪреА рд╕рдорд╛рди рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рд╣реИред
рддреЛ, рдХрд░реНрдиреЗрд▓ рдХреЛ рдЕрдиреНрдп рдИрдПрд▓рдПрдл рд▓рд┐рдирдХреНрд╕ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП ... рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреИрд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВ?
main()
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рд╣реИ рдирд╛? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВред
main()
рдлрд╝рдВрдХреНрд╢рди рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдВрджрд░реНрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣реАрдк- (рд╣реАрдк) рдФрд░ рд╕реНрдЯреИрдХ- (рд╕реНрдЯреИрдХ) рдореЗрдореЛрд░реА, рдкреНрд▓рд╕ рдлрд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдлреЙрд░
stdio
,
stdout
рдФрд░
stderr
ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЗрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп (рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП
glibc
) рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
$# file /bin/date /bin/date: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=14e8563676febeb06d701dbee35d225c5a8e565a, stripped
рдИрдПрд▓рдПрдл рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдореЗрдВ рдмреИрд╢ рдФрд░ рдкрд╛рдЗрдерди рд▓рд┐рдкрд┐рдпреЛрдВ рдХреА рддрд░рд╣ рдПрдХ рджреБрднрд╛рд╖рд┐рдпрд╛ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕реЗ
#!
рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
#!
рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдИрдПрд▓рдПрдл рдПрдХ рджреЗрд╢реА рд▓рд┐рдирдХреНрд╕ рдкреНрд░рд╛рд░реВрдк рд╣реИред ELF рджреБрднрд╛рд╖рд┐рдпрд╛
_start()
рд╕реНрд░реЛрдд рдкреИрдХреЗрдЬ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдПрдХ рдлрд╝рдВрдХреНрд╢рди
_start()
рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рдЗрдирд░реА рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ
GDB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрд░реНрдиреЗрд▓, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рджреБрднрд╛рд╖рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдЦреБрдж рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХреИрд╕реЗ?
GDB рдХреЗ рд╕рд╛рде рдХрд░реНрдиреЗрд▓ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдзреНрдпрдпрди рдЗрд╕ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд░реНрдиреЗрд▓ рдбрд┐рдмрдЧрд┐рдВрдЧ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ
vmlinux
рдХрд╛ рдмрд┐рдирд╛ рд╕рдВрд╕реНрдХрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
apt-get install linux-image-amd64-dbg
ред рдпрд╛ рдЙрддреНрдХреГрд╖реНрдЯ
рдбрд┐рдмрд┐рдпрди рдХрд░реНрдиреЗрд▓ рд╣реИрдВрдбрдмреБрдХ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рд╕реНрд░реЛрдд рд╕реЗ рдЕрдкрдирд╛ рдХрд░реНрдиреЗрд▓ рд╕рдВрдХрд▓рд┐рдд рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
gdb vmlinux
рджреНрд╡рд╛рд░рд╛
info files
рдмрд╛рдж ELF рдЕрдиреБрднрд╛рдЧ
init.text
ред
init.text
рд╕рд╛рде
l *(address)
рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ, рдЬрд╣рд╛рдВ рдкрддрд╛
init.text
рдХрд╛ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдкреНрд░рд╛рд░рдВрдн рд╣реИред GDB рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ x86_64 рдХрд░реНрдиреЗрд▓ рдХреЛ
arch/x86/kernel/head_64.S
рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд╣рд╛рдБ рд╣рдо рдмрд┐рд▓реНрдб рдлрд╝рдВрдХреНрд╢рди
start_cpu0()
рдФрд░ рдХреЛрдб рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдЯреИрдХ рдФрд░
x86_64 start_kernel()
рдЬреЛ
x86_64 start_kernel()
рд╕реЗ рдкрд╣рд▓реЗ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред 32-рдмрд┐рдЯ рдПрдЖрд░рдПрдо рдХреЛрд░ рдореЗрдВ рдПрдХ рд╕рдорд╛рди
arch/arm/kernel/head.S. start_kernel()
arch/arm/kernel/head.S. start_kernel()
рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдХрд░реНрдиреЗрд▓
init/main.c
рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐
start_kernel()
рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ
main()
рд▓рд┐рдирдХреНрд╕ рдлрд╝рдВрдХреНрд╢рди рд╣реИред
рдкреНрд░рд╛рд░рдВрдн_рдХрд░рди () рд╕реЗ рдкреАрдЖрдИрдбреА тАЛтАЛ1 рддрдХрдХрд░реНрдиреЗрд▓ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдореЗрдирд┐рдлреЗрд╕реНрдЯ: рдПрд╕реАрдкреАрдЖрдИ рдЯреЗрдмрд▓ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдЯреНрд░реАрдЬрд╝рдмреВрдЯ рдХрд░рддреЗ рд╕рдордп, рдХрд░реНрдиреЗрд▓ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреЛрдб рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдбреЗрдЯрд╛ рджреНрд╡рд╛рд░рд╛ рдкреВрд░рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЕрд▓рдЧ рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рджреЛ рдореБрдЦреНрдп рддрд░реАрдХреЗ рд╣реИрдВ: рдбрд┐рд╡рд╛рдЗрд╕
рдЯреНрд░реА рдФрд░
рдПрд╕реАрдкреАрдЖрдИ рдЯреЗрдмрд▓ ред рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ, рдХрд░реНрдиреЗрд▓ рдХреЛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдмреВрдЯ рдкрд░ рдХреМрди рд╕реЗ рдЙрдкрдХрд░рдг рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдПрдореНрдмреЗрдбреЗрдб рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдбрд┐рд╡рд╛рдЗрд╕ рдЯреНрд░реА (DU) рд╕реНрдерд╛рдкрд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рдкреНрд░рдХрдЯрди рд╣реИред DU рдПрдХ рдлрд╛рдЗрд▓ рд╣реИ рдЬреЛ рдХрд░реНрдиреЗрд▓ рд╕реНрд░реЛрдд рдХреЗ рд╕рдорд╛рди рд╕рдордп рдкрд░ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрддреА рд╣реИ рдФрд░ рдЖрдорддреМрд░ рдкрд░
vmlinux
рдХреЗ рд╕рд╛рде / рдмреВрдЯ рдореЗрдВ рд╕реНрдерд┐рдд
vmlinux
ред рдПрдЖрд░рдПрдо рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдмрд╛рдЗрдирд░реА рдбрд┐рд╡рд╛рдЗрд╕ рдЯреНрд░реА рдореЗрдВ рдХреНрдпрд╛ рд╣реИ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ
/boot/*.dtb
рдкреИрдХреЗрдЬ рд╕реЗ
strings
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо
/boot/*.dtb
рд╕реЗ рдореЗрд▓
/boot/*.dtb
, рдХреНрдпреЛрдВрдХрд┐
dtb
рдорддрд▓рдм рдбрд┐рд╡рд╛рдЗрд╕ рдЯреНрд░реА (рдбрд┐рд╡рд╛рдЗрд╕-рдЯреНрд░реА рдмрд╛рдЗрдирд░реА) рдХреА рдмрд╛рдЗрдирд░реА рдлрд╛рдЗрд▓ рд╣реИред рдЖрдк JSON рдЬреИрд╕реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдореЗрдВ рдХрд░реНрдиреЗрд▓ рд╕реНрд░реЛрдд рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╡рд┐рд╢реЗрд╖ dtc рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИред DU рдПрдХ рд╕реНрдерд┐рд░ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдкрде рдЖрдорддреМрд░ рдкрд░ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдмреВрдЯрд▓реЛрдбрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд░реНрдиреЗрд▓ рдХреЛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рд╛рд▓ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдПрдХ
рдбрд┐рд╡рд╛рдЗрд╕ рдЯреНрд░реА рдУрд╡рд░рд▓реЗ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдХрд░реНрдиреЗрд▓ рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣реЙрдЯрдкреНрд▓рдЧ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИред
X86 рдкрд░рд┐рд╡рд╛рд░ рдФрд░ рдХрдИ ARM64 рд╡реНрдпрд╡рд╕рд╛рдп-рд╕реНрддрд░реАрдп рдбрд┐рд╡рд╛рдЗрд╕ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЙрдиреНрдирдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдкрд╛рд╡рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (
ACPI) рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рд╡рд┐рдкрд░реАрдд, ACPI рдЬрд╛рдирдХрд╛рд░реА рд╡рд░реНрдЪреБрдЕрд▓ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо
/sys/firmware/acpi/tables
рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕реЗ рдХрд░реНрдиреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдЖрдВрддрд░рд┐рдХ ROM рдореЗрдВ
/sys/firmware/acpi/tables
рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред ACPI рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП,
acpidump
acpica-tools
рдкреИрдХреЗрдЬ рд╕реЗ
acpidump
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:
рд▓реЗрдиреЛрд╡реЛ рд▓реИрдкрдЯреЙрдк рдкрд░ рдПрд╕реАрдкреАрдЖрдИ рдЯреЗрдмрд▓ рд╡рд┐рдВрдбреЛрдЬ 2001 рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВредрдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рд╛рдБ, рдЖрдкрдХрд╛ рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдВрдбреЛрдЬ 2001 рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред ACPI рдореЗрдВ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХреЗ рд╡рд┐рдкрд░реАрдд рддрд░реАрдХреЗ рдФрд░ рдбреЗрдЯрд╛ рджреЛрдиреЛрдВ рд╣реИрдВ, рдЬреЛ рдХрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд┐рд╡рд░рдг рднрд╛рд╖рд╛ рдХреА рддрд░рд╣ рд╣реИред рдмреВрдЯ рдХреЗ рдмрд╛рдж ACPI рд╡рд┐рдзрд┐рдпрд╛рдВ рд╕рдХреНрд░рд┐рдп рд░рд╣рддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк acpi_listen рдХрдорд╛рдВрдб (apcid рдкреИрдХреЗрдЬ рд╕реЗ) рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд▓реИрдкрдЯреЙрдк рдХреЗ рдврдХреНрдХрди рдХреЛ рдмрдВрдж рдХрд░реЗрдВ рдФрд░ рдЦреЛрд▓реЗрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ ACPI рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЗрд╕ рд╕рднреА рд╕рдордп рдкрд░ рдХрд╛рдо рдХрд░рддреА рд░рд╣реАред
ACPI рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рдЕрд╕реНрдерд╛рдпреА рдФрд░ рдЧрддрд┐рд╢реАрд▓
рдкреБрдирд░реНрд▓реЗрдЦрди рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдерд╛рдпреА рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рдмреВрдЯ рдкрд░ BIOS рдореЗрдиреВ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрд╢рди рдпрд╛ ROM рдХреЛ рдЪрдордХрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдРрд╕реА рдЬрдЯрд┐рд▓рддрд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп, рд╢рд╛рдпрдж рдЖрдкрдХреЛ
рдХреЛрд░рдмреВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдиред
Start_kernel () рд╕реЗ рд▓реЗрдХрд░ рдпреВрдЬрд░ рд╕реНрдкреЗрд╕ рддрдХ
init/main.c
рдХрд╛ рдХреЛрдб рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ рдкрдврд╝рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдлрд┐рд░ рднреА 1991-1992 рддрдХ рд▓рд┐рдиреБрд╕ рдЯреЛрд░рд╡рд╛рд▓реНрдбреНрд╕ рдХрд╛ рдореВрд▓ рдХреЙрдкреАрд░рд╛рдЗрдЯ рдкрд╣рдирддрд╛ рд╣реИред
dmesg | head
рдореЗрдВ рдкрд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд▓рд╛рдЗрдиреЗрдВ
dmesg | head
рд░рдирд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо
dmesg | head
рдореВрд▓ рд░реВрдк рд╕реЗ рдЗрд╕ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рд╕реАрдкреАрдпреВ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡реИрд╢реНрд╡рд┐рдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рдХреЗ рдмрд╛рдж рдПрдХ рд╢реЗрдбреНрдпреВрд▓рд░, рдЗрдВрдЯрд░рдкреНрдЯ рд╣реИрдВрдбрд▓рд░ (рдЖрдИрдЖрд░рдХреНрдпреВ), рдЯрд╛рдЗрдорд░ рдФрд░ рдХрдВрд╕реЛрд▓ рдЙрдард╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
timekeeping_init()
рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рд╢реВрдиреНрдп рд╣реИрдВред рдХрд░реНрдиреЗрд▓ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╣реИ, рдпрд╛рдиреА рдирд┐рд╖реНрдкрд╛рджрди рдХреЗрд╡рд▓ рдПрдХ рдереНрд░реЗрдб рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рддрдм рддрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдВрддрд┐рдо рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рд▓реМрдЯрддрд╛ рд╣реИред рдирддреАрдЬрддрди, рджреЛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рднреА
dmesg
рдЖрдЙрдЯрдкреБрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдЧрд╛, рдЬрдм рддрдХ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдпрд╛ рдПрд╕реАрдкреАрдЖрдИ рдЯреЗрдмрд▓ рди рд╣реЛред рд▓рд┐рдирдХреНрд╕ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (RTOS) рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ MCU рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ QNX рдпрд╛ VxWorksред рдпрд╣ рд╕реНрдерд┐рддрд┐
rest_init()
рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рдЗрд╕рдХреЗ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХреЗ рдХреНрд╖рдг рдореЗрдВ
start_kernel()
рджреНрд╡рд╛рд░рд╛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд░реНрдиреЗрд▓ рдмреВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг
rest_init()
рдирд╛рдо рдХрд╛ рдорд╛рдореВрд▓реА рд░реВрдк рд╕реЗ рдПрдХ рдирдпрд╛ рдереНрд░реЗрдб рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ
kernel_init()
рдЪрд▓рд╛рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ
do_initcalls()
рдХрд╣рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд░реНрдиреЗрд▓ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдореЗрдВ
initcalls_debug
рдЬреЛрдбрд╝рдХрд░
initcalls_debug
рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рдЖрдк рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк
initcall
рдлрд╝рдВрдХреНрд╢рди рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ
dmesg
рдирд┐рдХрд╛рдп рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛ред
initcalls
рд▓рдЧрд╛рддрд╛рд░ рд╕рд╛рдд рд╕реНрддрд░реЛрдВ рд╕реЗ
initcalls
рд╣реИ: рдкреНрд░рд╛рд░рдВрднрд┐рдХ, рдХреЛрд░, рдкреЛрд╕реНрдЯрдХреЛрд░, рдЖрд░реНрдЪ, рд╕рдмреНрд╕реА, рдПрдлрдПрд╕, рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рд▓реЗрдЯред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП
initcalls
рдХрд╛ рд╕рдмрд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣рд┐рд╕реНрд╕рд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдкрд░рд┐рдзреАрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдФрд░ рд╕реНрдерд╛рдкрдирд╛ рд╣реИ: рдмрд╕, рдиреЗрдЯрд╡рд░реНрдХ, рднрдВрдбрд╛рд░рдг, рдбрд┐рд╕реНрдкреНрд▓реЗ, рдФрд░ рдЗрд╕реА рддрд░рд╣, рдЙрдирдХреЗ рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓реЛрдб рдХреЗ рд╕рд╛рдеред
rest_init()
рдмреВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рдПрдХ рджреВрд╕рд░рд╛ рдзрд╛рдЧрд╛ рднреА рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ
cpu_idle()
рдЪрд▓рд╛рдХрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╢реЗрдбреНрдпреВрд▓рд░ рдЕрдкрдирд╛ рдХрд╛рдо рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
kernel_init()
рд╕рдордорд┐рдд рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ (рдПрд╕рдПрдордкреА) рднреА рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЖрдзреБрдирд┐рдХ рдХрд░реНрдиреЗрд▓ рдореЗрдВ, рдЖрдк рдЗрд╕ рдкрд▓ рдХреЛ dmesg рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ "рд╕реЗрдХреЗрдВрдбрд░реА рд╕реАрдкреАрдпреВ рдХреЛ рд▓рд╛рдХрд░ ..." рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрд╕рдПрдордкреА рддрдм рд╕реАрдкреАрдпреВ рдХреЛ рд╣реЙрдЯ-рдкреНрд▓рдЧ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдСрдЯреЛ-рд╕реЗрдВрд╕рд┐рдВрдЧ рдпреВрдПрд╕рдмреА рдореЗрдореЛрд░реА рд╕реНрдЯрд┐рдХ рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реА рдПрдХ рд╕реНрдЯреЗрдЯ рдорд╢реАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдЬреАрд╡рди рдЪрдХреНрд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред рдХрд░реНрдиреЗрд▓ рдкрд╛рд╡рд░ рдореИрдиреЗрдЬрдореЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдЕрдХреНрд╕рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЛрд░ (рдХреЛрд░) рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛рдиреБрд╕рд╛рд░ рдЙрдиреНрд╣реЗрдВ рдЬрдЧрд╛ рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдПрдХ рд╣реА рд╣реЙрдЯрдкреНрд▓рдЧ рд╕реАрдкреАрдпреВ рдХреЛрдб рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдЕрдирдЪрд╛рд╣реА рдорд╢реАрди рдкрд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдкрд╛рд╡рд░ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА
рдПрдХ offcputime.py
рд╣реЙрдЯрдкреНрд▓рдЧ рдХреЛ
рдмреАрд╕реАрд╕реА рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрд╕реЗ рдХреЙрд▓ рдХрд░рддреА рд╣реИ, рдЗрд╕реЗ
offcputime.py
ред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрдм
smp_init()
рдЪрд▓рд╛рдпрд╛
smp_init()
рддреЛ
init/main.c
рдХреЛрдб рд╕рдорд╛рдкреНрдд рд╣реЛ
smp_init()
ред рдмреВрдЯ рдкреНрд░реЛрд╕реЗрд╕рд░ рдиреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдХ рдмрд╛рд░ рдХреЗ рдЖрд░рдВрднреАрдХрд░рдг рдХреЛ рдкреВрд░рд╛ рдХрд┐рдпрд╛, рдЬрд┐рд╕реЗ рдЕрдиреНрдп рдЧреБрдард▓реА рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкреНрд░рддреНрдпреЗрдХ рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдереНрд░реЗрдбреНрд╕ рдмрдирд╛рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкрд░ рдЗрдВрдЯрд░рдкреНрдЯ (IRQ), рд╡рд░реНрдХрдЪреНрдпреВ, рдЯрд╛рдЗрдорд░ рдФрд░ рдкрд╛рд╡рд░ рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрд╕реЗрд╕рд░ рдереНрд░реЗрдбреНрд╕ рдХреЛ рджреЗрдЦреЗрдВ рдЬреЛ
ps -o psr.
рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╕реЙрдлреНрдЯрд░рд┐рдХреНрд╕ рдФрд░ рд╡рд░реНрдХрдХреЗрд╕ рдХреА рд╕реЗрд╡рд╛ рдХрд░рддреЗ рд╣реИрдВ
ps -o psr.
$\
рдЬрд╣рд╛рдВ PSR рдлрд╝реАрд▓реНрдб рдХрд╛ рдЕрд░реНрде рд╣реИ "рдкреНрд░реЛрд╕реЗрд╕рд░"ред рдкреНрд░рддреНрдпреЗрдХ рдХреЛрд░ рдХрд╛ рдЕрдкрдирд╛ рдЯрд╛рдЗрдорд░ рдФрд░ рд╕реАрдкреАрдпреВ рд╣реЙрдЯрдкреНрд▓рдЧ рд╣реИрдВрдбрд▓рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рдХреИрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдЕрдВрдд рдореЗрдВ,
kernel_init()
рдПрдХ
initrd
рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИ рдЬреЛ рдЕрдкрдиреА рдУрд░ рд╕реЗ
init
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдХрд░реНрдиреЗрд▓ рдЕрдкрдиреЗ рджрдо
init
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░
initrd
рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ?
рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди: initrd рдХрд╛ рдЖрджреЗрд╢ рдХрд┐рд╕рдиреЗ рджрд┐рдпрд╛?рдбрд┐рд╡рд╛рдЗрд╕ рдЯреНрд░реА рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдФрд░ init рдкрде, рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдмреВрдЯ рдкрд░ рдХрд░реНрдиреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛,
initrd
ред
initrd
рдЕрдХреНрд╕рд░ x86 рдкрд░ bzImage vmlinuz рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде / рдПрдЖрд░рдПрдо рдХреЗ рд╕рдорд╛рди рдпреВрдЖрдИрдореИрдЬ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдЯреНрд░реА рдХреЗ рд╕рд╛рде / рдмреВрдЯ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИред
intrd
рдХрдВрдЯреЗрдВрдЯ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЛ
intrd
рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐
initramfs-tools-core
рдкреИрдХреЗрдЬ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред Initrd рд╡рд┐рддрд░рдг рдЫрд╡рд┐ рдореЗрдВ рдиреНрдпреВрдирддрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
/bin
,
/sbin
рдФрд░
/etc
, рд╕рд╛рде рд╣реА рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ
/scripts
ред рд╕рдм рдХреБрдЫ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рдкрд░рд┐рдЪрд┐рдд рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐
initrd
рд╕рд░рд▓ рд▓рд┐рдирдХреНрд╕ рд░реВрдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рдорд╛рди рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣ рд╕рдорд╛рдирддрд╛ рдереЛрдбрд╝реА рд╕реА рднреНрд░рд╛рдордХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░реИрдордбрд┐рд╕реНрдХ рдХреЗ рдЕрдВрджрд░
/bin
рдФрд░
/sbin
рдореЗрдВ рд▓рдЧрднрдЧ рд╕рднреА рдирд┐рд╖реНрдкрд╛рджрдирдпреЛрдЧреНрдп
рд╡реНрдпрд╕реНрддрдордмрд╛рдЗрдирд░реА рдмрд╛рдЗрдирд░реА рдХреЗ рд▓рд┐рдП
рд╕реАрдорд▓рд┐рдВрдХ рд╣реИрдВ , рдЬреЛ / рдмрд┐рди рдФрд░ / sbin рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ
glibc
рддреБрд▓рдирд╛ рдореЗрдВ 10 рдЧреБрдирд╛ рдЫреЛрдЯрд╛ рдмрдирд╛рддрд╛ рд╣реИред
рдПрдХ
initrd
рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреНрдпреЛрдВ рдХрд░реЗрдВ рдЕрдЧрд░ рдПрдХрдорд╛рддреНрд░ рдЪреАрдЬ рдЬреЛ рдХреБрдЫ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд░рддреА рд╣реИ рдФрд░ рдПрдХ рдирд┐рдпрдорд┐рдд рд░реВрдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░
init
рдЪрд▓рд╛рддреА рд╣реИ? рдПрдХ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд░реВрдЯ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рд░реВрдЯ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ
/lib/modules
рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ... рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ,
initrd
ред рдХреНрд░рд┐рдкреНрдЯреЛ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдордирд╛ рдХрд░рдиреЗ рдХреЗ рдХрдИ рдХрд╛рд░рдг рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд░реНрдиреЗрд▓ рдХрд╛ рд╕реНрдереИрддрд┐рдХ рд╕рдВрдХрд▓рди рдЙрдкрд▓рдмреНрдз рднрдВрдбрд╛рд░рдг рдореЗрдВ рдлрд┐рдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рд╕реНрдереИрддрд┐рдХ рд╕рдВрдХрд▓рди рд▓рд╛рдЗрд╕реЗрдВрд╕ рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╢рд░реНрддреЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред Unsurprisingly, рднрдВрдбрд╛рд░рдг рдбреНрд░рд╛рдЗрд╡рд░, рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ HID (рдорд╛рдирд╡ рдЗрдирдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕) рдХреЛ
initrd
рдореЗрдВ рднреА рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдореВрд▓ рд░реВрдк рд╕реЗ рдХреЛрдИ рднреА рдХреЛрдб рдЬреЛ рд░реВрдЯ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрд░реНрдиреЗрд▓ рдХрд╛ рдПрдХ рдЖрд╡рд╢реНрдпрдХ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИред Initrd рдореЗрдВ рднреА, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛
рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ ACPI рдХреЛрдб рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдмрдЪрд╛рд╡ рд╢реЗрд▓ рдФрд░ рдХрд╕реНрдЯрдо initrd рдХреЗ рд╕рд╛рде рдордЬрд╝рд╛редinitrd
рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рд╕реНрдЯреЛрд░реЗрдЬ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рднреА рдмрдврд╝рд┐рдпрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг рдХреЛ
initrd
рдореЗрдВ рд░рдЦреЗрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдореЗрдореЛрд░реА рд╕реЗ рдЪрд▓рд╛рдПрдВ, рдЯреЗрд╕реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдирд╣реАрдВред
рдЕрдВрдд рдореЗрдВ, рдЬрдм
init
рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд╕рд┐рд╕реНрдЯрдо рдЪрд▓ рд░рд╣рд╛ рд╣реИ! рдЪреВрдВрдХрд┐ рдорд╛рдзреНрдпрдорд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рдорд╢реАрди рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ, рдкреГрд╖реНрдард╛рдВрдХрд┐рдд, рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдФрд░ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рд▓рд╛ рдкреНрд░рд╛рдгреА рдмрди рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рджрд░рдЕрд╕рд▓,
ps -o pid,psr,comm -p
рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдмреВрдЯ рд╕реНрдкреЗрд╕ рдкрд░ рдпреВрдЬрд░ рд╕реНрдкреЗрд╕
init
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдм рдирд╣реАрдВ рдЪрд▓ рд░рд╣реА рд╣реИред
рдкрд░рд┐рдгрд╛рдорд▓рд┐рдирдХреНрд╕ рдмреВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдирд┐рд╖рд┐рджреНрдз рд▓рдЧрддрд╛ рд╣реИ, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдореНрдмреЗрдбреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдПред рджреВрд╕рд░реА рдУрд░, рдмреВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдорд▓реНрдЯреАрдЯрд╛рд╕реНрдХрд┐рдВрдЧ, рдЖрд░рд╕реАрдпреВ рдФрд░ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рднреАрдбрд╝ рдХреЗ рдХрд╛рд░рдг рдХреЛрдИ рдЕрддреНрдпрдзрд┐рдХ рдЬрдЯрд┐рд▓рддрд╛ рдирд╣реАрдВ рд╣реИред рдХреЗрд╡рд▓ рдХрд░реНрдиреЗрд▓ рдФрд░ рдкреАрдЖрдИрдбреА тАЛтАЛ1 рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реБрдП, рдХрд░реНрдиреЗрд▓ рд▓реЙрдиреНрдЪ рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреВрдЯ рд▓реЛрдбрд░ рдФрд░ рд╕рд╣рд╛рдпрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдорд╣рд╛рди рдХрд╛рдо рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрд░реНрдиреЗрд▓ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреНрдп рд▓рд┐рдирдХреНрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдИрдПрд▓рдПрдл рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдмреВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рднрд╡рд┐рд╖реНрдп рдХреЗ рджреБрд░реНрдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░реЗрдЧрд╛ред
рдЕрдВрдд
рд╣рдо рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рдкреНрд░рд╢реНрди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдпрд╣рд╛рдВ рдпрд╛ рд╣рдорд╛рд░реЗ
рдЦреБрд▓реЗ рдкрд╛рда рдореЗрдВ рдЬрд╣рд╛рдВ рд▓рд┐рдпреЛрдирд┐рдж рдХреЛ рдЙрдбрд╝рд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред