Blink emulator x86-64 yang menjanjikan untuk mengungguli QEMU

berkedip-gcc

Tangkapan layar kedipan berjalan

Berita baru-baru ini memecahkan proyek itu Blink sedang mengembangkan emulator baru dari prosesor x86-64 itu memungkinkan Anda untuk menjalankan aplikasi Linux yang dikompilasi secara statis dalam mesin virtual dengan prosesor yang ditiru.

Disebutkan bahwa etujuan utamanya dari proyek tersebut adalah untuk menyediakan kemampuan menjalankan program Linux yang dikompilasi untuk arsitektur x86-64 pada sistem operasi lain (macOS, FreeBSD, NetBSD, OpenBSD) dan pada komputer dengan arsitektur perangkat keras yang berbeda (x86, ARM, RISC-V, MIPS, PowerPC, s390x).

Dalam repositori proyek mereka menjelaskan kedip sebagai berikut:

blink adalah mesin virtual yang menjalankan program x86-64-linux yang dikompilasi secara statis pada sistem operasi dan arsitektur perangkat keras yang berbeda. Ini dirancang untuk melakukan hal yang sama seperti perintah qemu-x86_64, kecuali bahwa (a) alih-alih menjadi biner 4mb, Blink hanya memiliki jejak ~160kb; dan (b) Blink 2x lebih cepat dari Qemu di beberapa tolok ukur, seperti meniru GCC. Imbalannya adalah Blink tidak memiliki fitur sebanyak Qemu. Blink sangat cocok ketika Anda menginginkan mesin virtual yang sangat kecil dan menjalankan program sesaat lebih cepat. Untuk detail lebih lanjut tentang motivasi alat ini, silakan baca https://justine.lol/ape.html.

Perlu disebutkan bahwa proyek ini dikembangkan oleh penulis pengembangan seperti pustaka Cosmopolitan C, port dari mekanisme isolasi komitmen untuk Linux dan sistem file yang dapat dieksekusi universal Redbean.

Dari segi fungsionalitas, Blink terlihat seperti perintah qemu-x86_64tapi berbeda dari QEMU dalam desain yang lebih ringkas dan peningkatan kinerja yang signifikan. Misalnya, eksekusi Blink hanya 157 KB, bukan 4 MB untuk qemu-x86_64, dan dalam hal kinerja dalam uji coba di emulator GCC, Blink mengalahkan QEMU dua kali.

Untuk memastikan kinerja tinggi, kompiler JIT digunakan, yang mengubah instruksi sumber menjadi kode mesin untuk platform target dengan cepat (sejauh ini hanya x86_64 dan aarch64 yang mendukung JIT).

Peluncuran langsung pada 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.

Selain itu, Juga menonjol bahwa ia memiliki dukungan terintegrasi untuk lebih dari seratus panggilan ke sistem Linux, termasuk fork() dan clone(). Emulasi set instruksi i8086, i386, SSE2, x86_64, SSE3, SSSE3, CLMUL, POPCNT, ADX, BMI2 (MULX, PDEP, PEXT), X87, RDRND, RDSEED, dan RDTSCP didukung.

Selain itu, proyek sedang mengembangkan utilitas blinkenlights, yang menyediakan antarmuka untuk program debug pada platform yang berbeda, memvisualisasikan eksekusi program, dan menganalisis konten memori. Fitur debugger adalah dukungan untuk mode debugging terbalik (Reverse Debugging), yang memungkinkan Anda untuk kembali ke riwayat eksekusi dan kembali ke titik yang dieksekusi sebelumnya.

blinkenlights adalah antarmuka TUI yang dapat digunakan untuk men-debug program x86_64-linux di semua platform. Tidak seperti GDB, Blinkenlights berfokus pada memvisualisasikan eksekusi program. Ini menggunakan karakter UNICODE IBM Code Page 437 untuk menampilkan panel memori biner, yang berubah saat Anda menelusuri kode rakitan program Anda. Panel memori ini dapat digulir dan diperbesar dengan roda mouse. Blinkenlights juga mendukung debugging terbalik, di mana menggulirkan roda pada layar rakitan memungkinkan Anda memundurkan riwayat eksekusi.

Terakhir, bagi mereka yang tertarik untuk mempelajari lebih lanjut tentang proyek ini, mereka harus mengetahui bahwa kode proyek ditulis dalam bahasa C (ANSI C11) dan didistribusikan di bawah lisensi ISC. Dari dependensi, hanya libc (POSIX.1-2017) yang diperlukan.

berkedip

Bagi mereka yang tertarik untuk mencoba blink, mereka harus tahu bahwa kompilasinya sangat sederhana, mereka hanya perlu mendapatkan kode sumbernya, mereka dapat melakukannya dari tautan berikut atau dari terminal dengan mengetikkan perintah berikut :

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

Dan selesai, Anda hanya perlu masuk ke direktori blik dan kompilasi:

cd blink

make -j4

Jika Anda ingin tahu lebih banyak tentang cara kerja Blink, Anda dapat melakukannya dari link berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Bertanggung jawab atas data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.