主要观点:介绍了一个在 PDF 文件中运行 Linux 的项目 LinuxPDF,基于 RISC-V 模拟器 TinyEMU,可通过特定链接尝试,包含相关视频展示。
关键信息:
- 工作原理类似 DoomPDF 项目,利用 PDF 中支持的 Javascript 及特定 API 进行计算,C 代码可通过旧版本 Emscripten 编译为 asm.js 在 PDF 中运行,TinyEMU RISC-V 模拟器被编译到 asm.js 。
- 存在性能问题,如 Linux 内核启动需 30 - 60 秒,约为正常速度的 100 多倍,原因是 Chrome PDF 引擎使用的 V8 的 JIT 编译器被禁用。
- 有 64 位和 32 位版本的根文件系统,默认是 32 位 Buildroot 系统,也有 64 位 Alpine Linux 系统,64 位模拟器速度约为 32 位的一半。
重要细节: - 构建指令为克隆仓库后运行一系列命令,可编辑
build.sh
选择构建 64 位版本,build.sh
会自动下载 Emscripten1.39.20
,生成文件在out/
目录,可通过(cd out; python3 -m http.server)
在本地服务器上运行。 - 项目由[@ading2210]制作,RISC-V 模拟器 fork 自 TinyEMU,由 Fabrice Bellard 编写,仓库遵循 GNU GPL v3 许可证。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。