當(dāng)你在瀏覽器中點(diǎn)擊一個(gè)鏈接,幾秒鐘后,熟悉的Windows 98桌面出現(xiàn)在眼前——這不是懷舊視頻,而是一個(gè)真實(shí)運(yùn)行的操作系統(tǒng)。開發(fā)者Fabian Hemmer通過一個(gè)名為v86的項(xiàng)目,將100多個(gè)操作系統(tǒng)塞進(jìn)了網(wǎng)頁,從1985年的Windows 1.01到Linux、FreeBSD,再到Android和各種小眾系統(tǒng),用戶可以像翻閱計(jì)算機(jī)歷史書一樣體驗(yàn)這些經(jīng)典系統(tǒng)。
這個(gè)項(xiàng)目的神奇之處在于,它并非通過模擬器還原系統(tǒng)界面,而是讓操作系統(tǒng)在網(wǎng)頁中“原生態(tài)”運(yùn)行。以Windows 98為例,用戶可以打開控制面板調(diào)整設(shè)置、切換桌面主題,甚至通過IE瀏覽器訪問網(wǎng)頁。盡管受限于瀏覽器兼容性,部分字符顯示異常,但系統(tǒng)核心功能均能正常使用。這種體驗(yàn)讓許多用戶驚嘆:“這分明是一臺(tái)真實(shí)的Windows 98在運(yùn)行!”
實(shí)現(xiàn)這一技術(shù)奇跡的背后,是Fabian對(duì)硬件的極致模擬。他通過代碼構(gòu)建了一臺(tái)虛擬PC,從CPU、顯卡到聲卡、網(wǎng)卡,所有硬件均以軟件形式呈現(xiàn)。操作系統(tǒng)啟動(dòng)時(shí)會(huì)對(duì)硬件進(jìn)行檢測(cè),任何行為偏差都會(huì)導(dǎo)致崩潰或黑屏。為此,F(xiàn)abian參考Intel兩千多頁的x86指令集手冊(cè),將每一條規(guī)則轉(zhuǎn)化為代碼,確保虛擬硬件與真實(shí)設(shè)備無異。僅模擬CPU一項(xiàng)工作,就足以讓大多數(shù)開發(fā)者望而卻步。
語言障礙是另一大挑戰(zhàn)。操作系統(tǒng)運(yùn)行的是x86機(jī)器碼,而瀏覽器只能執(zhí)行WebAssembly,兩者需要實(shí)時(shí)翻譯。v86采用JIT編譯技術(shù)解決這一問題:程序啟動(dòng)時(shí)逐條翻譯指令,同時(shí)記錄高頻代碼段,將其整體編譯為WebAssembly版本存儲(chǔ)。當(dāng)用戶再次執(zhí)行相同操作時(shí),系統(tǒng)直接調(diào)用編譯好的代碼,大幅提升運(yùn)行速度。這種“邊運(yùn)行邊優(yōu)化”的機(jī)制,讓網(wǎng)頁中的操作系統(tǒng)逐漸變得流暢。
在v86的系統(tǒng)中,用戶能找到許多意想不到的細(xì)節(jié)。例如,Windows 98桌面上的“sheep.exe”寵物程序會(huì)四處奔跑,用鼠標(biāo)拖動(dòng)時(shí)還會(huì)掙扎;DOS系統(tǒng)中預(yù)裝了《毀滅公爵》等經(jīng)典游戲,輸入命令即可開啟1993年的游戲體驗(yàn);Android-x86版本甚至保留了側(cè)滑菜單和聯(lián)系人應(yīng)用,仿佛將手機(jī)系統(tǒng)移植到了網(wǎng)頁。這些細(xì)節(jié)讓技術(shù)演示變成了充滿趣味的互動(dòng)展覽。
Fabian的極客精神在項(xiàng)目中體現(xiàn)得淋漓盡致。除了v86,他還開發(fā)過僅652字節(jié)的俄羅斯方塊、456字節(jié)的貪吃蛇等超精簡(jiǎn)程序,并連續(xù)六年用K語言完成Advent of Code編程挑戰(zhàn)。這種“將事情做到極致”的執(zhí)念,最終轉(zhuǎn)化為商業(yè)價(jià)值——他創(chuàng)立的Droplet Computing公司,專注于將桌面應(yīng)用遷移至瀏覽器環(huán)境,核心技術(shù)正是基于WebAssembly的v86架構(gòu)。
從技術(shù)演示到商業(yè)應(yīng)用,v86證明了瀏覽器的能力遠(yuǎn)超用戶想象。當(dāng)有人質(zhì)疑“在網(wǎng)頁中運(yùn)行Windows 98有何意義”時(shí),F(xiàn)abian用行動(dòng)給出了答案:探索技術(shù)的邊界本身,就是最大的價(jià)值。這個(gè)項(xiàng)目不僅讓經(jīng)典系統(tǒng)重獲新生,更向世界展示了一個(gè)極客如何將瘋狂想法變?yōu)楝F(xiàn)實(shí)。






















