Sakin farko na Blink, babban aikin x86-64 emulator

An buga muhimmin sakin farko na aikin Blink, haɓaka abin koyi na masu sarrafa x86-64 wanda ke ba ku damar gudanar da aikace-aikacen Linux a tsaye da ƙarfi a cikin injin kama-da-wane tare da na'ura mai kwaikwayi. Tare da Blink, shirye-shiryen Linux da aka haɗa don gine-ginen x86-64 za a iya gudanar da su akan wasu tsarin aiki masu jituwa na POSIX (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) da kuma kan kayan aiki tare da sauran kayan gine-ginen hardware (x86, ARM, RISC-V, MIPS). , PowerPC, s390x). An rubuta lambar aikin a cikin harshen C (ANSI C11) kuma an rarraba a ƙarƙashin lasisin ISC. Daga cikin abubuwan dogaro, libc (POSIX.1-2017) kawai ake buƙata.

Dangane da ayyuka, Blink yayi kama da umarnin qemu-x86_64, amma ya bambanta da QEMU a cikin mafi ƙarancin ƙira da haɓakar aiki mai mahimmanci. Misali, Blink executable yana ɗaukar nauyin 221 KB kawai (tare da ginin da aka cire - 115 KB) maimakon 4 MB don qemu-x86_64, kuma a wasu gwaje-gwaje, kamar gudu a cikin GCC emulator da aiwatar da ayyukan lissafi, ya fi dacewa. QEMU da kusan sau biyu.

Don tabbatar da babban aiki, ana amfani da mai tarawa JIT, wanda ke canza umarnin tushe akan tashi zuwa lambar injin don dandamalin manufa. Mai kwaikwayon yana goyan bayan ƙaddamar da fayilolin aiwatarwa kai tsaye a cikin ELF, PE (Portable Executables) da tsarin bin (Flat executable), waɗanda aka haɗa tare da daidaitattun ɗakunan karatu na C Cosmopolitan, Glibc da Musl. Taimako na ciki don kiran tsarin Linux na 180 da kwaikwaya game da umarnin sarrafawa na 600 x86 wanda ke rufe i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDRND tsarin umarni da RDTSCP.

Bugu da ƙari, dangane da Blink, ana haɓaka kayan amfani da hasken walƙiya, wanda ke ba da hanyar sadarwa don ganin ci gaban aiwatar da shirin da kuma nazarin abubuwan da ke cikin ƙwaƙwalwar ajiya. Ana iya amfani da mai amfani azaman mai cirewa wanda ke goyan bayan yanayin sake gyarawa kuma yana ba ku damar komawa cikin tarihin aiwatarwa kuma ku koma wurin da aka aiwatar a baya. Marubucin ya haɓaka aikin kamar ɗakin karatu na Cosmopolitan C, tashar tashar keɓewar tsarin keɓewa don Linux da tsarin fayil ɗin Redbean na duniya mai aiwatarwa.

Sakin farko na Blink, babban aikin x86-64 emulator


source: budenet.ru

Add a comment