微軟最近透露出它正在從流行的Rust程式語言中汲取一些想法來創建一個新的轟動,該項目以項目Verona的名義為「安全基礎結構編程」創建了一種新語言。
英國劍橋計算機實驗室的微軟研究員馬修·帕金森(Matthew Parkinson)在去年下半年的一次演講中首次詳細介紹了維羅納項目,並承諾微軟將儘快開源該項目。
Microsoft Research現在已在GitHub上跟蹤並開源了Project Verona,並提供了有關該項目的更多詳細信息,以及通過更好的內存管理,分區和「泛濫的沙箱」來構建更安全的系統的雄心。倫敦帝國學院的學者也為維羅納計劃提供資助。
正如帕金森解釋的那樣,維羅納計劃旨在幫助保護仍然不存在於Microsoft的許多舊代碼中的不安全語言(如C和C#)中的代碼,Microsoft不會浪費這些代碼,但希望提供更好的保護。
帕金森在會上說:「我們將運行一些C和C ++,這是我們不信任的東西。」 「我們將其放入一個盒子中,我們知道存在物體的這一區域,我們必須非常小心,但是有一系列事情正在發生,我們可以在那裡建立一些普遍的沙箱。因此可以是沙盒庫,我們可以將其嵌入沙盒Verona程序中。」
維羅納項目的GitHub頁面概述了該小組正在研究的一些高級問題,這些問題將在以後的同行評審文章中充實。問題包括:
如果我們設計的語言沒有並發突變,那麼我們可以構建可擴展的內存管理嗎?
可以在不犧牲內存管理的情況下使用線性區域消除每個對象線性的限制嗎?
語言級別的區域可以用來支持分隔嗎?
同樣,Rust並不是激發Verona項目靈感的唯一語言,該語言還借鑑了Cyclone(一種「 C的安全方言」) 和Pony的概念,Cyclone是Microsoft Research的主要貢獻者。
由帕金森撰寫的GitHub頁面強調,維羅納計劃不是產品,並且與微軟對C ++,C#和Rust的持續使用沒有關係。微軟去年透露,它正在嘗試使用Rust而不是C和C ++來編寫底層Windows組件。
它說:「維羅納項目是一個研究項目,不會影響公司的工程選擇。」
「維羅納項目團隊使用公司所有主要語言與人們聯繫在一起,並希望從他們的經驗中學習,因此我們可以研究重要的問題。」
此外,微軟將維羅納項目視為一種「研究程式語言」,並希望通過開放原始碼,可以吸引希望探索並發所有權概念的學術合作者。
帕金森還提供了維羅納計劃的目標,概念及其在系統編程中的適用範圍的更詳細的清單。
他寫道:「有了維羅納項目,我們將在系統編程領域開闢一個基礎設施編程領域,該領域具有重要的性能和可預測性要求,而無需對機器進行原始訪問。」
「在Verona項目中,我們認為我們的研究語言不適合實現Verona運行時本身。這顯然是該項目的目標。」