Yuqori samarali x86-64 emulyatori Blinkning birinchi versiyasi

X86-64 protsessor emulyatorini ishlab chiquvchi Blink loyihasining birinchi muhim nashri nashr etildi, bu sizga taqlid qilingan protsessorli virtual mashinada statik va dinamik ravishda qurilgan Linux ilovalarini ishga tushirish imkonini beradi. Blink-dan foydalanib, x86-64 arxitekturasi uchun tuzilgan Linux dasturlari boshqa POSIX-mos keluvchi operatsion tizimlarda (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) va boshqa apparat arxitekturalari (x86, ARM, RISC-V, MIPS) bilan apparatda ishga tushirilishi mumkin. , PowerPC, s390x). Loyiha kodi C (ANSI C11) tilida yozilgan va ISC litsenziyasi ostida tarqatiladi. Bog'liqlardan faqat libc (POSIX.1-2017) talab qilinadi.

Funktsionallik nuqtai nazaridan, Blink qemu-x86_64 buyrug'iga o'xshaydi, lekin QEMU dan yanada ixcham dizayni va sezilarli darajada ishlashi bilan farq qiladi. Misol uchun, Blink bajariladigan fayl qemu-x221_115 uchun 4 MB o'rniga atigi 86 KB (kesilgan tuzilish bilan - 64 KB) oladi va ba'zi testlarda ishlash nuqtai nazaridan, masalan, GCC emulyatorida ishlash va matematik operatsiyalarni bajarish, u QEMU dan taxminan ikki marta o'zib ketadi.

Yuqori samaradorlikni ta'minlash uchun JIT kompilyatoridan foydalaniladi, u manba ko'rsatmalarini tezda maqsadli platforma uchun mashina kodiga aylantiradi. Cosmopolitan, Glibc va Musl standart C kutubxonalari bilan tuzilgan ELF, PE (Portable Executables) va bin (Flat executable) formatlaridagi bajariladigan fayllar emulyatorida to'g'ridan-to'g'ri ishga tushirish qo'llab-quvvatlanadi. 180 ta Linux tizimi qoʻngʻiroqlari va i600, i86, SSE8086, x386_2, SSE86, SSSE64, CLMUL, POPCNT, ADX, BMI3 (MULX, PDEP, RDEDDRND), X3, ni qamrab oluvchi taxminan 2 x87 protsessor koʻrsatmalarining emulyatsiyasi uchun mahalliy qoʻllab-quvvatlandi. ko'rsatmalar to'plami va RDTSCP.

Bundan tashqari, Blink asosida dasturning bajarilishini vizualizatsiya qilish va xotira tarkibini tahlil qilish uchun interfeysni ta'minlovchi blinkenlights yordam dasturi ishlab chiqilmoqda. Yordamchi dastur teskari disk raskadrovka rejimini (Reverse-debugging) qo'llab-quvvatlaydigan tuzatuvchi sifatida ishlatilishi mumkin va sizga ijro tarixiga qaytishga va ilgari bajarilgan nuqtaga qaytishga imkon beradi. Loyiha C-library Cosmopolitan, Linux uchun garov izolyatsiyalash mexanizmi porti va Redbean universal bajariladigan fayl tizimi kabi ishlanmalar muallifi tomonidan ishlab chiqilgan.

Yuqori samarali x86-64 emulyatori Blinkning birinchi versiyasi


Manba: opennet.ru

a Izoh qo'shish