IT之家 11 月 5 日消息,科技媒體 golem 昨日(11 月 4 日)發(fā)布博文,報(bào)道稱開發(fā)者 Joel Severin 近日在 Linux 內(nèi)核郵件列表中宣布,他歷時(shí)約兩年,成功將 Linux 內(nèi)核移植到了 WebAssembly(Wasm)平臺(tái),讓 Linux 可以作為原生應(yīng)用直接在網(wǎng)頁瀏覽器中啟動(dòng)和運(yùn)行。
Severin 同時(shí)在其 GitHub 項(xiàng)目頁面上提供了可供公眾在線體驗(yàn)的演示版本,用戶無需安裝任何軟件,在瀏覽器中等待數(shù)秒即可啟動(dòng) Linux 內(nèi)核并進(jìn)入一個(gè)基礎(chǔ)的命令行環(huán)境。
![]()
IT之家援引博文介紹,盡管實(shí)現(xiàn)了在瀏覽器中運(yùn)行 Linux 的創(chuàng)舉,但該項(xiàng)目受限于 Wasm 的固有特性,面臨諸多技術(shù)挑戰(zhàn)。
首先,由于 Wasm 不模擬內(nèi)存管理單元(MMU),應(yīng)用程序和操作系統(tǒng)內(nèi)核被迫在同一地址空間中運(yùn)行,這讓程序中的錯(cuò)誤有可能直接破壞內(nèi)核,帶來穩(wěn)定性風(fēng)險(xiǎn)。
此外,Wasm 的原生安裝包格式也不同于 Linux 內(nèi)核默認(rèn)的 ELF 格式,Severin 為此對內(nèi)核及 Busybox 環(huán)境中的程序代碼進(jìn)行了多處修改。
該項(xiàng)目面臨的另一個(gè)核心難題是 Wasm 不支持中斷程序,導(dǎo)致操作系統(tǒng)無法實(shí)現(xiàn)搶占式多任務(wù)處理,即無法主動(dòng)切換不同應(yīng)用進(jìn)程。
![]()
為解決此問題,該項(xiàng)目采用了一種巧妙的變通方法:每當(dāng)需要?jiǎng)?chuàng)建新線程或新進(jìn)程時(shí),系統(tǒng)就會(huì)模擬啟動(dòng)一個(gè)全新的“處理器”來運(yùn)行它。利用 Linux 內(nèi)核最高可支持 8192 個(gè)處理器的特性,該方案在理論上滿足了多任務(wù)并發(fā)的需求,但也反映了當(dāng)前 Wasm 在系統(tǒng)級支持上的局限。
Severin 坦言,該項(xiàng)目目前主要是一項(xiàng)探索技術(shù)可能性的概念驗(yàn)證(Proof of Concept),其實(shí)用價(jià)值有限,更像是一次技術(shù)“奇觀”,類似于此前出現(xiàn)的“在 PDF 中運(yùn)行 Linux”等項(xiàng)目。
該移植版目前不僅使用了較舊的 Linux 6.4.16 內(nèi)核,還存在一些已知錯(cuò)誤,例如重啟命令會(huì)導(dǎo)致堆棧損壞,以及控制臺(tái)在運(yùn)行一段時(shí)間后會(huì)穩(wěn)定失靈。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.