Kelipkan emulator x86-64 yang menjanjikan untuk mengatasi QEMU

kejap-gcc

Tangkapan skrin berlari kejap

Berita baru-baru ini tersebar bahawa projek itu Blink sedang membangunkan emulator baharu daripada pemproses x86-64 itu membolehkan anda menjalankan aplikasi Linux yang disusun secara statik dalam mesin maya dengan pemproses yang dicontohi.

Disebutkan bahawa eobjektif utama projek adalah untuk menyediakan keupayaan untuk menjalankan program Linux yang disusun untuk seni bina x86-64 pada sistem pengendalian lain (macOS, FreeBSD, NetBSD, OpenBSD) dan pada komputer dengan seni bina perkakasan yang berbeza (x86, ARM, RISC-V, MIPS, PowerPC, s390x).

Dalam repositori projek mereka menerangkan berkelip seperti berikut:

blink ialah mesin maya yang menjalankan program x86-64-linux yang disusun secara statik pada sistem pengendalian dan seni bina perkakasan yang berbeza. Ia direka bentuk untuk melakukan perkara yang sama seperti perintah qemu-x86_64, kecuali bahawa (a) bukannya binari 4mb, Blink hanya mempunyai ~160kb jejak; dan (b) Blink adalah 2x lebih pantas daripada Qemu dalam beberapa penanda aras, seperti meniru GCC. Pertukarannya ialah Blink tidak mempunyai banyak ciri seperti Qemu. Blink sangat sesuai apabila anda mahukan mesin maya yang sangat kecil dan menjalankan program yang tidak lama lagi dengan lebih pantas. Untuk butiran lanjut tentang motivasi untuk alat ini, sila baca https://justine.lol/ape.html.

Perlu dinyatakan bahawa projek itu dibangunkan oleh pengarang pembangunan seperti perpustakaan Cosmopolitan C, pelabuhan mekanisme pengasingan komitmen untuk Linux dan sistem fail boleh laku universal Redbean.

Dari segi fungsi, Blink kelihatan seperti perintah qemu-x86_64, tetapi berbeza daripada QEMU dalam reka bentuk yang lebih padat dan peningkatan prestasi yang ketara. Sebagai contoh, Blink boleh laku hanya 157 KB dan bukannya 4 MB untuk qemu-x86_64 dan dari segi prestasi dalam ujian dijalankan pada emulator GCC, Blink mengalahkan QEMU dua kali.

Untuk memastikan prestasi tinggi, pengkompil JIT digunakan, yang menukar arahan sumber kepada kod mesin untuk platform sasaran dengan cepat (setakat ini hanya x86_64 dan aarch64 menyokong JIT).

Pelancaran terus pada emulator fail boleh laku dalam format ELF, PE (Boleh Dieksekusi Mudah Alih) dan bin (Boleh Dieksekusi Rata), yang disusun dengan perpustakaan C standard Cosmopolitan, Glibc dan Musl disokong.

Selain itu, Ia juga menonjol bahawa ia telah menyepadukan sokongan untuk lebih daripada seratus panggilan ke sistem Linux, termasuk fork() dan clone(). Emulasi set arahan i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED dan RDTSCP disokong.

Selain itu, projek itu sedang membangunkan utiliti lampu berkelip, yang menyediakan antara muka untuk menyahpepijat atur cara pada platform yang berbeza, menggambarkan pelaksanaan program dan menganalisis kandungan memori. Ciri penyahpepijat ialah sokongan untuk mod penyahpepijatan terbalik (Penyahpepijatan Songsang), yang membolehkan anda kembali dalam sejarah pelaksanaan dan kembali ke titik yang telah dilaksanakan sebelum ini.

blinkenlights ialah antara muka TUI yang boleh digunakan untuk menyahpepijat program x86_64-linux pada semua platform. Tidak seperti GDB, Blinkenlights memfokuskan pada visualisasi pelaksanaan program. Ia menggunakan aksara UNICODE IBM Code Page 437 untuk memaparkan panel memori binari, yang berubah semasa anda bergerak melalui kod pemasangan program anda. Panel memori ini boleh ditatal dan dibesarkan dengan roda tetikus. Blinkenlights juga menyokong penyahpepijatan terbalik, di mana menatal roda pada skrin pemasangan membolehkan anda memundurkan semula sejarah pelaksanaan.

Akhir sekali, bagi mereka yang berminat untuk mengetahui lebih lanjut tentang projek ini, mereka harus tahu bahawa kod projek ditulis dalam C (ANSI C11) dan diedarkan di bawah lesen ISC. Daripada kebergantungan, hanya libc (POSIX.1-2017) diperlukan.

kejap

Bagi mereka yang berminat untuk mencuba blink, mereka harus tahu bahawa kompilasinya sangat mudah, mereka hanya perlu mendapatkan kod sumbernya, mereka boleh melakukannya dari pautan berikut atau dari terminal dengan menaip arahan berikut :

git https://github.com/jart/blink.git

Dan selesai dengan itu, anda hanya perlu memasukkan direktori blik dan menyusun:

cd blink

make -j4

Jika anda ingin mengetahui lebih lanjut tentang cara Blink berfungsi, anda boleh melakukannya dari pautan berikut.


Menjadi yang pertama untuk komen

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.