运行在pdf上的linux系统

一位国外高中生实现在PDF中运行Linux系统。

PDF文件不仅仅是静态的文档,同时还支持Javascript,并有自己独立的标准库,一些浏览器(谷歌浏览器、火狐浏览器)将此作为PDF引擎的一部分来实现。

PDF中的JS完整规范只有Adobe Acrobat实现过,包含了一些能力,例如3D渲染、发出HTTP请求、监控用户点击等。

基于以上能力,只需要极少的IO就可以实现任何想要的计算。

再此之前,Fabrice Bellard(一位法国计算机程序员)实现了一个 轻量级RISC-V模拟器TinyEMU,允许在浏览器中运行Linux模拟器。

于是,基于TinyEMU,就可以实现在PDF中运行Linux系统(PDF地址:https://linux.doompdf.dev/linux.pdf),实现按键输入,或者键盘输入。

测试

打印hello

显示进程

参考

  1. https://github.com/ading2210/linuxpdf
  2. https://github.com/fernandotcl/TinyEMU