Blink1.0正式发布 最小的x86 Linux模拟器

描述

Blink 1.0 已正式发布。

Blink 是无特权用户空间虚拟机,支持在任何 POSIX 平台上模拟 x86-64-linux 二进制文件,声称是最小的 x86 Linux 模拟器。

总的来说,它是一个 220kb 的无依赖静态二进制文件,实现了大约 600 条 x86 指令和 180 条 Linux 系统调用。因此 Blink 在运行简单的命令行程序方面相当出色。

 

./configure        # use `./configure --help | less` for help
make -j8           # build blink and blinkenlights
doas make install  # doas is modern sudo
blink program      # use `man blink` for help
DSL

Blink 包含一个简洁的 JIT,在某些情况下,对于像临时程序 (ephemeral programs) 这样的用例,它比 Qemu 快 2 倍。

原因在于 Blink 的基线 JIT,它使用 printf 风格的 DSL 快速生成代码。

这意味着 Blink 拥有一个易于使用的代码库(只有 63,500 行 ANSI C11 代码)。

DSL

虽然 Blink 是命令行工具,但它也有一个 TUI 界面(称为 blinkenlights),支持实时调试和可视化程序。

下面是一个运行裸机 Game of Life 演示的示例,该演示程序采用 Rust 编写,它以 i8086 模式从 BIOS 启动,引导至长模式,然后绘制到 Blinkenlight 基于文本的 CGA 显示器。
man blinkenlights
blinkenlights -jmr third_party/gameoflife/gameoflife.bin
# Press CTRL-T several times for Turbo mode
DSL

Blink 最适合用于命令行程序,当然它也支持模拟 GUI 应用程序。

下图是 Blink 在 Debian Linux 上运行 Emacs GUI 的屏幕截图:

DSL





审核编辑:刘清

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分