微軟最近透露出它正在從流行的Rust編程語(yǔ)言中汲取一些想法來(lái)創(chuàng)建一個(gè)新的轟動(dòng),該項(xiàng)目以項(xiàng)目Verona的名義為“安全基礎(chǔ)結(jié)構(gòu)編程”創(chuàng)建了一種新語(yǔ)言。
英國(guó)劍橋計(jì)算機(jī)實(shí)驗(yàn)室的微軟研究員馬修·帕金森(Matthew Parkinson)在去年下半年的一次演講中首次詳細(xì)介紹了維羅納項(xiàng)目,并承諾微軟將盡快開(kāi)源該項(xiàng)目。
Microsoft Research現(xiàn)在已在GitHub上跟蹤并開(kāi)源了Project Verona,并提供了有關(guān)該項(xiàng)目的更多詳細(xì)信息,以及通過(guò)更好的內(nèi)存管理,分區(qū)和“泛濫的沙箱”來(lái)構(gòu)建更安全的系統(tǒng)的雄心。倫敦帝國(guó)學(xué)院的學(xué)者也為維??羅納計(jì)劃提供資助。
正如帕金森解釋的那樣,維羅納計(jì)劃旨在幫助保護(hù)仍然不存在于Microsoft的許多舊代碼中的不安全語(yǔ)言(如C和C#)中的代碼,Microsoft不會(huì)浪費(fèi)這些代碼,但希望提供更好的保護(hù)。
帕金森在會(huì)上說(shuō):“我們將運(yùn)行一些C和C ++,這是我們不信任的東西。” “我們將其放入一個(gè)盒子中,我們知道存在物體的這一區(qū)域,我們必須非常小心,但是有一系列事情正在發(fā)生,我們可以在那里建立一些普遍的沙箱。因此可以是沙盒庫(kù),我們可以將其嵌入沙盒Verona程序中。”
維羅納項(xiàng)目的GitHub頁(yè)面概述了該小組正在研究的一些高級(jí)問(wèn)題,這些問(wèn)題將在以后的同行評(píng)審文章中充實(shí)。問(wèn)題包括:
如果我們?cè)O(shè)計(jì)的語(yǔ)言沒(méi)有并發(fā)突變,那么我們可以構(gòu)建可擴(kuò)展的內(nèi)存管理嗎?
可以在不犧牲內(nèi)存管理的情況下使用線性區(qū)域消除每個(gè)對(duì)象線性的限制嗎?
語(yǔ)言級(jí)別的區(qū)域可以用來(lái)支持分隔嗎?
同樣,Rust并不是激發(fā)Verona項(xiàng)目靈感的唯一語(yǔ)言,該語(yǔ)言還借鑒了Cyclone(一種“ C的安全方言”) 和Pony的概念,Cyclone是Microsoft Research的主要貢獻(xiàn)者。
由帕金森撰寫(xiě)的GitHub頁(yè)面強(qiáng)調(diào),維羅納計(jì)劃不是產(chǎn)品,并且與微軟對(duì)C ++,C#和Rust的持續(xù)使用沒(méi)有關(guān)系。微軟去年透露,它正在嘗試使用Rust而不是C和C ++來(lái)編寫(xiě)底層Windows組件。
它說(shuō):“維羅納項(xiàng)目是一個(gè)研究項(xiàng)目,不會(huì)影響公司的工程選擇。”
“維羅納項(xiàng)目團(tuán)隊(duì)使用公司所有主要語(yǔ)言與人們聯(lián)系在一起,并希望從他們的經(jīng)驗(yàn)中學(xué)習(xí),因此我們可以研究重要的問(wèn)題。”
此外,微軟將維羅納項(xiàng)目視為一種“研究編程語(yǔ)言”,并希望通過(guò)開(kāi)放源代碼,可以吸引希望探索并發(fā)所有權(quán)概念的學(xué)術(shù)合作者。
帕金森還提供了維羅納計(jì)劃的目標(biāo),概念及其在系統(tǒng)編程中的適用范圍的更詳細(xì)的清單。
他寫(xiě)道:“有了維羅納項(xiàng)目,我們將在系統(tǒng)編程領(lǐng)域開(kāi)辟一個(gè)基礎(chǔ)設(shè)施編程領(lǐng)域,該領(lǐng)域具有重要的性能和可預(yù)測(cè)性要求,而無(wú)需對(duì)機(jī)器進(jìn)行原始訪問(wèn)。”
“在Verona項(xiàng)目中,我們認(rèn)為我們的研究語(yǔ)言不適合實(shí)現(xiàn)Verona運(yùn)行時(shí)本身。這顯然是該項(xiàng)目的目標(biāo)。”