Как QEMU исполняет чужой код: изучаем Tiny Code Compilator изнутри
<img src="https://habrastorage.org/getpro/habr/upload_files/3e4/8bf/bce/3e48bfbce0e1c180a1ac3b0d18145f97.jpg" /><p>QEMU — это не просто виртуализация с KVM. Его главная cуперсила — способность запускать программы, скомпилированные для одной архитектуры, на совершенно другом процессоре. Безо всякой поддержки со стороны хоста. Например, запустить прошивку для ARM-микроконтроллера на x86-ноутбуке.</p><p>Как это работает? Под капотом QEMU скрывается JIT-компилятор под названием TCG (Tiny Code Generator). В этой статье мы разберем его устройство на практических примерах для RISC-V и посмотрим, как инструкции превращаются из одного машинного кода в другой, как формируются блоки трансляции, и зачем там нужны <code>longjmp</code> и цепочки блоков.</p> <a href="https://habr.com/ru/articles/1073016/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1073016#habracut">Читать далее</a>
