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