Blink 1.0 已正式發(fā)布。
Blink 是無特權(quán)用戶空間虛擬機(jī),支持在任何 POSIX 平臺上模擬 x86-64-linux 二進(jìn)制文件,聲稱是最小的 x86 Linux 模擬器。
總的來說,它是一個(gè) 220kb 的無依賴靜態(tài)二進(jìn)制文件,實(shí)現(xiàn)了大約 600 條 x86 指令和 180 條 Linux 系統(tǒng)調(diào)用。因此 Blink 在運(yùn)行簡單的命令行程序方面相當(dāng)出色。
./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 包含一個(gè)簡潔的 JIT,在某些情況下,對于像臨時(shí)程序 (ephemeral programs) 這樣的用例,它比 Qemu 快 2 倍。
原因在于 Blink 的基線 JIT,它使用 printf 風(fēng)格的 DSL 快速生成代碼。
這意味著 Blink 擁有一個(gè)易于使用的代碼庫(只有 63,500 行 ANSI C11 代碼)。
雖然 Blink 是命令行工具,但它也有一個(gè) TUI 界面(稱為blinkenlights),支持實(shí)時(shí)調(diào)試和可視化程序。
下面是一個(gè)運(yùn)行裸機(jī) Game of Life 演示的示例,該演示程序采用 Rust 編寫,它以 i8086 模式從 BIOS 啟動(dòng),引導(dǎo)至長模式,然后繪制到 Blinkenlight 基于文本的 CGA 顯示器。
man blinkenlights blinkenlights -jmr third_party/gameoflife/gameoflife.bin # Press CTRL-T several times for Turbo mode
Blink 最適合用于命令行程序,當(dāng)然它也支持模擬 GUI 應(yīng)用程序。
下圖是 Blink 在 Debian Linux 上運(yùn)行 Emacs GUI 的屏幕截圖:
審核編輯:劉清
-
DSL
+關(guān)注
關(guān)注
2文章
59瀏覽量
38367 -
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
595瀏覽量
27510 -
BIOS
+關(guān)注
關(guān)注
5文章
470瀏覽量
45932 -
模擬器
+關(guān)注
關(guān)注
2文章
881瀏覽量
43417 -
虛擬機(jī)
+關(guān)注
關(guān)注
1文章
937瀏覽量
28426
原文標(biāo)題:Blink 1.0正式發(fā)布, 最小的x86 Linux模擬器
文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論