一位国外高中生实现在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
显示进程