рдмреНрд▓рд┐рдВрдХрдЪреЗ рдкрд╣рд┐рд▓реЗ рдкреНрд░рдХрд╛рд╢рди, рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ x86-64 рдПрдореБрд▓реЗрдЯрд░

рдмреНрд▓рд┐рдВрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯрдЪреЗ рдкрд╣рд┐рд▓реЗ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд╢рди рдкреНрд░рдХрд╛рд╢рд┐рдд рдЭрд╛рд▓реЗ рдЖрд╣реЗ, x86-64 рдкреНрд░реЛрд╕реЗрд╕рд░рдЪреЗ рдПрдореБрд▓реЗрдЯрд░ рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЗрдореНрдпреБрд▓реЗрдЯреЗрдб рдкреНрд░реЛрд╕реЗрд╕рд░рд╕рд╣ рд╡рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирдордзреНрдпреЗ рд╕реНрдерд┐рд░ рдЖрдгрд┐ рдбрд╛рдпрдиреЕрдорд┐рдХрд▓реА рдмрдирд╡рд▓реЗрд▓реЗ рд▓рд┐рдирдХреНрд╕ рдНрдкреНрд▓рд┐рдХреЗрд╢рдиреНрд╕ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рдмреНрд▓рд┐рдВрдХ рд╕рд╣, x86-64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реЗрд▓реЗ рд▓рд┐рдирдХреНрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рдЗрддрд░ POSIX-рд╕реБрд╕рдВрдЧрдд рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдорд╡рд░ (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) рдЖрдгрд┐ рдЗрддрд░ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░реНрд╕ (x86, ARM, RISC-V, MIPS) рдЙрдкрдХрд░рдгрд╛рдВрд╡рд░ рдЪрд╛рд▓рд╡рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. , PowerPC, s390x). рдкреНрд░рдХрд▓реНрдк рдХреЛрдб C рднрд╛рд╖реЗрдд (ANSI C11) рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ ISC рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡рд╛рдВрдкреИрдХреА, рдлрдХреНрдд libc (POSIX.1-2017) рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдмреНрд▓рд┐рдВрдХ рд╣реЗ qemu-x86_64 рдХрдорд╛рдВрдб рд╕рд╛рд░рдЦреЗрдЪ рдЖрд╣реЗ, рдкрд░рдВрддреБ рддреНрдпрд╛рдЪреНрдпрд╛ рдЕрдзрд┐рдХ рдХреЙрдореНрдкреЕрдХреНрдЯ рдбрд┐рдЭрд╛рдЗрдирдордзреНрдпреЗ рдЖрдгрд┐ рд▓рдХреНрд╖рдгреАрдп рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рд╡рд╛рдвреАрдордзреНрдпреЗ QEMU рдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд│реЗ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдмреНрд▓рд┐рдВрдХ рдПрдХреНрдЭрд┐рдХреНрдпреВрдЯреЗрдмрд▓ qemu-x221_115 рд╕рд╛рдареА 4 MB рдРрд╡рдЬреА рдлрдХреНрдд 86 KB (рд╕реНрдЯреНрд░рд┐рдк-рдбрд╛рдЙрди рдмрд┐рд▓реНрдбрд╕рд╣ - 64 KB) рдШреЗрддреЗ рдЖрдгрд┐ рдХрд╛рд╣реА рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреНрдпреЗ, рдЬрд╕реЗ рдХреА GCC рдЗрдореНрдпреБрд▓реЗрдЯрд░рдордзреНрдпреЗ рдЪрд╛рд▓рдгреЗ рдЖрдгрд┐ рдЧрдгрд┐рддреАрдп рдСрдкрд░реЗрд╢рдиреНрд╕ рдХрд░рдгреЗ, рддреЗ рдЬрд╛рд╕реНрдд рдХрд╛рдордЧрд┐рд░реА рдХрд░рддреЗ. рд╕реБрдорд╛рд░реЗ рджреЛрди рдкрдЯреАрдиреЗ QEMU.

рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреА рдЦрд╛рддреНрд░реА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдПрдХ JIT рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ, рдЬреЛ рдлреНрд▓рд╛рдпрд╡рд░реАрд▓ рд╕реНрддреНрд░реЛрдд рд╕реВрдЪрдирд╛рдВрдирд╛ рд▓рдХреНрд╖реНрдп рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рдорд╢реАрди рдХреЛрдбрдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рддреЛ. рдПрдореБрд▓реЗрдЯрд░ ELF, PE (рдкреЛрд░реНрдЯреЗрдмрд▓ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓реНрд╕) рдЖрдгрд┐ рдмрд┐рди (рдлреНрд▓реЕрдЯ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓) рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рдПрдХреНрдЭреАрдХреНрдпреВрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕рдЪреНрдпрд╛ рдереЗрдЯ рд▓реЙрдиреНрдЪрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрддреЛ, рдорд╛рдирдХ C рд▓рд╛рдпрдмреНрд░рд░реА рдХреЙрд╕реНрдореЛрдкреЙрд▓рд┐рдЯрди, Glibc рдЖрдгрд┐ Musl рд╕рд╣ рд╕рдВрдХрд▓рд┐рдд. 180 рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯреАрдо рдХреЙрд▓рд╕рд╛рдареА рдЕрдВрдЧрднреВрдд рд╕рдорд░реНрдерди рдЖрдгрд┐ i600, i86, SSE8086, x386_2, SSE86, SSSE64, CLMUL, POPCNT, ADX, BMI3 (MULX, PDEP, PEXT), RDSEDR, RDSEDR, X3, 2 x87 рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реВрдЪрдирд╛рдВрдЪреЗ рдЕрдиреБрдХрд░рдг рд╕реВрдЪрдирд╛ рд╕рдВрдЪ рдЖрдгрд┐ RDTSCP.

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдмреНрд▓рд┐рдВрдХрд╡рд░ рдЖрдзрд╛рд░рд┐рдд, рдмреНрд▓рд┐рдВрдХрдирд▓рд╛рдЗрдЯреНрд╕ рдпреБрдЯрд┐рд▓рд┐рдЯреА рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реА рдЬрд╛рдд рдЖрд╣реЗ, рдЬреА рдкреНрд░реЛрдЧреНрд░рд╛рдордЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рдкреНрд░рдЧрддреАрдЪреА рдХрд▓реНрдкрдирд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдореЗрдорд░реАрдЪреНрдпрд╛ рд╕рд╛рдордЧреНрд░реАрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЗрдВрдЯрд░рдлреЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рдпреБрдЯрд┐рд▓рд┐рдЯреАрдЪрд╛ рд╡рд╛рдкрд░ рдбреАрдмрдЧрд░ рдореНрд╣рдгреВрди рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдЬреЛ рд░рд┐рд╡реНрд╣рд░реНрд╕-рдбреАрдмрдЧрд┐рдВрдЧ рдореЛрдбрд▓рд╛ рд╕рдкреЛрд░реНрдЯ рдХрд░рддреЛ рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХреНрдЭрд┐рдХреНрдпреВрд╢рди рдЗрддрд┐рд╣рд╛рд╕рд╛рдд рдкрд░рдд рдЬрд╛рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рдкреВрд░реНрд╡реА рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реЗрд▓реНрдпрд╛ рдмрд┐рдВрджреВрд╡рд░ рдкрд░рдд рдпреЗрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ. рдХреЙрд╕реНрдореЛрдкреЙрд▓рд┐рдЯрди рд╕реА рд▓рд╛рдпрдмреНрд░рд░реА, рд▓рд┐рдирдХреНрд╕ рдЖрдгрд┐ рд░реЗрдбрдмреАрди рдпреБрдирд┐рд╡реНрд╣рд░реНрд╕рд▓ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдорд╕рд╛рдареА рдкреНрд▓реЗрдЬ рдЖрдпрд╕реЛрд▓реЗрд╢рди рдореЗрдХреЕрдирд┐рдЭрдордЪреЗ рдПрдХ рдкреЛрд░реНрдЯ рдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рдЪреНрдпрд╛ рд▓реЗрдЦрдХрд╛рдиреЗ рд╣рд╛ рдкреНрд░рдХрд▓реНрдк рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ.

рдмреНрд▓рд┐рдВрдХрдЪреЗ рдкрд╣рд┐рд▓реЗ рдкреНрд░рдХрд╛рд╢рди, рдЙрдЪреНрдЪ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ x86-64 рдПрдореБрд▓реЗрдЯрд░


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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛