เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡ Blink, emulator x86-64 เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡

ะžะฟัƒะฑะปะธะบะพะฒะฐะฝ ะฟะตั€ะฒั‹ะน ะทะฝะฐั‡ะธั‚ะตะปัŒะฝั‹ะน ะฒั‹ะฟัƒัะบ ะฟั€ะพะตะบั‚ะฐ Blink, ั€ะฐะทะฒะธะฒะฐัŽั‰ะตะณะพ ัะผัƒะปัั‚ะพั€ ะฟั€ะพั†ะตััะพั€ะพะฒ x86-64, ะฟะพะทะฒะพะปััŽั‰ะธะน ะทะฐะฟัƒัะบะฐั‚ัŒ ัั‚ะฐั‚ะธั‡ะตัะบะธ ะธ ะดะธะฝะฐะผะธั‡ะตัะบะธ ัะพะฑั€ะฐะฝะฝั‹ะต Linux-ะฟั€ะธะปะพะถะตะฝะธั ะฒ ะฒะธั€ั‚ัƒะฐะปัŒะฝะพะน ะผะฐัˆะธะฝะต ั ัะผัƒะปะธั€ัƒะตะผั‹ะผ ะฟั€ะพั†ะตััะพั€ะพะผ. ะŸั€ะธ ะฟะพะผะพั‰ะธ Blink cะพะฑั€ะฐะฝะฝั‹ะต ะดะปั ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ x86-64 Linux-ะฟั€ะพะณั€ะฐะผะผั‹ ะผะพะถะฝะพ ะทะฐะฟัƒัะบะฐั‚ัŒ ะฒ ะดั€ัƒะณะธั… POSIX-ัะพะฒะผะตัั‚ะธะผั‹ั… ะพะฟะตั€ะฐั†ะธะพะฝะฝั‹ั… ัะธัั‚ะตะผะฐั… (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) ะธ ะฝะฐ ะพะฑะพั€ัƒะดะพะฒะฐะฝะธะธ ั ะดั€ัƒะณะพะน ะฐะฟะฟะฐั€ะฐั‚ะฝะพะน ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ะพะน (x86, ARM, RISC-V, MIPS, PowerPC, s390x). ะšะพะด ะฟั€ะพะตะบั‚ะฐ ะฝะฐะฟะธัะฐะฝ ะฝะฐ ัะทั‹ะบะต ะกะธ (ANSI C11) ะธ ั€ะฐัะฟั€ะพัั‚ั€ะฐะฝัะตั‚ัั ะฟะพะด ะปะธั†ะตะฝะทะธะตะน ISC. ะ˜ะท ะทะฐะฒะธัะธะผะพัั‚ะตะน ั‚ั€ะตะฑัƒะตั‚ัั ั‚ะพะปัŒะบะพ libc (POSIX.1-2017).

ะŸะพ ั„ัƒะฝะบั†ะธะพะฝะฐะปัŒะฝะพัั‚ะธ Blink ะฝะฐะฟะพะผะธะฝะฐะตั‚ ะบะพะผะฐะฝะดัƒ qemu-x86_64, ะฝะพ ะพั‚ะปะธั‡ะฐะตั‚ัั ะพั‚ QEMU ะฑะพะปะตะต ะบะพะผะฟะฐะบั‚ะฝั‹ะผ ะธัะฟะพะปะฝะตะฝะธะตะผ ะธ ะทะฝะฐั‡ะธั‚ะตะปัŒะฝั‹ะผ ะฟั€ะธั€ะพัั‚ะพะผ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ะธ. ะะฐะฟั€ะธะผะตั€, ะธัะฟะพะปะฝัะตะผั‹ะน ั„ะฐะนะป Blink ะทะฐะฝะธะผะฐะตั‚ ะฒัะตะณะพ 221 ะšะ‘ (ะฟั€ะธ ัƒั€ะตะทะฐะฝะฝะพะน ัะฑะพั€ะบะต โ€” 115 ะšะ‘) ะฒะผะตัั‚ะพ 4 ะœะ‘ ัƒ qemu-x86_64, ะฐ ะฟะพ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ะธ ะฒ ะฝะตะบะพั‚ะพั€ั‹ั… ั‚ะตัั‚ะฐั…, ั‚ะฐะบะธั… ะบะฐะบ ะทะฐะฟัƒัะบ ะฒ ัะผัƒะปัั‚ะพั€ะต GCC ะธ ะฒั‹ะฟะพะปะฝะตะฝะธะต ะผะฐั‚ะตะผะฐั‚ะธั‡ะตัะบะธั… ะพะฟะตั€ะฐั†ะธะน, ะพะฑะณะพะฝัะตั‚ QEMU ะฟั€ะธะผะตั€ะฝะพ ะฒ ะดะฒะฐ ั€ะฐะทะฐ.

ะ”ะปั ะพะฑะตัะฟะตั‡ะตะฝะธั ะฒั‹ัะพะบะพะน ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ะธ ะฟั€ะธะผะตะฝัะตั‚ัั JIT-ะบะพะผะฟะธะปัั‚ะพั€, ะฝะฐ ะปะตั‚ัƒ ะฟั€ะตะพะฑั€ะฐะทัƒัŽั‰ะธะน ะธัั…ะพะดะฝั‹ะต ะธะฝัั‚ั€ัƒะบั†ะธะธ ะฒ ะผะฐัˆะธะฝะฝั‹ะน ะบะพะด ะดะปั ั†ะตะปะตะฒะพะน ะฟะปะฐั‚ั„ะพั€ะผั‹. ะŸะพะดะดะตั€ะถะธะฒะฐะตั‚ัั ะฟั€ัะผะพะน ะทะฐะฟัƒัะบ ะฒ ัะผัƒะปัั‚ะพั€ะต ะธัะฟะพะปะฝัะตะผั‹ั… ั„ะฐะนะปะพะฒ ะฒ ั„ะพั€ะผะฐั‚ะฐั… ELF, PE (Portable Executables) ะธ bin (Flat executable), ัะพะฑั€ะฐะฝะฝั‹ั… ัะพ ัั‚ะฐะฝะดะฐั€ั‚ะฝั‹ะผะธ ะกะธ-ะฑะธะฑะปะธะพั‚ะตะบะฐะผะธ Cosmopolitan, Glibc ะธ Musl. ะ ะตะฐะปะธะทะพะฒะฐะฝะฐ ะฒัั‚ั€ะพะตะฝะฝะฐั ะฟะพะดะดะตั€ะถะบะฐ 180 ัะธัั‚ะตะผะฝั‹ั… ะฒั‹ะทะพะฒะพะฒ Linux ะธ ัะผัƒะปัั†ะธั ะพะบะพะปะพ 600 ะฟั€ะพั†ะตััะพั€ะฝั‹ั… ะธะฝัั‚ั€ัƒะบั†ะธะน x86, ะพั…ะฒะฐั‚ั‹ะฒะฐัŽั‰ะธั… ะฝะฐะฑะพั€ั‹ ะธะฝัั‚ั€ัƒะบั†ะธะน i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED ะธ RDTSCP.

ะ”ะพะฟะพะปะฝะธั‚ะตะปัŒะฝะพ ะฝะฐ ะฑะฐะทะต Blink ั€ะฐะทั€ะฐะฑะฐั‚ั‹ะฒะฐะตั‚ัั ัƒั‚ะธะปะธั‚ะฐ blinkenlights, ะฟั€ะตะดะพัั‚ะฐะฒะปััŽั‰ะฐั ะธะฝั‚ะตั€ั„ะตะนั ะดะปั ะฒะธะทัƒะฐะปะธะทะฐั†ะธะธ ั…ะพะดะฐ ะฒั‹ะฟะพะปะฝะตะฝะธั ะฟั€ะพะณั€ะฐะผะผั‹ ะธ ะฐะฝะฐะปะธะทะฐ ัะพะดะตั€ะถะธะผะพะณะพ ะฟะฐะผัั‚ะธ. ะฃั‚ะธะปะธั‚ะฐ ะผะพะถะตั‚ ะฟั€ะธะผะตะฝัั‚ัŒัั ะฒ ะบะฐั‡ะตัั‚ะฒะต ะพั‚ะปะฐะดั‡ะธะบะฐ, ะฟะพะดะดะตั€ะถะธะฒะฐัŽั‰ะตะณะพ ั€ะตะถะธะผ ั€ะตะฒะตั€ัะธะฒะฝะพะน ะพั‚ะปะฐะดะบะธ (Reverse-Debugging) ะธ ะฟะพะทะฒะพะปััŽั‰ะตะณะพ ะฟะตั€ะตะผะตั‰ะฐั‚ัŒัั ะฝะฐะทะฐะด ะฒ ะธัั‚ะพั€ะธะธ ะฒั‹ะฟะพะปะฝะตะฝะธั ะธ ะฒะพะทะฒั€ะฐั‰ะฐั‚ัŒัั ะบ ัƒะถะต ั€ะฐะฝะตะต ะฒั‹ะฟะพะปะฝะตะฝะฝะพะน ั‚ะพั‡ะบะต. ะŸั€ะพะตะบั‚ ั€ะฐะทะฒะธะฒะฐะตั‚ ะฐะฒั‚ะพั€ ั‚ะฐะบะธั… ั€ะฐะทั€ะฐะฑะพั‚ะพะบ, ะบะฐะบ ะกะธ-ะฑะธะฑะปะธะพั‚ะตะบะฐ Cosmopolitan, ะฟะพั€ั‚ ะผะตั…ะฐะฝะธะทะผะฐ ะธะทะพะปัั†ะธะธ pledge ะดะปั Linux ะธ ัะธัั‚ะตะผะฐ ัƒะฝะธะฒะตั€ัะฐะปัŒะฝั‹ั… ะธัะฟะพะปะฝัะตะผั‹ั… ั„ะฐะนะปะพะฒ Redbean.

เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡ Blink, emulator x86-64 เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡


เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™