11月5日消息,科技媒体golem昨日(11月4日)发布博文,报道称开发者Joel Severin近日在Linux内核邮件列表中宣布,经过约两年的努力,他已成功将Linux内核移植到WebAssembly(Wasm)平台,使得Linux能够作为原生应用直接在网页浏览器中启动和运行。
Severin同时在其GitHub项目页面上提供了可供公众在线体验的演示版本,用户无需安装任何软件,在浏览器中等待数秒即可启动Linux内核并进入一个基础的命令行环境。

援引博文介绍,尽管实现了在浏览器中运行Linux的创举,但该项目受限于Wasm的固有特性,面临诸多技术挑战。
首先,由于Wasm不模拟内存管理单元(MMU),应用程序和操作系统内核被迫在同一地址空间中运行,这让程序中的错误有可能直接破坏内核,带来稳定性风险。
此外,Wasm的原生安装包格式也不同于Linux内核默认的ELF格式,Severin为此对内核及Busybox环境中的程序代码进行了多处修改。
该项目面临的另一个核心难题是Wasm不支持中断程序,导致操作系统无法实现抢占式多任务处理,即无法主动切换不同应用进程。

为解决此问题,该项目采用了一种巧妙的变通方法:每当需要创建新线程或新进程时,系统就会模拟启动一个全新的“处理器”来运行它。利用Linux内核最高可支持8192个处理器的特性,该方案在理论上满足了多任务并发的需求,但也反映了当前Wasm在系统级支持上的局限。
Severin坦言,该项目目前主要是一项探索技术可能性的概念验证(Proof of Concept),其实用价值有限,更像是一次技术“奇观”,类似于此前出现的“在 PDF 中运行 Linux”等项目。
该移植版目前不仅使用了较旧的Linux 6.4.16内核,还存在一些已知错误,例如重启命令会导致堆栈损坏,以及控制台在运行一段时间后会稳定失灵。
