Blink 1.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

Blink 包含一个简洁的 JIT,在某些情况下,对于像临时程序(ephemeral programs)这样的用例,它比 Qemu 快 2 倍。原因在于 Blink 的基线 JIT,它使用 printf 风格的 DSL 快速生成代码。这意味着 Blink 拥有一个易于使用的代码库(只有 63,500 行 ANSI C11 代码)。

虽然 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

Blink 最适合用于命令行程序,当然它也支持模拟 GUI 应用程序。下图是 Blink 在 Debian Linux 上运行 Emacs GUI 的屏幕截图:

详情查看 Release Notes。


相關推薦

2022-04-22

QEMU 是一个免费开源的模拟器,它通过动态二进制翻译来模拟机器的处理器,并为机器提供一套不同的硬件和设备模型,使其能够运行各种客户操作系统。它可以与基于内核的虚拟机(KVM)互操作,以接近原生速度运行虚拟机。Q

2022-12-19

的下一个大版本,即 Speedometer 3。 Speedometer 1.0 于 2014 年发布,随后于 2018 年带来了 2.0 版本的重大更新,目前最新的稳定版本为 2.1。 常看我们文章的用户对 Speedometer 应该也不陌生。在今年 3 月和 6 月,Google 的 Chrome 团队就曾

2023-01-27

Wine-CE 首个正式版v8.0发布,该版本基于Wine 8.0和Qemu 7.2.0,可在ARM平台上运行x86 Win32程序。在此版本之前,已发布2个预览版。并已经在树莓派4平台上成功进行了测试。 和其它在ARM平台上运行x86应用程序的方案相比,该方案将指

2023-02-28

2月24日,腾讯官方正式发布QQ Linux版 v3.1.0,从该版本起QQ开始支持龙架构(LoongArch)平台,可在龙芯3A5000终端的UOS、麒麟、Loongnix等操作系统上原生运行。自此,龙架构和X86、ARM并列成为腾讯QQ官方同步支持的三大CPU架构。 下载

2022-11-06

GParted Live 1.4.0-6 已发布。 GParted 是 Linux 的图形化动态分区管理工具,用于以图形方式管理磁盘分区。GParted 可用于创建、删除、调整大小、移动、检查和复制磁盘分区及其文件系统。 GParted Live 则是一种形如名片的自启动运行

2023-02-19

由于Wine更新至8.2版本,跨指令集架构Windows应用模拟器Wine CE也随之变基更新至8.2版本,此版本基于Wine 8.2和Qemu 7.2.50分支。在引入Wine 8.2的更新的同时,此版本有以下更新: 1. 添加本机端对RISCV64的支持,可以在RISCV64架构Linux平台

2022-07-21

Qsim:使用 AVX/FMA 矢量化指令编写的高性能状态矢量模拟器,可选 GPU 加速。   有关 Cirq  1.0 的更多内容,请参阅谷歌博客和 1.0 发行说明 。

2023-05-18

,PETSc(Portable, Extensible Toolkit for Scientific Computation)项目正式启动,由美国加州大学圣巴巴拉分校计算科学研究所的数学和计算科学研究组(Mathematics and Computer Science group of the Institute for Computational Sciences)发起和开发,目的是

2023-01-29

软件简介 easy-browser 是 java 开源浏览器,基于 jxbrowser 实现。 支持 ARM X86,windows MAC (包括 M1) linux。 截图 特性 HTML5 CSS3 java-JS 互相调用 4K 64FPS 视频播放 无图模式 PDF 预览 HTML 转图片 打印 DOM 修改 开发

2022-10-19

Ash Framework 2.0 已正式发布。 Ash Framework 是用于构建 Elixir 应用程序的声明式、面向资源和可扩展的框架。在 Ash 中,资源可以对任何东西提供模型,如数据库表、外部 API,甚至是自定义代码。 Ash 提供了丰富而广泛的工具集,用

2022-02-24

x 内核(PREEMPT_RT)相关的工作。 PREEMPT-RT 的核心思想是最小化内核中不可抢占部分的代码,同时将为支持抢占性必须要修改的代码量最小化。对临界区、中断处理函数、关中断等代码序列进行抢占改进。 无论是从人力还是

2023-04-29

隆 GNU/Linux、macOS 和 Windows 系统。 目前 Clonezilla Live 3.1 发布了,这个版本与 Debian Sid 存储库同步,并由 Linux 6.1.25 内核提供支持。新版本引入了两个新工具,dvtm(动态虚拟终端管理器)和 dtach,一个程序模拟屏幕的分离功能。

2022-12-02

的 ClamAV 于 2002 年发布,在首次发布近 20 年后,ClamAV 1.0 正式推出。 ClamAV 1.0.0 现已稳定,可通过 ClamAV.net 或 Docker Hub 下载。ClamAV 1.0.0 包括以下变化: 主要变化 支持解密用默认密码加密的基于 OLE2 的只读 XLS 文件。默认密码

2022-06-22

历经一年多的开发,mojo.js 终于发布了首个主要版本 1.0。 mojo.js 是 Node.js 实时 Web 框架,可将它视作采用 TypeScript 重写的 Mojolicious(Mojolicious 是 Perl 开发的 Web 框架)。mojo.js 使用了所有最新的 JavaScript 特性,专为聚焦超媒体