此前,微軟表示正探索將Rust作為C和C++的安全替代方案,并且也對外展示了使用Rust重寫Windows組件的體驗,根據微軟的說法,Rust是一種從根本上考慮安全性的編程語言,他們將嘗試使用Rust重寫各種產品,因為在過去的十年里,微軟70%以上的安全補丁都提供了與內存相關的錯誤,而Rust正是解決這個問題的“良藥”。
而根據ZDNet的報導,近日在一次演講中,談到微軟為解決相應內存問題所做的工作,微軟研究人員Matthew Parkinson提到了微軟正在開發的基于Rust的新編程語言Verona。
演講中,Matthew先是分享了微軟在MemGC(Memory Garbage Collector)上所做的工作,MemGC是指IE和Edge瀏覽器上的內存垃圾回收器,它解決了標準瀏覽器一個特性——文檔對象模型(DOM)中的漏洞,DOM以樹結構表述了HTML文檔內容。
之后他由此牽出另一個問題:如何構建最安全的產品?不僅僅丟棄已有的東西,而要考慮可以在更加安全的系統中構建一些什么。他介紹了微軟正在使用Rust重寫某些組件,并提出:“如果我們想要隔離,并精簡遺留代碼,以使攻擊者的利用代碼無法逃逸出來,那么如何設計語言呢?”
Matthew提出了微軟正在開發的基于Rust的新編程語言Verona,他表示這是首次討論該項目,Verona是用于微軟“安全基礎設施編程(safe infrastructure programming)”的一種新語言。
Matthew介紹,Verona由C#項目經理Mads Torgensen與Microsoft Research Cambridge研究軟件工程師Juliana Franco維護。
微軟面臨的挑戰是應對寬廣的應用領域,范圍從C#桌面應用到C或C# Exchange、ASP.NET、Azure與設備驅動程序,再到內存管理和啟動加載器等底層Windows組件,以及Windows內核硬件抽象層(HAL,hardware abstraction layer)。
“執行內存管理確實很困難,如果有任意并發突變,則臨時內存安全性將非常困難”,Matthew介紹了Verona的設計思路:“Verona的所有權模型是基于對象組的,而不是像Rust那樣基于單個對象的所有權模型。在C++中,可以獲得指針,并且它是基于對象的。但這與我關于數據和語法的思考不同,我認為數據結構是對象的集合,而對象的集合則是生命周期。因此,通過在對象的所有權級別獲得所有權,我們就可以更接近人們正在使用的抽象級別,它使我們能夠構建數據結構而不會超出安全范圍。”
So by taking ownership at the level of ownership of objects, then we get much closer to the level of abstraction that people are using and it gives us the ability to build data structures without going outside of safety.
另外,Matthew還表示Verona很快將會開源。
-
微軟
+關注
關注
4文章
6629瀏覽量
104461 -
開源
+關注
關注
3文章
3402瀏覽量
42711
發布評論請先 登錄
相關推薦
評論