Першы выпуск Blink, высокапрадукцыйнага эмулятара сістэм x86-64

Апублікаваны першы значны выпуск праекта Blink, які развівае эмулятар працэсараў x86-64, які дазваляе запускаць статычна і дынамічна сабраныя Linux-прыкладанні ў віртуальнай машыне з эмуляваным працэсарам. Пры дапамозе Blink сабраныя для архітэктуры x86-64 Linux-праграмы можна запускаць у іншых POSIX-сумяшчальных аперацыйных сістэмах (macOS, FreeBSD, NetBSD, OpenBSD, Cygwin) і на абсталяванні з іншай апаратнай архітэктурай (x86, ARM, RISC-V, MIPS, PowerPC, s390x). Код праекту напісаны на мове Сі (ANSI C11) і распаўсюджваецца пад ліцэнзіяй ISC. З залежнасцяў патрабуецца толькі libc (POSIX.1-2017).

Па функцыянальнасці Blink нагадвае каманду qemu-x86_64, але адрозніваецца ад QEMU больш кампактным выкананнем і значным прыростам прадукцыйнасці. Напрыклад, выкананы файл Blink займае ўсяго 221 КБ (пры зрэзанай зборцы - 115 КБ) замест 4 МБ у qemu-x86_64, а па прадукцыйнасці ў некаторых тэстах, такіх як запуск у эмулятары GCC і выкананне матэматычных аперацый, абганяе QEMU прыкладна ў два разы.

Для забеспячэння высокай прадукцыйнасці прымяняецца JIT-кампілятар, на лета пераўтваральны зыходныя інструкцыі ў машынны код для мэтавай платформы. Падтрымліваецца прамы запуск у эмулятары выкананых файлаў у фарматах ELF, PE (Portable Executables) і bin (Flat executable), сабраных са стандартнымі Сі-бібліятэкамі Cosmopolitan, Glibc і Musl. Рэалізаваная ўбудаваная падтрымка 180 сістэмных выклікаў Linux і эмуляцыя каля 600 працэсарных інструкцый x86, якія ахопліваюць наборы інструкцый i8086, i386, SSE2, x86_64, SSE3, SSSE3, і RDTSCP.

Дадаткова на базе Blink распрацоўваецца ўтыліта blinkenlights, якая прадстаўляе інтэрфейс для візуалізацыі ходу выканання праграмы і аналізу змесціва памяці. Утыліта можа ўжывацца ў якасці адладчыка, які падтрымлівае рэжым рэверсіўнай адладкі (Reverse-Debugging) і які дазваляе перамяшчацца назад у гісторыі выканання і вяртацца да ўжо раней выкананай кропкі. Праект развівае аўтар такіх распрацовак, як Сі-бібліятэка Cosmopolitan, порт механізму ізаляцыі pledge для Linux і сістэма ўніверсальных выкананых файлаў Redbean.

Першы выпуск Blink, высокапрадукцыйнага эмулятара сістэм x86-64


Крыніца: opennet.ru

Дадаць каментар