Unang pagpagawas sa Blink, usa ka taas nga performance x86-64 emulator

Ang una nga hinungdanon nga pagpagawas sa proyekto sa Blink gipatik, nga nagpalambo sa usa ka emulator sa x86-64 nga mga processor nga nagtugot kanimo sa pagdagan sa statically ug dinamikong gitukod nga mga aplikasyon sa Linux sa usa ka virtual nga makina nga adunay usa ka gisunod nga processor. Uban sa Blink, ang mga programa sa Linux nga gihugpong para sa x86-64 nga arkitektura mahimong ipadagan sa ubang POSIX-compatible nga mga operating system (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) ug sa mga ekipo nga adunay ubang hardware nga arkitektura (x86, ARM, RISC-V, MIPS , PowerPC, s390x). Ang code sa proyekto gisulat sa C nga pinulongan (ANSI C11) ug giapod-apod ubos sa lisensya sa ISC. Sa mga dependency, libc lamang (POSIX.1-2017) ang gikinahanglan.

Sa termino sa pag-andar, ang Blink susama sa qemu-x86_64 nga sugo, apan lahi sa QEMU sa mas compact nga disenyo niini ug mahinungdanong pagtaas sa performance. Pananglitan, ang Blink executable nagkinahanglan lamang og 221 KB (nga adunay gihuboan nga pagtukod - 115 KB) imbes nga 4 MB alang sa qemu-x86_64, ug sa pipila ka mga pagsulay, sama sa pagdagan sa GCC emulator ug paghimo sa mga operasyon sa matematika, kini mas maayo. QEMU sa mga duha ka beses.

Aron masiguro ang taas nga pasundayag, gigamit ang usa ka JIT compiler, nga nagbag-o sa mga panudlo sa gigikanan sa langaw ngadto sa code sa makina alang sa target nga plataporma. Gisuportahan sa emulator ang direktang paglansad sa mga executable file sa ELF, PE (Portable Executables) ug bin (Flat executable) nga mga format, nga gihugpong sa standard C libraries nga Cosmopolitan, Glibc ug Musl. Gitukod-sa suporta alang sa 180 ka sistema sa Linux nga mga tawag ug emulation sa mga 600 x86 processor nga mga instruksyon nga naglangkob sa i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87RD, RSEEDDRND instruksiyon set ug RDTSCP.

Dugang pa, base sa Blink, ang blinkenlights utility gipalambo, nga naghatag usa ka interface alang sa paghanduraw sa pag-uswag sa pagpatuman sa programa ug pag-analisar sa mga sulud sa memorya. Ang utility mahimong magamit isip usa ka debugger nga nagsuporta sa reverse-debugging mode ug nagtugot kanimo sa pagbalik sa kasaysayan sa pagpatay ug pagbalik sa usa ka kaniadto nga gipatuman nga punto. Ang proyekto gimugna sa tagsulat sa mga kalamboan sama sa Cosmopolitan C library, usa ka pantalan sa pledge isolation mechanism alang sa Linux ug ang Redbean universal executable file system.

Unang pagpagawas sa Blink, usa ka taas nga performance x86-64 emulator


Source: opennet.ru

Idugang sa usa ka comment