距離上一次我寫關(guān)于微軟“Midori”操作系統(tǒng)項(xiàng)目的內(nèi)容已經(jīng)過去了一年多時(shí)間。但是由該項(xiàng)目參與者之一撰寫的新系列博客文章,重新燃起了我對(duì)這個(gè)現(xiàn)在已經(jīng)解散了的團(tuán)隊(duì)以及他們從近10年開發(fā)項(xiàng)目中獲得經(jīng)驗(yàn)教訓(xùn)的興趣。
我第一次寫關(guān)于Midori的博客文章是在2008年。當(dāng)時(shí)微軟組建了一個(gè)工程師團(tuán)隊(duì),開發(fā)一個(gè)不是基于Windows核心的新操作系統(tǒng)。Midori團(tuán)隊(duì)不僅要從零開始開發(fā)這個(gè)操作系統(tǒng),而且還要是一個(gè)完整的軟件堆棧,包括瀏覽器、相關(guān)工具,等等。
在高峰期的時(shí)候,微軟有近100名開發(fā)者致力于Midori,據(jù)團(tuán)隊(duì)成員Chris Brumme的LinkedIn資料顯示。Brumme稱自己是“一個(gè)重要的操作系統(tǒng)孵化項(xiàng)目的共同創(chuàng)始人、架構(gòu)師和總經(jīng)理”,追溯到2005年。(Brumme在資料里面寫自己在2015年加入了Google。)
Midori的一位開發(fā)經(jīng)理和語言架構(gòu)師Joe Duffy,最近公布稱打算持續(xù)公布數(shù)十篇關(guān)于Midori工作的系列博客文章。第一篇來自于11月3日,關(guān)于三個(gè)安全因素(類型、內(nèi)存和并發(fā))。Duffy目前是微軟編譯器和語言平臺(tái)部門的工程設(shè)計(jì)總監(jiān)。
本月初,Duffy在博客文章中寫道,在Midori項(xiàng)目中,“盡管我們從C#和.Net開始,但是我們被迫在安全、可靠性和性能方面產(chǎn)生巨大的背離。現(xiàn)在,我正在幫助將這些教訓(xùn)帶入到要推出的產(chǎn)品中,也許讓人意外的是,包括C++。我大多數(shù)的博客內(nèi)容是集中在我們現(xiàn)在嘗試運(yùn)用產(chǎn)品中的關(guān)鍵經(jīng)驗(yàn)教訓(xùn),例如零拷貝IO、消除安全性和性能之間的分立、基于容量的安全性、安全并發(fā)、創(chuàng)建技術(shù)爭(zhēng)論的文化,等等。”
很多年來,微軟方面試圖淡化Midori的存在。很多該項(xiàng)目的參與者不經(jīng)意地透露他們與微軟內(nèi)一個(gè)神秘的技術(shù)孵化項(xiàng)目有關(guān)。但是現(xiàn)在,很容易就找到了關(guān)于Midori團(tuán)隊(duì)研究?jī)?nèi)容的較為詳細(xì)的信息。
一位在2011年到2015年4月參與Midori項(xiàng)目的團(tuán)隊(duì)成員,在她的LinkedIn資料中顯示,她致力于“將分布式存儲(chǔ)和計(jì)算引擎導(dǎo)入一種管理語言,并帶入到新的操作系統(tǒng)環(huán)境中。”這位名為Svitlana Tumanova的工程師還在致力于將現(xiàn)有的C++代碼庫(kù)導(dǎo)入一種更安全的語言,以及設(shè)計(jì)新操作系統(tǒng)瀏覽器的DOM Tree和CSS部分。
Leif Kornstaedt是另外一名工程負(fù)責(zé)人,在2008年到2014年6月期間參與Midori項(xiàng)目的架構(gòu)師。他的資料顯示,他致力于“大量技術(shù)的前沿方法,例如進(jìn)程間的通信、承諾、管理代碼正常運(yùn)行時(shí)間、提前編譯托管代碼、管理/原生互操作、并發(fā)垃圾收集、異步執(zhí)行模式、JavaScript執(zhí)行和托管,以及Web瀏覽器架構(gòu)。”
David Tarditi的LindedIn資料顯示,他在2007年到2013年11月負(fù)責(zé)Midori工具團(tuán)隊(duì),并提供了一些關(guān)于Midori的歷史:
“我領(lǐng)導(dǎo)Midori項(xiàng)目的工具團(tuán)隊(duì),這個(gè)團(tuán)隊(duì)從4個(gè)人發(fā)展到很多人。Midori是一個(gè)完全以C#編寫的操作系統(tǒng),實(shí)現(xiàn)可以匹敵生產(chǎn)做系統(tǒng)的性能,消除以C或者C++編寫的操作系統(tǒng)中存在的安全和可靠性問題。我們繼續(xù)開發(fā)用于Singularity項(xiàng)目中的Bartol編譯器,這樣它就可以用于以C#編寫生產(chǎn)質(zhì)量系統(tǒng)軟件。我們?cè)黾恿丝鐜?kù)對(duì)泛型、共享庫(kù)、通用共享代碼的支持,以及其他一些用于系統(tǒng)編程的很棒的功能。我們將Bartok與Phoenix編譯器基礎(chǔ)架構(gòu)連接起來,大幅改善Phoenix生成代碼的整體質(zhì)量,這樣在SPEC基準(zhǔn)測(cè)試中對(duì)比C/C++編譯器就具有競(jìng)爭(zhēng)力,并增加了對(duì)管理代碼優(yōu)化的擴(kuò)展支持。”(M#前身是作為Midori團(tuán)隊(duì)編譯器工作之外的語言。)
作為我最喜歡的微軟觀察者,The Walking Cat(也就是Twitter上的h0x0d)已經(jīng)記錄了多年時(shí)間,很多Midori團(tuán)隊(duì)成員相繼離開微軟。該項(xiàng)目被轉(zhuǎn)移到現(xiàn)有的操作系統(tǒng)部門下,越來越多的成員最終都離開了該團(tuán)隊(duì)。今年年初,Eric Rudder作為Midori的執(zhí)行負(fù)責(zé)人也離開了公司。
微軟的路線是操作系統(tǒng)部門和微軟的其他團(tuán)隊(duì)正在將來自Midori的“經(jīng)驗(yàn)教訓(xùn)”帶入到微軟下個(gè)階段。
對(duì)于我們這些微軟觀察者來說,一直不清楚微軟最終打算怎么處理Midori。從Duffy的博客來看,似乎該團(tuán)隊(duì)的成員也不是那么確定。
“首先我要承認(rèn),我們沒有人知道Midori最終會(huì)怎樣。對(duì)于研究項(xiàng)目來說,通常就是這種情況,”Duffy這樣表示。
“我最大的遺憾就是我們沒有從一開始進(jìn)行開源,互聯(lián)網(wǎng)精英們能夠給出正確的判斷,”Duffy補(bǔ)充說。“對(duì)于所有大公司來說,圍繞著Midori核心技術(shù)命運(yùn)的決策,都不是完全以技術(shù)為驅(qū)動(dòng)的,不幸的是,甚至不完全是業(yè)務(wù)為驅(qū)動(dòng)的。但是這里面也有一些很重要的經(jīng)驗(yàn)教訓(xùn)。”