рдХрд╕реНрдореЛрдкреЛрд▓рд┐рдЯрди реи.реж рдкрд░рд┐рдпреЛрдЬрдирд╛, рдЬрд╕рд▓реЗ рдПрдХ рдорд╛рдирдХ C рдкреБрд╕реНрддрдХрд╛рд▓рдп рд░ рдПрдХ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдврд╛рдБрдЪрд╛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрдЫ рдЬреБрди рджреЛрднрд╛рд╖реЗ рд╡рд╛ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдмрд┐рдирд╛ рд╡рд┐рднрд┐рдиреНрди рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдорд╣рд░реВрдорд╛ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдЬрд╛рд░реА рдЧрд░рд┐рдПрдХреЛ рдЫред GCC рд░ Clang рд╕рдБрдЧ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрджрд╛ рдХреБрдиреИ рдкрдирд┐ рд╡рд┐рддрд░рдгрдорд╛ рдЪрд▓реНрди рд╕рдХреНрдиреЗ рд╕реНрдерд┐рд░ рд░реВрдкрдорд╛ рд▓рд┐рдЩреНрдХ рдЧрд░рд┐рдПрдХреЛ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓рдорд╛ рдкрд░рд┐рдгрд╛рдо рд╣реБрдиреНрдЫред Linux, macOS, Windows, FreeBSD, OpenBSD, NetBSD, рд░ BIOS рдкрд╣реБрдБрдЪ рдкрдирд┐ред рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдХреЛрдб ISC рд▓рд╛рдЗрд╕реЗрдиреНрд╕ (MIT/BSD рд▓рд╛рдЗрд╕реЗрдиреНрд╕рдХреЛ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг) рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред
рдпреБрдирд┐рднрд░реНрд╕рд▓ рдПрдХреНрдЬрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓рд╣рд░реВ рдмрдирд╛рдЙрдиреЗ рдХрдиреНрдЯреЗрдирд░ рдПрдЙрдЯреИ рдлрд╛рдЗрд▓рдорд╛ рд╡рд┐рднрд┐рдиреНрди рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЦрдгреНрдбрд╣рд░реВ рд░ рд╣реЗрдбрд░рд╣рд░реВ (PE, ELF, MACHO, OPENBSD) рд╕рдВрдпреЛрдЬрдирдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫ, рдпреБрдирд┐рдХреНрд╕рдорд╛ рдкреНрд░рдпреЛрдЧ рд╣реБрдиреЗ рдзреЗрд░реИ рдлрд░рдХ рдврд╛рдБрдЪрд╛рд╣рд░реВ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрджреИ, Windows ╨╕ macOSрдПрдЙрдЯрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓ рд╕реБрд░реБ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рднрдиреНрдиреЗ рдХреБрд░рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди Windows рд░ рдпреБрдирд┐рдХреНрд╕ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрд▓реЗ рдлрд╛рдЗрд▓ рдПрдиреНрдХреЛрдбрд┐рдЩрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЪрд╛рд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреН Windows рдердореНрдкрд╕рди рд╢реЗрд▓рдХреЛ "#!" рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд╛рд░реНрдХрд░рдХреЛ рдЕрднрд╛рд╡рдХреЛ рдлрд╛рдЗрджрд╛ рдЙрдард╛рдЙрдБрджреИ, PE рд▓рд╛рдИ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдзреЗрд░реИ рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди (рд╕рдмреИ рд╕реНрд░реЛрддрд╣рд░реВрд▓рд╛рдИ рдПрдЙрдЯреИ рдлрд╛рдЗрд▓рдорд╛ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрджреИ), рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓рд▓рд╛рдИ рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛ рдврд╛рдБрдЪрд╛ рдЧрд░рд┐рдПрдХреЛ ZIP рдЕрднрд┐рд▓реЗрдЦрдХреЛ рд░реВрдкрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдврд╛рдБрдЪрд╛ (рдЙрджрд╛рд╣рд░рдг: hello.com рдЕрдиреБрдкреНрд░рдпреЛрдЧ):
MZqFpD=' BIOS BOOT SECTOR' exec 7 $(command -v $0) printf '\177ELF...LINKER-ENCODED-FREEBSD-HEADER' >&7 exec "$0" "$@" exec qemu-x86_64 "$0" "$@" рдмрд╛рд╣рд┐рд░ рдирд┐рд╕реНрдХрдиреБрд╣реЛрд╕реН рез рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореЛрдб... ELF рдЦрдгреНрдбрд╣рд░реВ... OPENBSD рдиреЛрдЯ... рдорд╛рдЪреЛ рд╣реЗрдбрд░рд╣рд░реВ... рдХреЛрдб рд░ рдбреЗрдЯрд╛... рдЬрд┐рдк рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛...
рдлрд╛рдЗрд▓рдХреЛ рд╕реБрд░реБрдорд╛, "MZqFpD" рд▓реЗрдмрд▓ рд╕рдВрдХреЗрдд рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬреБрди рдврд╛рдБрдЪрд╛ рд╣реЗрдбрд░рдХреЛ рд░реВрдкрдорд╛ рдмреБрдЭрд┐рдиреНрдЫред Windows PEред рдпреЛ рдЕрдиреБрдХреНрд░рдорд▓реЗ "pop %r10; jno 0x4a; jo 0x4a," рдирд┐рд░реНрджреЗрд╢рди рд░ "\177ELF" рд╕реНрдЯреНрд░рд┐рдЩрд▓рд╛рдИ "jg 0x47" рдирд┐рд░реНрджреЗрд╢рдирдорд╛ рдкрдирд┐ рдбрд┐рдХреЛрдб рдЧрд░реНрдЫ, рдЬреБрди рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдиреНрджреБрдорд╛ рдкреБрди:рдирд┐рд░реНрджреЗрд╢рдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдпреБрдирд┐рдХреНрд╕ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛, рд╢реЗрд▓ рдХреЛрдб exec рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреНрдЫ, рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХреЛрдбрд▓рд╛рдИ рдЕрдЬреНрдЮрд╛рдд рдкрд╛рдЗрдк рдорд╛рд░реНрдлрдд рдкрд╛рд╕ рдЧрд░реНрджреИред рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд┐рдзрд┐рдХреЛ рд╕реАрдорд╛ рдпреЛ рд╣реЛ рдХрд┐ рдпрд╕рд▓рд╛рдИ рдердореНрдкрд╕рди рд╢реЗрд▓ рдЕрдиреБрдХреВрд▓рддрд╛ рдореЛрдбрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рд╢реЗрд▓рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпреБрдирд┐рдХреНрд╕-рдЬрд╕реНрддреЛ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдорд╣рд░реВрдорд╛ рдорд╛рддреНрд░ рдЪрд▓рд╛рдЙрди рд╕рдХрд┐рдиреНрдЫред
qemu-x86_64 рдХрд▓ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреАрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ x86_64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдХреЛ рд▓рд╛рдЧрд┐ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдПрдХреЛ рдХреЛрдбрд▓рд╛рдИ рдЧреИрд░-x86 рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдорд╛ рдЪрд▓рд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЬрд╕реНрддреИ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдмреЛрд░реНрдбрд╣рд░реВ рд░ ARM рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВрд▓реЗ рд╕реБрд╕рдЬреНрдЬрд┐рдд рдПрдкреНрдкрд▓ рдЙрдкрдХрд░рдгрд╣рд░реВред рдпреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо (рдмреЗрдпрд░ рдореЗрдЯрд▓) рдмрд┐рдирд╛ рдЪрд▓реНрдиреЗ рд╕реНрд╡-рдирд┐рд╣рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рддреНрдпрд╕реНрддрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдорд╛, рдмреБрдЯрд▓реЛрдбрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдпрдорд╛ рд╕рдВрд▓рдЧреНрди рд╣реБрдиреНрдЫ, рд░ рдХрд╛рд░реНрдпрдХреНрд░рдорд▓реЗ рдмреБрдЯреЗрдмрд▓ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдордХреЛ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдп рдЧрд░реНрджрдЫред
рдкрд░рд┐рдпреЛрдЬрдирд╛рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд libc рдорд╛рдирдХ C рдкреБрд╕реНрддрдХрд╛рд▓рдпрд▓реЗ реирежреирек рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ (рдкрд╣рд┐рд▓реЛ рд░рд┐рд▓реАрдЬрдорд╛ рд▓рдЧрднрдЧ резрекрежреж рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдерд┐рдП)ред рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрдирдХреЛ рд╣рд┐рд╕рд╛рдмрд▓реЗ, Cosmopolitan glibc рдЬрддреНрддрд┐рдХреИ рдЫрд┐рдЯреЛ рдЫ рд░ MUSL рд░ Newlib рднрдиреНрджрд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдЫрд┐рдЯреЛ рдЫ, Cosmopolitan рдХреЛ рдХреЛрдб рдЖрдХрд╛рд░ glibc рднрдиреНрджрд╛ рд╕рд╛рдиреЛ рдкрд░рд┐рдорд╛рдгрдХреЛ рдХреНрд░рдо рд░ рд▓рдЧрднрдЧ MUSL рд░ Newlib рд╕рдБрдЧ рдмрд░рд╛рдмрд░ рднрдП рддрд╛рдкрдирд┐ред memcpy рд░ strlen рдЬрд╕реНрддрд╛ рдмрд╛рд░рдореНрдмрд╛рд░ рднрдирд┐рдиреЗ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдХреВрд▓рди рдЧрд░реНрди, "рдЯреНрд░рд┐рдХрд▓-рдбрд╛рдЙрди рдкреНрд░рджрд░реНрд╢рди" рдкреНрд░рд╡рд┐рдзрд┐ рдердк рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдпреЛ рдкреНрд░рд╡рд┐рдзрд┐рд▓реЗ рдкреНрд░рдХрд╛рд░реНрдп рдХрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдореНрдпрд╛рдХреНрд░реЛ рд░реНтАНрдпрд╛рдкрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХреНрд░рдордорд╛ рдкреНрд░рдпреЛрдЧ рд╣реБрдиреЗ CPU рджрд░реНрддрд╛рд╣рд░реВрдХреЛ рдХрдореНрдкрд╛рдЗрд▓рд░рд▓рд╛рдИ рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдиреНрдЫред рдпрд╕рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рджрд░реНрддрд╛рд╣рд░реВ рдорд╛рддреНрд░ рдмрдЪрдд рдЧрд░реЗрд░ CPU рдЕрд╡рд╕реНрдерд╛ рд╕рдВрд░рдХреНрд╖рдг рдЧрд░реНрджрд╛ рд╕реНрд░реЛрддрд╣рд░реВ рдмрдЪрдд рдЧрд░реНрдЫред
рдирдпрд╛рдБ рд░рд┐рд▓реАрдЬрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдордзреНрдпреЗ:
- рдЬрд┐рдк рдлрд╛рдЗрд▓ рднрд┐рддреНрд░ рдЖрдиреНрддрд░рд┐рдХ рд╕реНрд░реЛрддрд╣рд░реВ рдкрд╣реБрдБрдЪ рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХреЛ рдЫ (рдлрд╛рдЗрд▓рд╣рд░реВ рдЦреЛрд▓реНрджрд╛, рд╕рд╛рдорд╛рдиреНрдп рдорд╛рд░реНрдЧрд╣рд░реВ /zip/тАж рдЕрдм zip:.. рдЙрдкрд╕рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рдкрд╣реБрдБрдЪ рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ)ред рддреНрдпрд╕реНрддреИ рдЧрд░реА, рдбрд┐рд╕реНрдХрд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ Windows "C:/..." рдХреЛ рд╕рдЯреНрдЯрд╛ "/c/..." рдЬрд╕реНрддрд╛ рдорд╛рд░реНрдЧрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдПрдХреЛ рдЫред
- рдПрдЙрдЯрд╛ рдирдпрд╛рдБ APE (рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдкрдорд╛ рдкреЛрд░реНрдЯреЗрдмрд▓ рдПрдХреНрдЬрд┐рдХреНрдпреБрдЯреЗрдмрд▓) рд▓реЛрдбрд░ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓ рдврд╛рдБрдЪрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫред рдирдпрд╛рдБ рд▓реЛрдбрд░рд▓реЗ рдореЗрдореЛрд░реАрдорд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВ рдЖрд╡рдВрдЯрд┐рдд рдЧрд░реНрди mmap рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ рд░ рдЕрдм рдЙрдбрд╛рдирдорд╛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрджреИрдиред рдЖрд╡рд╢реНрдпрдХ рднрдПрдорд╛, рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓рд▓рд╛рдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдорд╛рдирдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред
- рдкреНрд▓реЗрдЯрдлрд░реНрдордорд╛ Linux APE рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рд╕реБрд░реБ рдЧрд░реНрди binfmt_misc рдХрд░реНрдиреЗрд▓ рдореЛрдбреНрдпреБрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫред рдпреЛ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдХреЛ рдЫ рдХрд┐ binfmt_misc рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рд╕рдмреИрднрдиреНрджрд╛ рдЫрд┐рдЯреЛ рд╕реБрд░реБрд╡рд╛рдд рд╡рд┐рдзрд┐ рд╣реЛред
- рдЧрд░реНрди Linux OpenBSD рдкрд░рд┐рдпреЛрдЬрдирд╛рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд pledge() рд░ unveil() рдкреНрд░рдгрд╛рд▓реА рдХрд▓рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред C, C++, Python, рд░ Redbean рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВрдорд╛ рдпреА рдХрд▓рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ API рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫ, рд╕рд╛рдереИ рдордирдорд╛рдиреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд▓рд╛рдИ рдЕрд▓рдЧ рдЧрд░реНрди pledge.com рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкрдирд┐ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫред
- рдпреЛ рдирд┐рд░реНрдорд╛рдгрд▓реЗ рд▓реНрдпрд╛рдиреНрдбрд▓рдХ рдореЗрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рдЬреБрди GNU рдореЗрдХ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛ рдЬрд╕рдорд╛ рдердк рдХрдбрд╛ рдирд┐рд░реНрднрд░рддрд╛ рдЬрд╛рдБрдЪ рд░ рд▓реНрдпрд╛рдиреНрдбрд▓рдХ рдкреНрд░рдгрд╛рд▓реА рдХрд▓ рд╣реЛ рдЬрд╕рд▓реЗ рдХрд╛рд░реНрдпрдХреНрд░рдорд▓рд╛рдИ рдмрд╛рдБрдХреА рдкреНрд░рдгрд╛рд▓реАрдмрд╛рдЯ рдЕрд▓рдЧ рдЧрд░реНрджрдЫ рд░ рдХреНрдпрд╛рд╕рд┐рдЩ рджрдХреНрд╖рддрд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрджрдЫред рдирд┐рдпрдорд┐рдд GNU рдореЗрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдирд┐рд░реНрдорд╛рдг рдХреНрд╖рдорддрд╛рд╣рд░реВ рдкрдирд┐ рд╡рд┐рдХрд▓реНрдкрдХреЛ рд░реВрдкрдорд╛ рдЙрдкрд▓рдмреНрдз рдЫрдиреНред
- рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо-рд╡рд┐рд╢рд┐рд╖реНрдЯ API рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рд░реНтАНрдпрд╛рдкрд░рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджреИ, рдорд▓реНрдЯрд┐рдереНрд░реЗрдбрд┐рдЩ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ _spawn() рд░ _join() рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫред POSIX рдереНрд░реЗрдбрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдкрдирд┐ рдХрд╛рдо рднрдЗрд░рд╣реЗрдХреЛ рдЫред
- рдкреНрд░рддрд┐-рдереНрд░реЗрдб рднрдгреНрдбрд╛рд░рдг (TLS, рдереНрд░реЗрдб-рд╕реНрдерд╛рдиреАрдп рднрдгреНрдбрд╛рд░рдг) рд╕рдХреНрд╖рдо рдЧрд░реНрди _Thread_local рдХрд┐рд╡рд░реНрдб рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдПрдХреЛ рдЫред рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, C рд░рдирдЯрд╛рдЗрдорд▓реЗ рдореБрдЦреНрдп рдереНрд░реЗрдбрдХреЛ рд▓рд╛рдЧрд┐ TLS рд╕реБрд░реБ рдЧрд░реНрдЫ, рдЬрд╕рд▓реЗ рдиреНрдпреВрдирддрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓ рдЖрдХрд╛рд░ резреи рдмрд╛рдЯ резрем KB рдорд╛ рдмрдврд╛рдПрдХреЛ рдЫред
- stderr рдорд╛ рд╕рдмреИ рдкреНрд░рдХрд╛рд░реНрдп рдХрд▓рд╣рд░реВ рд░ рдкреНрд░рдгрд╛рд▓реА рдХрд▓рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдЫрд╛рдкреНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ "--ftrace" рд░ "--strace" рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛред
- closefrom() рдкреНрд░рдгрд╛рд▓реА рдХрд▓рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ, рдпрд╕рдорд╛ рд╕рдорд░реНрдерд┐рдд Linux рел.реп+, рдлреНрд░реАрдмреАрдПрд╕рдбреА рео+ рд░ рдУрдкрдирдмреАрдПрд╕рдбреАред
- рдкреНрд▓реЗрдЯрдлрд░реНрдордорд╛ Linux vDSO (рднрд░реНрдЪреБрдЕрд▓ рдбрд╛рдпрдирд╛рдорд┐рдХ рд╕реЗрдпрд░ рдЧрд░рд┐рдПрдХреЛ рд╡рд╕реНрддреБ) рд╕рдВрдпрдиреНрддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ clock_gettime рд░ gettimeofday рдХрд▓рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди резреж рдЧреБрдгрд╛рд╕рдореНрдо рдмрдврд╛рдЗрдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдкреНрд░рдгрд╛рд▓реА рдХрд▓ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдард╛рдЙрдБрдорд╛ рд╕рд╛рд░реНрди рд░ рд╕рдиреНрджрд░реНрдн рд╕реНрд╡рд┐рдЪрд╣рд░реВрдмрд╛рдЯ рдмрдЪреНрди рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫред
- рдЬрдЯрд┐рд▓ рд╕рдВрдЦреНрдпрд╛рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдпрд╣рд░реВ Musl рдкреБрд╕реНрддрдХрд╛рд▓рдпрдмрд╛рдЯ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░рд┐рдПрдХреЛ рдЫред рдзреЗрд░реИ рдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╕реБрдзрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫред
- рдиреЗрдЯрд╡рд░реНрдХрд┐рдЩ рдХреНрд╖рдорддрд╛рд╣рд░реВ рдЕрд╕рдХреНрд╖рдо рдкрд╛рд░реНрди nointernet() рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред
- рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВрд▓рд╛рдИ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдердкреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдердкрд┐рдПрдХрд╛ рдЫрдиреН: appendd, appendf, appendr, appends, appendw, appendz, kappendf, kvappendf, рд░ vappendfред
- kprintf() рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдкрд░рд┐рд╡рд╛рд░рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдердкрд┐рдпреЛ, рдЬреБрди рдЙрдиреНрдирдд рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд╣рд░реВ рдЕрдиреНрддрд░реНрдЧрдд рдЪрд▓рд╛рдЙрди рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред
- рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрдирдорд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╕реБрдзрд╛рд░ SSL, SHA, curve25519 рд░ RSAред
рд╕реНрд░реЛрдд: opennet.ru
