技術內容
NaCl使用Newlib作為它的C標準函式庫,但它也支援GNU C 函式庫。
它最初只支援x86平台,但目前也支援ARM平台與x86-64。
沙盒技術
NaCl運用沙盒技术以防止外來(第三方)機器碼影響系統安全;特別是在x86平台上運用記憶體區段,限制外掛程式所能讀寫的記憶體范围。
由於ARM與x86-64長模式不支援記憶體區段,因此在這些平台上NaCl的記憶體寫入地址是由沙盒過濾。
機器碼驗證器
NaCl運用機器碼驗證器(Code Validator)来保證只有安全機器碼能在系統執行。由於x86/x86-64是複雜指令集,指令長度不一,透過控制流程可能隱藏非安全機器碼,從而使驗證十分耗時。NaCl運用固定長度的16或32位元組的指令束(Instruction Bundle),使機器碼驗證器設計簡單(只有約600行C語言)和高效率; 而運用指令束只是失去5%的執行效率。
應用軟件的移植
外部連結
- (英文) NaCl計劃官網(页面存档备份,存于互联网档案馆)
- (英文) YouTube上的Google I/O 2009 Native Code for Compute Intensive Web Apps - Google I/O 2009技術專題討論
- (英文) YouTube上的Google I/O 2012 Life of a Native Client Instruction - Google I/O 2012技術專題討論
