рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рдорд╛ рд░рд╕реНрдЯ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдгрд╣рд░реВ рдердкреНрдиреЗ рдореБрджреНрджрд╛рдорд╛ рдЫрд▓рдлрд▓ рдЧрд░реНрди рдкреНрд░рд╕реНрддрд╛рд╡

рдирд┐рдХ рдбрд┐рд╕рд╛рдЧреНрдирд┐рдпрд░ (рдирд┐рдХ рдбреЗрд╕рд▓рдирд┐рдпрд░реНрд╕), рдЬрд╕рд▓реЗ рдкреНрд░рджрд╛рди рдЧрд░реНрди Google рдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫ рд╕рдорд░реНрдерди Clang рдХрдореНрдкрд╛рдЗрд▓рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрджреИ рд░ рдкрдирд┐ рдорджреНрджрдд рдЧрд░реНрджреИ рд░рд╕реНрдЯ рдХрдореНрдкрд╛рдЗрд▓рд░рдорд╛ рдмрдЧрд╣рд░реВ рдареАрдХ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╕реБрдЭрд╛рд╡ рджрд┐рдП рд╕рдореНрдореЗрд▓рдирдорд╛ рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН рд▓рд┐рдирдХреНрд╕ рдкреНрд▓рдВрдмрд░ рд╕рдореНрдореЗрд▓рди реирежреиреж Rust рдорд╛ рдХрд░реНрдиреЗрд▓ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрди рдЫрд▓рдлрд▓ рдЧрд░реНрди рд╕рддреНрд░ред рдирд┐рдХрд▓реЗ LLVM рд▓рд╛рдИ рд╕рдорд░реНрдкрд┐рдд рдорд╛рдЗрдХреНрд░реЛ-рдХрдиреНрдлреНрд░реЗрдиреНрд╕ рдЖрдпреЛрдЬрдирд╛ рдЧрд░реНрджреИрдЫ, рд░ рдХрд░реНрдиреЗрд▓рдорд╛ рд░рд╕реНрдЯ рд╕рдорд░реНрдердирдХреЛ рд╕рдореНрднрд╛рд╡рд┐рдд рдПрдХреАрдХрд░рдгрдХрд╛ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдкрдХреНрд╖рд╣рд░реВрдмрд╛рд░реЗ рдЫрд▓рдлрд▓ рдЧрд░реНрди рдкрд╛рдЙрдБрджрд╛ рд░рд╛рдореНрд░реЛ рд╣реБрдиреЗрдЫ (рдЙрдирд▓реЗ рдХреЗрдмрд┐рд▓реНрдбрдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рдо рдЧрд░реНрдиреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рддрдпрд╛рд░ рдЧрд░рд┐рд╕рдХреЗрдХрд╛ рдЫрдиреН) рд░ рддреНрдпрд╕реНрддрд╛ рд╕рдорд░реНрдерди рдЧрд░реНрдиреБрдкрд░реНрдЫ рдХрд┐ рднрдиреЗрд░ рдмреБрдЭреНрдиреБрд╣реЛрд╕реНред рд╕рдмреИрдорд╛ рдердкрд┐рдиреЗрдЫ рд░ рд░рд╕реНрдЯрдХреЛ рдкреНрд░рдпреЛрдЧрдорд╛ рдХреЗ рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реВ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рд╣рд╛рдореАрд▓рд╛рдИ рд╕рдореНрдЭрдиреБрд╣реЛрд╕реН рдХрд┐ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╢рд┐рдЦрд░ рд╕рдореНрдореЗрд▓рди рд░ рдПрдореНрдмреЗрдбреЗрдб рд▓рд┐рдирдХреНрд╕ рд╕рдореНрдореЗрд▓рдирдорд╛ рднрд░реНрдЦрд░рдХреЛ рдЫрд▓рдлрд▓рдорд╛, рд▓рд┐рдирд╕ рдЯреЛрд░рднрд╛рд▓реНрдбреНрд╕ред рдпрд╕рд▓рд╛рдИ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реЗрдирдиреН рд░рд╕реНрдЯ рдЬрд╕реНрддрд╛ рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдЧреИрд░-рдХреЛрд░ рдХрд░реНрдиреЗрд▓ рд╕рдмрд╕рд┐рд╕реНрдЯрдорд╣рд░реВ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ) рдХреЛ рд╡рд┐рдХрд╛рд╕рдХреЛ рд▓рд╛рдЧрд┐ рдмрд╛рдЗрдиреНрдбрд┐рдЩрдХреЛ рдЙрджрдпред Rust рдорд╛ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕рдорд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░ рд░рд╛рдореНрд░реЛ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреЗрдЫ, рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдореБрдХреНрдд рдЧрд░реЗрдкрдЫрд┐ рдореЗрдореЛрд░реА рдкрд╣реБрдБрдЪ, рдирд▓ рдкреЛрдЗрдиреНрдЯрд░ рдбрд┐рд░реЗрдлрд░реЗрдиреНрд╕рд╣рд░реВ, рд░ рдмрдлрд░ рдУрднрд░рд░рдирд╣рд░реВред рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдкрд╣рд┐рд▓реЗ рдиреИ рдзреЗрд░реИ рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдЫрдиреН:

  • "рдмреНрдпрд╛рд░реЗрд▓рдорд╛ рдорд╛рдЫрд╛" рдХрдореНрдкрдиреАрдмрд╛рдЯ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рддрдпрд╛рд░ рд░рд╕реНрдЯ рднрд╛рд╖рд╛рдорд╛ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рдХрд╛ рд▓рд╛рдЧрд┐ рд▓реЛрдб рдЧрд░реНрди рдорд┐рд▓реНрдиреЗ рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рд▓реЗрдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЯреБрд▓рдХрд┐рдЯ, рд╕реБрд░рдХреНрд╖рд╛ рдмрдврд╛рдЙрди рдЗрдиреНрдЯрд░рдлреЗрд╕ рд░ рдХрд░реНрдиреЗрд▓ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВрдорд╛ рд╕рд╛рд░ рддрд╣рд╣рд░реВрдХреЛ рд╕реЗрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ред рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЕрд╡рд╕реНрдерд┐рдд рдХрд░реНрдиреЗрд▓ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рддрд╣рд╣рд░реВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫрдиреН bingenред рддрд╣рд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдХреНрд▓реНрдпрд╛рдЩ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдЗрдиреНрдЯрд░рд▓реЗрдпрд░рд╣рд░реВрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рдПрд╕реЗрдореНрдмрд▓ рдореЛрдбреНрдпреБрд▓рд╣рд░реВрд▓реЗ рд╕реНрдЯреЗрдЯрд┐рдХрд▓рд┐рдм рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред
  • рд╣рдЩрдХрдЩрдХреЛ рдЪрд┐рдирд┐рдпрд╛рдБ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдпрдХрд╛ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдХрд░реНрддрд╛рд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рд░рд╕реНрдЯрдорд╛ рдЗрдореНрдмреЗрдбреЗрдб рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рд░ рдЗрдиреНрдЯрд░рдиреЗрдЯ рдЕрдл рдерд┐рдВрдЧреНрд╕ рдпрдиреНрддреНрд░рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛, рдЬрд╕рд▓реЗ рдХрд░реНрдиреЗрд▓ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рддрд╣рд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдмрд┐рдиреНрдбрдЬреЗрди рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рдврд╛рдБрдЪрд╛рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрд░реНрдиреЗрд▓рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдирдЧрд░реА рдбреНрд░рд╛рдЗрднрд░ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ - рдХрд░реНрдиреЗрд▓рдорд╛ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдердк рдЕрд▓рдЧрд╛рд╡ рд╕реНрддрд░рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛, рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рд╕реНрдЯ рднрд╛рд╖рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рд╕рдВрдХрд▓рди рдЪрд░рдгрдорд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд░реЛрдХреНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред рдпрд╕реНрддреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЙрдкрдпреБрдХреНрдд рд▓реЗрдЦрд╛рдкрд░реАрдХреНрд╖рдг рд╕рдЮреНрдЪрд╛рд▓рди рдирдЧрд░реА рд╣рддрд╛рд░рдорд╛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреЗ рдЙрдкрдХрд░рдг рдирд┐рд░реНрдорд╛рддрд╛рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдорд╛рдЧ рд╣реБрди рд╕рдХреНрдЫ рднрдиреНрдиреЗ рдЕрдиреБрдорд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫред
  • рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ C2Rust рд░рд╕реНрдЯрдорд╛ рд╕реА рдХреЛрдб рдкреНрд░рд╕рд╛рд░рдгрдХреЛ рд▓рд╛рдЧрд┐, рдЦрд░реНрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдиреНрдпреВрдирддрдо рдореНрдпрд╛рдиреБрдЕрд▓ рд╕рдореНрдкрд╛рджрдирдХреЛ рд╕рд╛рде рдХрд░реНрдиреЗрд▓ рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рд░реВрдкрд╛рдиреНрддрд░рдгрдорд╛ рдкреНрд░рдпреЛрдЧрд╣рд░реВред рдиреЛрдЯ рдЧрд░рд┐рдПрдХрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдЙрдЯрд╛ рдХреЛрдбрдХреЛ рдХрд░реНрдиреЗрд▓рдХреЛ рдзреЗрд░реИ рднрд╛рдЧрд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рд╣реЛ рдЬрд╕рд▓реЗ GCC рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ рдЬреБрди рдЕрдЭреИ C2Rust рдорд╛ рд╕рдорд░реНрдерд┐рдд рдЫреИрдиред рдпреЛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди, C2Rust рд▓реЗ GCC рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рдЗрдирд▓рд╛рдЗрди, рдЪрд┐рд╕реЛ, рдЙрдкрдирд╛рдо, рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рд░ рдЦрдгреНрдбрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкреНрдиреЗ рдпреЛрдЬрдирд╛ рдмрдирд╛рдПрдХреЛ рдЫ, рд╕рд╛рдереИ рдЗрдирд▓рд╛рдЗрди рдПрд╕реЗрдореНрдмрд▓рд░рдХреЛ рдХреНрд╖рдорддрд╛рд╣рд░реВ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрдиреЗ рд░ рдкрдЩреНрдХреНрддрд┐рдмрджреНрдз рд░ рдкреНрдпрд╛рдХ рдЧрд░рд┐рдПрдХрд╛ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВрд╕рдБрдЧ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, xregs_state)ред ред рдореНрдпрд╛рдиреБрдЕрд▓ рдХрд╛рдо рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрдиреЗ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдорд╛ рдЧреИрд░-рддреБрдЪреНрдЫ рд╕реА рдореНрдпрд╛рдХреНрд░реЛрд╣рд░реВ Rust рдореНрдпрд╛рдХреНрд░реЛрдорд╛ рдЕрдиреБрд╡рд╛рдж рдЧрд░реНрди рдЕрд╕рдХреНрд╖рдорддрд╛ рд░ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдкреБрди: рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдиреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫ, рдХрд┐рдирдХрд┐ C2Rust рд▓рд╛рдИ libc рдкреНрдпрд╛рдХреЗрдЬрдорд╛ рдкрд░рд┐рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ C рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдЕрдиреБрд╡рд╛рдж рдЧрд░реНрджрдЫ, рддрд░ рдпреЛ рдкреНрдпрд╛рдХреЗрдЬ рдХрд░реНрдиреЗрд▓ рдореЛрдбреНрдпреБрд▓рд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрдиред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди