好玩的WebAssembly

前兩天在阿里云APP上看到了一則關(guān)于網(wǎng)頁上運(yùn)行Windows2000的消息《瀏覽器中可以運(yùn)行Window2000烤镐,WebAssembly 是 JavaScript 的末日熬甚?》。讓我著實(shí)興奮了一會苗沧,因?yàn)闉g覽器跑普通的桌面程序之前有所耳聞,但直接跑操作系統(tǒng)還是第一次遇到。自己親身體驗(yàn)了一把籍滴,除了速度很慢(畢竟是在瀏覽器里),其他方面還是非常不錯(cuò)的榴啸。另外見到了很多年沒見的windows2000孽惰,其年代感給人的感覺非常獨(dú)特。究竟是怎樣的東西鸥印,先點(diǎn)擊這里看一下效果:瀏覽器里運(yùn)行Windows2000勋功。

強(qiáng)烈建議在配置比較好的電腦上打開,因?yàn)闆]有一顆強(qiáng)大的心臟库说,跑不起如此大的程序狂鞋。



(居然可以訪問gg)

WebAssembly 是實(shí)現(xiàn)這項(xiàng)工程的核心技術(shù)。我第一次知道WebAssembly是在幾年前學(xué)習(xí)Erget的時(shí)候潜的,那時(shí)由于某些原因骚揍,對WebAssembly并沒有去做進(jìn)一步的了解。此時(shí)其以這種形式展現(xiàn)在眼前啰挪,使我覺得很有必要立刻深入地了解一下信不,因?yàn)橹庇X認(rèn)為這門技術(shù)不僅不會是JavaScript 的末日,將來還會和JavaScript一起大有作為亡呵。

什么是WebAssembly

首先抽活,我們有必要了解一下asm.js。2012年政己,Mozilla 的工程師 Alon Zakai 在研究 LLVM 編譯器時(shí)突發(fā)奇想:許多 3D 游戲都是用 C / C++ 語言寫的酌壕,如果能將 C / C++ 語言編譯成 JavaScript 代碼,它們不就能在瀏覽器里運(yùn)行了嗎歇由?眾所周知卵牍,JavaScript 的基本語法與 C 語言高度相似。于是沦泌,他開始研究怎么才能實(shí)現(xiàn)這個(gè)目標(biāo)糊昙,為此專門做了一個(gè)編譯器項(xiàng)目 Emscripten。這個(gè)編譯器可以將 C / C++ 代碼編譯成 JS 代碼谢谦,但不是普通的 JS释牺,而是一種叫做 asm.js 的 JavaScript 變體萝衩,性能差不多是原生代碼的50%。

之后Google開發(fā)了Portable Native Client没咙,也是一種能讓瀏覽器運(yùn)行C/C++代碼的技術(shù)猩谊。 后來可能是因?yàn)楸舜酥g有共同的更高追求,Google, Microsoft, Mozilla, Apple等幾家大公司一起合作開發(fā)了一個(gè)面向Web的通用二進(jìn)制和文本格式的項(xiàng)目祭刚,那就是WebAssembly牌捷。asm.js 與 WebAssembly 功能基本一致,就是轉(zhuǎn)出來的代碼不一樣:asm.js 是文本涡驮,WebAssembly 是二進(jìn)制字節(jié)碼暗甥,因此運(yùn)行速度更快、體積更小捉捅。從長遠(yuǎn)來看撤防,WebAssembly 的前景更光明。

WebAssembly官網(wǎng)的定義:

WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications.

WebAssembly(縮寫 Wasm)是基于堆棧虛擬機(jī)的二進(jìn)制指令格式棒口。Wasm為了一個(gè)可移植的目標(biāo)而設(shè)計(jì)的寄月,可用于編譯C/C+/RUST等高級語言,使客戶端和服務(wù)器應(yīng)用程序能夠在Web上部署陌凳。

在導(dǎo)航條下方醒目的展示著“WebAssembly 1.0 has shipped in 4 major browser engines. ”剥懒。表明WebAssembly對現(xiàn)代瀏覽器支持非常友好。

大多數(shù)程序員會選擇使用C語言來編寫WebAssembly模塊合敦,并將其編譯成.wasm文件初橘。這些.wasm文件并不能直接被瀏覽器識別,所以它們需要一種稱為JavaScript膠接代碼(glue code充岛,用于連接相互不兼容的軟件組件)的東西來加載保檐。具體的開發(fā)操作,在此不做展開細(xì)述崔梗。有興趣的人可以在網(wǎng)上查閱到詳細(xì)的資料夜只。

WebAssembly結(jié)合日漸成熟的WebGL技術(shù),使得大型的游戲等應(yīng)用遷移到瀏覽器將逐漸成為可能蒜魄。WebAssembly官網(wǎng)上給了一個(gè)基于unity游戲引擎的小例子Unity WebGL Player | Tanks!扔亥,大家可以玩一玩。

簡單介紹到此谈为,希望你能有所收獲旅挤。


本文參考資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子柒瓣,更是在濱河造成了極大的恐慌儒搭,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芙贫,死亡現(xiàn)場離奇詭異搂鲫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)屹培,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門默穴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怔檩,“玉大人褪秀,你說我怎么就攤上這事⊙ρ担” “怎么了媒吗?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長乙埃。 經(jīng)常有香客問我闸英,道長,這世上最難降的妖魔是什么介袜? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任甫何,我火速辦了婚禮,結(jié)果婚禮上遇伞,老公的妹妹穿的比我還像新娘辙喂。我一直安慰自己,他們只是感情好鸠珠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布巍耗。 她就那樣靜靜地躺著,像睡著了一般渐排。 火紅的嫁衣襯著肌膚如雪炬太。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天驯耻,我揣著相機(jī)與錄音亲族,去河邊找鬼。 笑死可缚,一個(gè)胖子當(dāng)著我的面吹牛霎迫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播城看,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼女气,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了测柠?” 一聲冷哼從身側(cè)響起炼鞠,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤缘滥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后谒主,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體朝扼,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年霎肯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了擎颖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡观游,死狀恐怖搂捧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情懂缕,我是刑警寧澤允跑,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站搪柑,受9級特大地震影響聋丝,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜工碾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一弱睦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧渊额,春花似錦况木、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至舱权,卻和暖如春矗晃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宴倍。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工张症, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鸵贬。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓俗他,卻偏偏與公主長得像,于是被迫代替她去往敵國和親阔逼。 傳聞我的和親對象是個(gè)殘疾皇子兆衅,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容