Linux/WASM
7 months ago
- #Browser
- #Linux
- #WebAssembly
- 控制台使用Ctrl + C等快捷键,Shift键可能根据平台和浏览器不同改变功能行为
- 复制粘贴可通过Ctrl + Insert和Shift + Insert实现,或使用右键菜单操作
- 该演示通过WebAssembly(Wasm)在浏览器中运行Linux内核,BusyBox提供shell和标准命令
- 这仅是概念验证,并非稳定安全系统,需要大量临时解决方案
- 已知问题包括系统死锁、控制台5分钟后冻结,以及longjmp()和vfork()相关缺陷
- Wasm在Linux中的运行方式与其他架构类似,但缺少任务暂停功能,需通过专用CPU等方案解决
- 限制包括无法中断任务、没有内存管理单元(MMU),以及严格的哈佛架构禁止运行时修改代码
- 当前系统未优化,存在并行启动CPU/使用SharedArrayBuffer通信等改进空间
- 早期浏览器运行Linux方案依赖低速模拟或将Linux作为库运行,与本方案直接运行方式不同
- 未来可能支持WebGL图形/Dwarf调试格式,并探索C++兼容性
- 对Wasm的期待功能包括:内存保护的MMU、线程暂停、采用ELF格式及增强调试能力
- 栈切换与内存控制提案可能增强Wasm上的Linux,甚至实现真正的执行状态休眠
- 在Wasm环境中建议使用clone()系统调用替代fork/vfork,以获得更安全强大的功能