Yekem berdana Blink, emulatorek x86-64-a performansa bilind

Yekem serbestberdana girîng a projeya Blink hate weşandin, ku emûlatorek pêvajoyên x86-64 pêşve dike ku dihêle hûn serîlêdanên Linux-ê yên statîk û dînamîkî yên çêkirî di makîneyek virtual de bi pêvajoyek emulkirî bimeşînin. Bi Blink re, bernameyên Linux-ê yên ku ji bo mîmariya x86-64 hatine berhev kirin dikarin li ser pergalên xebitandinê yên din ên lihevhatî bi POSIX-ê (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) û li ser alavên bi mîmarên hardware yên din (x86, ARM, RISC-V, MIPS) werin xebitandin. , PowerPC, s390x). Koda projeyê bi zimanê C (ANSI C11) hatiye nivîsandin û di bin lîsansa ISC de tê belav kirin. Ji girêdanan, tenê libc (POSIX.1-2017) hewce ye.

Di warê fonksiyonê de, Blink dişibihe fermana qemu-x86_64, lê di sêwirana wê ya tevlihevtir û zêdebûna performansa girîng de ji QEMU cûda dibe. Mînakî, îcrakarê Blink tenê 221 KB digire (bi avahiyek daxistî - 115 KB) li şûna 4 MB ji bo qemu-x86_64, û di hin ceribandinan de, wek xebitandina di emulatora GCC-yê de û pêkanîna operasyonên matematîkî, ew ji performansa çêtir derdikeve. QEMU bi qasî du caran.

Ji bo misogerkirina performansa bilind, berhevkarek JIT-ê tê bikar anîn, ku rêwerzên çavkaniyê di firînê de vediguherîne koda makîneyê ji bo platforma armanc. Emûlator piştgirî dide destpêkirina rasterast a pelên darvekirinê yên di formatên ELF, PE (Pêkvebirên Portable) û bin (Pêvebirina Flat) de, ku bi pirtûkxaneyên C standard ên Cosmopolitan, Glibc û Musl hatine berhev kirin. Piştgiriya çêkirî ji bo 180 bangên pergalê Linux û emûlasyona nêzîkê 600 talîmatên pêvajoyek x86 yên ku i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT, X87,E) vedihewîne. komên talîmatê û RDTSCP.

Wekî din, li ser bingeha Blink, karûbarek blinkenlights tê pêşve xistin, ku navbeynkariyek ji bo dîtina pêşkeftina pêkanîna bernameyê û analîzkirina naveroka bîranînê peyda dike. Karûbar dikare wekî debuggerek ku moda berevajî-debugging piştgirî dike were bikar anîn û dihêle hûn di dîroka darvekirinê de paşde vegerin û vegerin xalek ku berê hatî darve kirin. Proje ji hêla nivîskarê pêşveçûnên weha ve wekî pirtûkxaneya Cosmopolitan C, portek mekanîzmaya veqetandina sozê ji bo Linux û pergala pelê ya gerdûnî ya Redbean ve hatî pêşve xistin.

Yekem berdana Blink, emulatorek x86-64-a performansa bilind


Source: opennet.ru

Add a comment