Rilis pertama Blink, emulator x86-64 berkinerja tinggi

Rilis signifikan pertama dari proyek Blink telah diterbitkan, mengembangkan emulator prosesor x86-64 yang memungkinkan Anda menjalankan aplikasi Linux yang dibangun secara statis dan dinamis dalam mesin virtual dengan prosesor yang ditiru. Menggunakan Blink, program Linux yang dikompilasi untuk arsitektur x86-64 dapat dijalankan di sistem operasi lain yang sesuai dengan POSIX (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) dan di perangkat keras dengan arsitektur perangkat keras lain (x86, ARM, RISC-V, MIPS , PowerPC, s390x). Kode proyek ditulis dalam C (ANSI C11) dan didistribusikan di bawah lisensi ISC. Dari dependensi, hanya libc (POSIX.1-2017) yang diperlukan.

Dalam hal fungsionalitas, Blink menyerupai perintah qemu-x86_64, tetapi berbeda dari QEMU dalam desain yang lebih ringkas dan peningkatan kinerja yang signifikan. Misalnya, file eksekusi Blink hanya membutuhkan 221 KB (dengan build terpotong - 115 KB) alih-alih 4 MB untuk qemu-x86_64, dan dalam hal kinerja dalam beberapa pengujian, seperti berjalan di emulator GCC dan melakukan operasi matematika, itu menyusul QEMU sekitar dua kali.

Untuk memastikan kinerja tinggi, kompiler JIT digunakan, yang mengubah instruksi sumber menjadi kode mesin untuk platform target dengan cepat. Peluncuran langsung di emulator file yang dapat dieksekusi dalam format ELF, PE (Portable Executables) dan bin (Flat executable), dikompilasi dengan pustaka C standar Cosmopolitan, Glibc dan Musl, didukung. Implementasi dukungan asli untuk 180 panggilan sistem Linux dan emulasi sekitar 600 instruksi prosesor x86 yang mencakup i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED set instruksi dan RDTSCP.

Selain itu, utilitas blinkenlights sedang dikembangkan berdasarkan Blink, yang menyediakan antarmuka untuk memvisualisasikan eksekusi program dan menganalisis konten memori. Utilitas dapat digunakan sebagai debugger yang mendukung mode debugging terbalik (Reverse-Debugging) dan memungkinkan Anda untuk mundur dalam riwayat eksekusi dan kembali ke titik yang dieksekusi sebelumnya. Proyek ini dikembangkan oleh penulis pengembangan seperti C-library Cosmopolitan, port dari mekanisme isolasi janji untuk Linux, dan sistem file executable universal Redbean.

Rilis pertama Blink, emulator x86-64 berkinerja tinggi


Sumber: opennet.ru

Tambah komentar