เจฌเจฒเจฟเฉฐเจ• เจฆเฉ€ เจชเจนเจฟเจฒเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ, เจ‡เฉฑเจ• เจ‰เฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ x86-64 เจ‡เจฎเฉ‚เจฒเฉ‡เจŸเจฐ

เจฌเจฒเจฟเฉฐเจ• เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเจพ เจชเจนเจฟเจฒเจพ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจฐเฉ€เจฒเฉ€เจœเจผ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจ‡เฉฑเจ• x86-64 เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจ‡เจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจตเจฟเจ•เจธเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ‡เจฎเฉ‚เจฒเฉ‡เจŸเจก เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจจเจพเจฒ เจ‡เฉฑเจ• เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจตเจฟเฉฑเจš เจธเจฅเจฟเจฐ เจ…เจคเฉ‡ เจ—เจคเฉ€เจธเจผเฉ€เจฒ เจคเฉŒเจฐ 'เจคเฉ‡ เจฒเฉ€เจจเจ•เจธ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจฌเจฒเจฟเฉฐเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, x86-64 เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเฉ‡ เจฒเฉ€เจจเจ•เจธ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉ‹เจฐ POSIX-เจ…เจจเฉเจ•เฉ‚เจฒ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎเจพเจ‚ (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ (x86, ARM, RISC-V, MIPS) เจฆเฉ‡ เจจเจพเจฒ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ 'เจคเฉ‡ เจšเจฒเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค , เจชเจพเจตเจฐเจชเฉ€เจธเฉ€, 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 (เจชเฉ‹เจฐเจŸเฉ‡เจฌเจฒ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ) เจ…เจคเฉ‡ เจฌเจฟเจจ (เจซเจฒเฉˆเจŸ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ) เจซเจพเจฐเจฎเฉˆเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจซเจพเจˆเจฒเจพเจ‚ เจฆเฉ‡ เจ‡เจฎเฉ‚เจฒเฉ‡เจŸเจฐ เจตเจฟเฉฑเจš เจธเจฟเฉฑเจงเฉ€ เจฒเจพเจ‚เจš, เจธเจŸเฉˆเจ‚เจกเจฐเจก เจธเฉ€ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจ•เฉ‹เจธเจฎเฉ‹เจชเฉ‹เจฒเจฟเจŸเจจ, เจ—เจฒเจฟเจฌเจ• เจ…เจคเฉ‡ เจฎเฉเจธเจฒ เจจเจพเจฒ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ, เจธเจฎเจฐเจฅเจฟเจค เจนเฉˆเฅค 180 เจฒเฉ€เจจเจ•เจธ เจธเจฟเจธเจŸเจฎ เจ•เจพเจฒเจพเจ‚ เจ…เจคเฉ‡ i600, i86, SSE8086, x386_2, SSE86, SSSE64, CLMUL, POPCNT, ADX, BMI3 (MULX, PDEP, PEXT, RADSEDDR, X3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87_XNUMX เจจเฉ‚เฉฐ เจ•เจตเจฐ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจฒเจ—เจญเจ— XNUMX xXNUMX เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเฉ‡ เจ‡เจฎเฉ‚เจฒเฉ‡เจธเจผเจจ เจฒเจˆ เจจเฉ‡เจŸเจฟเจต เจธเจฎเจฐเจฅเจจ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพเฅค เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจธเฉˆเฉฑเจŸ เจ…เจคเฉ‡ RDTSCPเฅค

เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจฌเจฒเจฟเฉฐเจ• เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡, เจฌเจฒเจฟเฉฐเจ•เจจเจฒเจพเจˆเจŸเจธ เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจตเจฟเจ•เจธเจฟเจค เจ•เฉ€เจคเฉ€ เจœเจพ เจฐเจนเฉ€ เจนเฉˆ, เจœเฉ‹ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฆเฉ‡ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจฆเฉ€ เจ•เจฒเจชเจจเจพ เจ•เจฐเจจ เจ…เจคเฉ‡ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจฆเฉ€เจ†เจ‚ เจธเจฎเฉฑเจ—เจฐเฉ€เจ†เจ‚ เจฆเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจกเฉ€เจฌเฉฑเจ—เจฐ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจœเฉ‹ เจฐเจฟเจตเจฐเจธ-เจกเฉ€เจฌเจ—เจฟเฉฐเจ— เจฎเฉ‹เจก (เจฐเจฟเจตเจฐเจธ-เจกเฉ€เจฌเจ—เจฟเฉฐเจ—) เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจ‡เจคเจฟเจนเจพเจธ เจตเจฟเฉฑเจš เจตเจพเจชเจธ เจœเจพเจฃ เจ…เจคเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจšเจฒเจพเจ‡เจ† เจ—เจฟเจ† เจฌเจฟเฉฐเจฆเฉ‚ เจคเฉ‡ เจตเจพเจชเจธ เจœเจพเจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจธเฉ€-เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจ•เฉŒเจธเจฎเฉ‹เจชเฉ‹เจฒเฉ€เจŸเจจ, เจฒเฉ€เจจเจ•เจธ เจฒเจˆ เจชเจฒเฉ‡เจœ เจ†เจˆเจธเฉ‹เจฒเฉ‡เจธเจผเจจ เจตเจฟเจงเฉ€ เจฆเจพ เจ‡เฉฑเจ• เจชเฉ‹เจฐเจŸ, เจ…เจคเฉ‡ เจฐเฉˆเฉฑเจกเจฌเฉ€เจจ เจฏเฉ‚เจจเฉ€เจตเจฐเจธเจฒ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจซเจพเจˆเจฒ เจธเจฟเจธเจŸเจฎ เจตเจฐเจ—เฉ‡ เจตเจฟเจ•เจพเจธ เจฆเฉ‡ เจฒเฉ‡เจ–เจ• เจฆเฉเจ†เจฐเจพ เจตเจฟเจ•เจธเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค

เจฌเจฒเจฟเฉฐเจ• เจฆเฉ€ เจชเจนเจฟเจฒเฉ€ เจฐเจฟเจฒเฉ€เจœเจผ, เจ‡เฉฑเจ• เจ‰เฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ x86-64 เจ‡เจฎเฉ‚เจฒเฉ‡เจŸเจฐ


เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹