Toleo la kwanza la Blink, emulator ya utendaji wa juu ya x86-64

Toleo la kwanza muhimu la mradi wa Blink limechapishwa, ikitengeneza emulator ya vichakataji vya x86-64 ambayo inakuruhusu kuendesha programu za Linux zilizojengwa tuli na kwa nguvu katika mashine pepe iliyo na kichakataji kilichoigwa. Kwa Blink, programu za Linux zilizoundwa kwa usanifu wa x86-64 zinaweza kuendeshwa kwa mifumo mingine ya uendeshaji inayolingana na POSIX (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) na kwenye vifaa vilivyo na usanifu mwingine wa vifaa (x86, ARM, RISC-V, MIPS). , PowerPC, s390x). Msimbo wa mradi umeandikwa katika lugha C (ANSI C11) na inasambazwa chini ya leseni ya ISC. Kati ya vitegemezi, libc pekee (POSIX.1-2017) inahitajika.

Kwa upande wa utendakazi, Blink ni sawa na amri ya qemu-x86_64, lakini inatofautiana na QEMU katika muundo wake thabiti zaidi na ongezeko kubwa la utendaji. Kwa mfano, Blink inayoweza kutekelezeka inachukua hadi KB 221 pekee (iliyo na muundo uliovuliwa - 115 KB) badala ya MB 4 kwa qemu-x86_64, na katika baadhi ya majaribio, kama vile kukimbia katika emulator ya GCC na kufanya shughuli za hisabati, hufanya vyema zaidi. QEMU kwa takriban mara mbili.

Ili kuhakikisha utendakazi wa hali ya juu, kikusanyaji cha JIT kinatumiwa, ambacho hubadilisha maelekezo ya chanzo kwenye ndege hadi msimbo wa mashine kwa ajili ya jukwaa lengwa. Kiigaji hiki kinaweza kutumia uzinduaji wa moja kwa moja wa faili zinazoweza kutekelezwa katika miundo ya ELF, PE (Portable Executables) na bin (Flat executable), iliyokusanywa na maktaba za kawaida za C za Cosmopolitan, Glibc na Musl. Usaidizi uliojengewa ndani wa simu 180 za mfumo wa Linux na uigaji wa takriban maagizo ya kichakataji 600 x86 yanayojumuisha i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDSEEDDR seti za maagizo na RDTSCP.

Zaidi ya hayo, kwa kuzingatia Blink, matumizi ya blinkenlights yanatengenezwa, ambayo hutoa kiolesura cha kuibua maendeleo ya utekelezaji wa programu na kuchambua yaliyomo kwenye kumbukumbu. Huduma inaweza kutumika kama kitatuzi kinachotumia hali ya kurekebisha urekebishaji na hukuruhusu kurudi kwenye historia ya utekelezaji na kurudi kwenye sehemu iliyotekelezwa hapo awali. Mradi huu umetengenezwa na mwandishi wa maendeleo kama vile maktaba ya Cosmopolitan C, bandari ya utaratibu wa kutengwa kwa ahadi kwa ajili ya Linux na mfumo wa faili unaoweza kutekelezwa wa Redbean.

Toleo la kwanza la Blink, emulator ya utendaji wa juu ya x86-64


Chanzo: opennet.ru

Kuongeza maoni