Google рдХрд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ LLVM рдХрд╛ рд▓рд╛рдЧрд┐ рдЖрдлреНрдиреИ libc рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди рд╕реБрдЭрд╛рд╡ рджрд┐рдП

Google рдмрд╛рдЯ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рдЙрдард╛рдПрдХреЛ LLVM рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛ рдмрд╣реБ-рдкреНрд▓реЗрдЯрдлрд░реНрдо рдорд╛рдирдХ рд╕реА рдкреБрд╕реНрддрдХрд╛рд▓рдп (Libc) рдХреЛ рд╡рд┐рдХрд╛рд╕рдХреЛ рдмрд╛рд░реЗрдорд╛ LLVM рдореЗрд▓рд┐рдЩ рд╕реВрдЪреАрдорд╛ред рдзреЗрд░реИ рдХрд╛рд░рдгрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐, Google рд╣рд╛рд▓рдХреЛ libc (glibc, musl) рд╕рдБрдЧ рд╕рдиреНрддреБрд╖реНрдЯ рдЫреИрди рд░ рдХрдореНрдкрдиреАрд▓реЗ рдирдпрд╛рдБ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреЗ рдмрд╛рдЯреЛрдорд╛ рдЫ, рдЬреБрди LLVM рдХреЛ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред

LLVM рд╡рд┐рдХрд╛рд╕рд╣рд░реВ рд╣рд╛рд▓реИ рдЧреБрдЧрд▓рдХреЛ рдЕрд╕реЗрдВрдмрд▓реА рдЙрдкрдХрд░рдгрд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рдЖрдзрд╛рд░рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдЫред рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдпреЛ рд╣реЛ рдХрд┐ рдпрджрд┐ рдЧреБрдЧрд▓рд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдЖрдлреНрдиреЛ libc рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди рдерд╛рд▓реНрдпреЛ рднрдиреЗ, рдХрд┐рди рддреБрд░реБрдиреНрддреИ LLVM рдХреЛ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛ рдЖрдлреНрдиреЛ рдкреНрд░рдгрд╛рд▓реА рд╡рд┐рдХрд╛рд╕ рдирдЧрд░реНрдиреЗ, рдЬрд╕рд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ C++ (Libc++) рдХреЛ рд▓рд╛рдЧрд┐ рдЖрдлреНрдиреИ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рддрд░ C рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рди рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЫреИрдиред (libc)ред

рдмрд┐рд╕реНрддрд╛рд░реИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдмрдврд╛рдЙрдБрджреИ рдЪрд░рдгрд╣рд░реВрдорд╛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдЫред рдкрд╣рд┐рд▓реЛ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рд░ рдкреНрд░рдгрд╛рд▓реА Libc рдмреАрдЪрдХреЛ рддрд╣рдХреЛ рд░реВрдкрдорд╛ рдбрд┐рдЬрд╛рдЗрди рдЧрд░реНрди рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЫрдиреН, рдЬрд╕рдмрд╛рдЯ рдЕрдЭреИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирдЧрд░рд┐рдПрдХрд╛ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рдЙрдзрд╛рд░реЛ рдЧрд░рд┐рдиреЗрдЫред рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрддрд░рдорд╛ рдкреБрдЧреЗрдкрдЫрд┐, рдирдпрд╛рдБ Libc рд▓рд╛рдИ рдкреНрд░рдгрд╛рд▓реА Libc рдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдирдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рд╣рд╛рдореА x86-64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░, рд▓рд┐рдирдХреНрд╕, рд░ рд╕реНрдерд┐рд░ рд▓рд┐рдЩреНрдХрд┐рдЩ (рдЧрддрд┐рд╢реАрд▓ рд▓реЛрдбрд┐рдЩ, рд▓рд┐рдЩреНрдХрд┐рдЩ, рд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╣рд░реВ рджреЛрд╕реНрд░реЛ рд░реВрдкрдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдиреЗрдЫ) рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердирдХреЛ рд╕рд╛рде рд╕реБрд░реБ рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдмрдирд╛рдЙрдБрдЫреМрдВред

рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдЭреИ рд╡рд┐рдХрд╛рд╕рдХреЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдЪрд░рдгрдорд╛ рдЫ, рддрд░ рдЖрдзрд╛рд░рднреВрдд рд▓рдХреНрд╖реНрдпрд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ:

  • рдореЛрдиреЛрд▓рд┐рдерд┐рдХ рд╕реЗрдЯрдХреЛ рд╕рдЯреНрдЯрд╛ рдЧреНрд░реЗрдиреНрдпреБрд▓рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбреЗрд▓рд┐рднрд░ рдЧрд░реНрдиреЗ рджрд░реНрд╢рди рдЕрдиреБрд╕рд╛рд░ рдореЛрдбреБрд▓рд░рд┐рдЯреА рд░ рд╡рд┐рдХрд╛рд╕;
  • рдореЛрдбрд╣рд░реВрдорд╛ рд╕реНрдерд┐рд░ рд▓рд┐рдЩреНрдХрд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдкрд╛рдЗ (рд╕реНрдерд┐рддрд┐-рд╕реНрд╡рддрдиреНрддреНрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп) рд░ PIE рдмрд┐рдирд╛ред CRT (C рд░рдирдЯрд╛рдЗрдо) рд░ PIE рд▓реЛрдбрд░ рд╕реНрдерд┐рд░ рд░реВрдкрдорд╛ рд▓рд┐рдЩреНрдХ рдЧрд░рд┐рдПрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЧреНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрджреИ;
  • POSIX рдердкрд╣рд░реВ рд░ рдЕрд╡рд╕реНрдерд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдХреЗрд╣реА рдкреНрд░рдгрд╛рд▓реА-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВ рд╕рд╣рд┐рдд рдзреЗрд░реИ рдорд╛рдирдХ C рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди;
  • рд╡рд┐рдХреНрд░реЗрддрд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВрд╕рдБрдЧ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреБрд╣реЛрд╕реН рд░ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрд╛ рдорд╛рддреНрд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдердкреНрдиреБрд╣реЛрд╕реНред рддреЗрд╕реНрд░реЛ-рдкрдХреНрд╖ рд╡рд┐рд╕реНрддрд╛рд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердирдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛, рдпреЛ рдХреНрд▓реНрдпрд╛рдЩреНрдЧ рд░ libc++ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫ;
  • LLVM рдЯреВрд▓рдХрд┐рдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд┐рдХрд╛рд╕рдорд╛ рдЙрддреНрдХреГрд╖реНрдЯ рдЕрднреНрдпрд╛рд╕рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ, рдЬрд╕реНрддреИ рд╕реЗрдирд┐рдЯрд╛рдЗрдЬрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд░ рдлрдЬ рдкрд░реАрдХреНрд╖рдг рд╕реБрд░реБрджреЗрдЦрд┐ рдиреИред

рд╕рдХреНрд░рд┐рдп LLVM рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рдФрдВрд▓реНрдпрд╛рдПрдпреЛ рд╕реНрдкрд╖реНрдЯ рдЫ рдХрд┐ рдпрд╕рд▓реЗ LLVM рдЯреВрд▓рдХрд┐рдЯрдХреЛ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛ libc рдкрдард╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрд░реНрде рд░рд╛рдЦреНрдЫ, рддрд░ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдЬрдм рдпрд╕реНрддреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫ, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рд▓реЗрдЦрд┐рдПрдХреЛ musl рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рд╡рд┐рднрд┐рдиреНрди рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ, рд░ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рдЬрд╕рдорд╛ рдЧрддрд┐рд╢реАрд▓рдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рд╕рд╣рд┐рддред рд▓рд┐рдЩреНрдХ рдЧрд░реНрджреИред рдорд╕рд▓рд▓рд╛рдИ LLVM рдорд╛ рдЗрдореНрдмреЗрдб рдЧрд░реНрдиреБ рд░ рдпрд╕рд▓рд╛рдИ рдореБрдЦреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рд╕рдБрдЧ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬреНрдб рдлреЛрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреБ рдЙрдЪрд┐рдд рд╣реБрди рд╕рдХреНрдЫред

рддрдкрд╛рдИрдХреЛ рдкрдирд┐ рдмрд┐рдЪрд╛рд░ рд╡реНрдпрдХреНрдд рдЧрд░реЗ рдореБрд╕рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХрд╛ рд▓реЗрдЦрдХ, рдЬрд╕рд▓реЗ рдЧреБрдЧрд▓рдХреЛ рдкреНрд░рд╕реНрддрд╛рд╡ рд░ LLVM рд╡рд┐рддрд░рдгрдорд╛ Libc рдХреЛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреБ рдзреЗрд░реИ рдЦрд░рд╛рдм рд╡рд┐рдЪрд╛рд░рд╣рд░реВ рд╣реБрдиреН рднрдиреЗрд░ рддрд░реНрдХ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗ:

  • рд╕рд╣реА, рдорд┐рд▓реНрджреЛ рд░ рдЙрдЪреНрдЪ рдЧреБрдгрд╕реНрддрд░рдХреЛ Libc рдХреЛ рд╡рд┐рдХрд╛рд╕ рд░ рдорд░реНрдордд рдЧрд░реНрдиреБ рдзреЗрд░реИ рдЧрд╛рд╣реНрд░реЛ рдХрд╛рдо рд╣реЛред рд╕рдорд╕реНрдпрд╛ рдХреЛрдбрдХреЛ рдорд╛рддреНрд░рд╛рдорд╛ рд╣реЛрдЗрди, рддрд░ рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рд░ рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдХрдард┐рдирд╛рдЗрд╣рд░реВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдирдорд╛, C/C++ рдорд╛ рд▓реЗрдЦрд┐рдПрдХрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд╡рд┐рд╢рд╛рд▓ рддрд╣, рд╕рд╛рдереИ рдЕрдиреНрдп рднрд╛рд╖рд╛рд╣рд░реВрдорд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ, рдЬрд╕рдХреЛ рд░рдирдЯрд╛рдЗрдо рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред Libc рджреНрд╡рд╛рд░рд╛ред рд╕реВрдХреНрд╖реНрдорддрд╛рд╣рд░реВрд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рдирд▓рд┐рдИ рд╣реЗрдб-рдЕрди рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓реЗ рдорд╛рддреНрд░ рдпрд╕ рддрдереНрдпрд▓рд╛рдИ рдирд┐рдореНрддреНрдпрд╛рдЙрдиреЗрдЫ рдХрд┐ рдзреЗрд░реИ рдЕрд╡рд╕реНрдерд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ Libc рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗрдЫреИрдирдиреН, рддрд░ рддреНрдпрд╕реЛрднрдП рдпрд╕реНрддреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЙрдкрднреЛрдХреНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЪрд╛рд╕реЛрдХреЛ рд╣реБрдиреЗрдЫреИрдиред
  • рдХрд░реНрдкреЛрд░реЗрдЯ рд╡рд┐рдХрд╛рд╕рд▓реЗ Libc рд▓рд╛рдИ рдмрд░реНрдмрд╛рдж рдЧрд░реНрди рд╕рдХреНрдЫ, рддрд░ рдпрд╕рд▓рд╛рдИ рд╡реНрдпрд╛рдкрдХ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдзрдХреНрдХрд╛ рджрд┐рдиреНрдЫ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдорд╛ рдЕрдиреБрдХреВрд▓рддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рд╣реНрдпрд╛рдХрд╣рд░реВ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫред рдПрдХ рдХрд░реНрдкреЛрд░реЗрдЯ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЖрд╢реНрд░рдп рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рдХрд╛рд╕ рдХрдореНрдкрдиреА рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд░ рд╕рдорд╛рдзрд╛рди рдХреЛ рд▓рд╛рдЧреА рдХрдореНрдкреНрд▓реЗрдЯ рддрд╛рдиреНрдиреЗрдЫ, рд╕рдореБрджрд╛рдп рдХреЛ рд╣рд┐рдд рдХреЛ рд╣рд╛рдирд┐ рдХреЛ рд▓рд╛рдЧреАред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдЕрд░реНрдХреЛ рдХрд╛рд░реНрдпрдХреНрд░рдордорд╛ рдмрдЧрдХреЛ рдХрд╛рд░рдгрд▓реЗ рднрдПрдХреЛ рд╕рдорд╕реНрдпрд╛ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рдирд┐рдпрдиреНрддреНрд░рд┐рдд рд╡рд┐рдХрд╛рд╕рдорд╛ рдпреЛ рдмрдЧ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреБ рднрдиреНрджрд╛ Libc рдпреЛ рдмрдЧрд╕рдБрдЧ рдЙрдкрдпреБрдХреНрдд рдЫ рднрдиреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рд╣реБрдиреНрдЫред Apple рд▓реЗ рдпреА рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ BSD libc рдлреЛрд░реНрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рд░ Google рд▓реЗ Fuchsia рдорд╛ musl fork рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рдореБрд╕рд▓ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХреЛ рдЕрдиреБрднрд╡ рдпреЛ рдЫ рдХрд┐ рдЙрд╣рд╛рдБрд▓рд╛рдИ рдореБрдЦреНрдпрддрдпрд╛ рд╡рдХрд┐рд▓рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕реНрдкрд╖реНрдЯ рдЧрд░реНрди рд╕рдореНрдкрд░реНрдХ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рддрд░ рдЙрд╣рд╛рдБрдХрд╛ рд╢рд╛рдЦрд╛рд╣рд░реВрдорд╛ рдмреЗрдХрд╛рд░ рд░ рд╡рд┐рдШрдЯрдирдХрд╛рд░реА рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЧрд░реНрдиреБ рдЕрдШрд┐ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╡рд┐рд╡рд░рдгрд╣рд░реВ рд╕реНрдкрд╖реНрдЯ рдЧрд░реНрди рдХрд╣рд┐рд▓реНрдпреИ рд╕рдореНрдкрд░реНрдХ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдПрдиред
  • Libc рд╡рд┐рдХрд╛рд╕рдорд╛ рдПрдХрд▓ рд╕рдВрд╕реНрдХреГрддрд┐рдХреЛ рдЕрднрд╛рд╡ рд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдирд┐рдпрдиреНрддреНрд░рдгрдХреЛ рд╕рдЯреНрдЯрд╛ рд╕рд╣рдорддрд┐-рд╕рдВрдЪрд╛рд▓рд┐рдд рдорд╛рдкрджрдгреНрдбрд╣рд░реВрдорд╛ рдлреЛрдХрд╕, рдЬрд╕рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВрдорд╛ рдмрд╛рдБрдзреНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ рдорд╛рдирдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЙрддреНрдкреНрд░реЗрд░рд┐рдд рдЧрд░реНрджрдЫред рдпрд╕реИрд▓реЗ рдореБрд╕рд▓рдХрд╛ рд▓реЗрдЦрдХ LLVM рдорд╛ рдЖрдлреНрдиреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рд╡рд┐рд░реБрджреНрдз рдЫрдиреН, рд╕рд╛рдереИ LLVM рднрд┐рддреНрд░ libc рдХреЛ рд╡рд┐рдХрд╛рд╕рдХреЛ рд╡рд┐рд░реБрджреНрдзрдорд╛ рдЫрдиреН, рдХрд┐рдирдХрд┐ рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ libc рдХреЛ рд╕реНрд╡рддрдиреНрддреНрд░ рдкреНрд░рдХреГрддрд┐ рд╣рд░рд╛рдПрдХреЛ рдЫ рд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд╣рд┐рд▓реЛ-рд╕реНрддрд░реАрдп рд╕рдорд╛рдзрд╛рди рд╣реБрдиреНрдЫред LLVM, рд░ рдЕрд░реВ рд╕рдмреИ рджреЛрд╕реНрд░реЛ-рдХрдХреНрд╖рд╛ рд╕рдорд╛рдзрд╛рди рдмрдиреНрдЫрдиреНред

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

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