Ensimmäinen julkaisu Blinkistä, tehokkaasta x86-64-emulaattorista

Blink-projektin ensimmäinen merkittävä julkaisu on julkaistu, ja se kehittää x86-64-prosessorien emulaattorin, jonka avulla voit ajaa staattisesti ja dynaamisesti rakennettuja Linux-sovelluksia virtuaalikoneessa emuloidulla prosessorilla. Blinkin avulla x86-64-arkkitehtuurille käännettyjä Linux-ohjelmia voidaan ajaa muissa POSIX-yhteensopivissa käyttöjärjestelmissä (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) ja laitteissa, joissa on muita laitteistoarkkitehtuureja (x86, ARM, RISC-V, MIPS). , PowerPC, s390x). Projektikoodi on kirjoitettu C-kielellä (ANSI C11) ja sitä jaetaan ISC-lisenssillä. Riippuvuuksista tarvitaan vain libc (POSIX.1-2017).

Toiminnallisesti Blink on samanlainen kuin qemu-x86_64-komento, mutta eroaa QEMU:sta kompaktimman muotoilunsa ja merkittävän suorituskyvyn kasvun ansiosta. Esimerkiksi qemu-x221_115:n Blink-suoritettava tiedosto vie vain 4 kt (kuvitetulla koontiversiolla - 86 kt) 64 megatavun sijaan, ja joissakin testeissä, kuten GCC-emulaattorissa ja matemaattisten toimintojen suorittamisessa, se toimii paremmin. QEMU noin kaksi kertaa.

Korkean suorituskyvyn varmistamiseksi käytetään JIT-kääntäjää, joka muuntaa lähdekäskyt lennossa konekoodiksi kohdealustaa varten. Emulaattori tukee suoritettavien tiedostojen suoraa käynnistämistä ELF-, PE (Portable Executables)- ja bin (Flat executable) -muodoissa, jotka on koottu standardi C-kirjastojen Cosmopolitan, Glibc ja Musl kanssa. Sisäänrakennettu tuki 180 Linux-järjestelmäkutsulle ja noin 600 x86 prosessoriohjeen emulointi, jotka kattavat i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), XRDSERDRND87, . käskysarjat ja RDTSCP.

Lisäksi kehitteillä on Blink-pohjainen apuohjelma, blinkenlights, joka tarjoaa käyttöliittymän ohjelman suorituksen edistymisen visualisointiin ja muistin sisällön analysointiin. Apuohjelmaa voidaan käyttää virheenkorjaajana, joka tukee käänteistä virheenkorjaustilaa ja antaa sinun siirtyä taaksepäin suoritushistoriassa ja palata aiemmin suoritettuun kohtaan. Projektin on kehittänyt muun muassa Cosmopolitan C -kirjasto, Linuxin lupaeristysmekanismin portti ja Redbean universaali suoritettava tiedostojärjestelmä.

Ensimmäinen julkaisu Blinkistä, tehokkaasta x86-64-emulaattorista


Lähde: opennet.ru

Lisää kommentti