【中云網(wǎng) 消息】5月29日,以大力發(fā)展并推動北京科技原創(chuàng)能力為宗旨的“2013中國·北京(國際)開源大會”在北京新世紀(jì)日航酒店隆重開幕。本次大會由北京市經(jīng)信委指導(dǎo),中國軟件行業(yè)協(xié)會主辦,中云網(wǎng)承辦,并得到了中國云產(chǎn)業(yè)聯(lián)盟、中關(guān)村云計算產(chǎn)業(yè)聯(lián)盟、天云趨勢等單位的大力支持。大會以“開源中國 原創(chuàng)北京”為主題,通過豐富前瞻性的思想盛宴,力爭讓北京在世界科技發(fā)展新趨勢下占據(jù)主動地位。
上??铺┤A捷科技有限公司董事長陳榕 【中云網(wǎng) 配圖】
上海科泰華捷科技有限公司董事長陳榕參與此次會議,并做主題演講。他分享了他們公司做操作系統(tǒng)的歷程,重點分析了在開發(fā)過程中遇到的困難及解決方案。
以下是陳榕的演講全稿:
我2000年回到北京做了一個公司,這個公司只有一個目標(biāo),就是做一個操作系統(tǒng)。在座的很多人在講openstack,我講講我對這幅圖的理解。我2000年回來創(chuàng)業(yè),走過一些彎路。姜處長給過我們一些支持。我們做過兩支完整的手機,做過一一款電子書。從內(nèi)心、操作系統(tǒng),全部是我們在中國一行一行代碼寫出來的。07年底、08年初很快碰到了安卓和IOS。所以我們當(dāng)時的銷售并不理想。這一款產(chǎn)品是我們最新的一個操作系統(tǒng)的界面。這個代碼去年11月開源,我們公司投入了50個人全職做這個事。做完的代碼全部放到了公開的網(wǎng)站上。社區(qū)上有五六十個人,因為他們看我的微博,他們?nèi)ツ莾嚎?,你們真有源代碼嗎?可是那些人還沒有真的投入到開發(fā)過程中。我也希望通過今天的推廣,大家看到這個界面,前半年真的沒有什么界面。讓外人來參加也很難。但是現(xiàn)在我們還是希望對一些老師和同學(xué)起一些啟迪的作用。
這個操作系統(tǒng),宏觀一點講,剛才那個界面我們基本能做到把安卓的系統(tǒng)跑起來。我原來曾經(jīng)寫過我自己設(shè)置的內(nèi)核。有機會對內(nèi)核有希望討論的人,我希望分享一些教訓(xùn)。既然安卓的可以跑起來,下面還是UINX,那你做的這個有什么用?你跟安卓怎么比?如果大家想,我這個手里拿著一個安卓手機。安卓也好,IOS也好,現(xiàn)在都只做一支機器。這支機器一旦定,它的屏幕大小、CPU型號、內(nèi)存跟著設(shè)計這支硬件、這支機器已經(jīng)全部都定好了。如果我給大家出幾個題目,同樣希望大家跑安卓,我在旁邊加一個分離的硬件?,F(xiàn)在微軟、IOS都有一些藍牙鍵盤。或者WIFI攝象頭。分離軟件,也有一些人會說我們現(xiàn)在有物聯(lián)網(wǎng)。在一個SERVRE邊上布了很多傳感器。電影院在這兒,家里還有兩個電腦,想形成這樣一個系統(tǒng)。如果我們用安卓的JAVR系統(tǒng)來做。你為了寫這個攝象頭,這兒JAVA就要繼承,你那兒寫一個ME。問題是如果我是一個分離軟件,我是一個分離的藍牙鍵盤,或者是一個分離的WIFI攝象頭。這個分離元件里面會跑一個TCG。它連MMU都沒有。
這個時候我怎么樣從JAVA繼承呢?如果我要想做一個我們認(rèn)為,作為學(xué)術(shù)來講我不希望有這個詞,它就是一個雙耦合的分離系統(tǒng)。這么多的CPU看成是一個系統(tǒng)。我們把它叫做云,我們認(rèn)為這是一個家庭云,云這個概念其實不好。但是在大忽悠的社會環(huán)境下,我們還是把這個東西叫家庭云?,F(xiàn)在很多人講的云是在服務(wù)器端。這個時候我們把一些云的技術(shù)拉入到創(chuàng)意端。這個家庭是多CPU,而且是雙耦合的。這個CPU可能跟那個CPU不一樣。這是一個雙耦合異構(gòu)系統(tǒng)。第二維中間,如果說我有一個云作為一臺計算機的話,上面有沒有可能跑多個虛擬機呢?曾經(jīng)十年前,大家一個PC就跑一個操作系統(tǒng)?;ハ嗯潘?。所以很快形成了一個正反對。讓微軟達到了95%的市場占有率。當(dāng)時蘋果的市場占有率是2%、3%。LINUX市場占有率也是非常小的。
這個時候有人說,我們能不能做一個手機核?我們能不能打進PC市場?這個時候的匹夫之勇現(xiàn)在想來是沒有什么用的。這是一個新的變化。我們能在一架物理電腦上跑出N個虛擬機。如果是為了項目兼容,我可以在虛擬機里面再跑windows。但是我為了創(chuàng)新,我能不能做一個比較創(chuàng)新型的OS?這就會給OS的創(chuàng)新帶來一個新的機會。我們操作系統(tǒng)的研發(fā),我85年開始做UINX的內(nèi)核,可是到今天為止,我認(rèn)為OS最后的創(chuàng)新力。今天大家很少有人在討論操作系統(tǒng)如何創(chuàng)新了。
操作系統(tǒng)我講的是兩個方面,一個是對硬件的圖象,講的是內(nèi)核。比如說抽線程內(nèi)核。當(dāng)時有一個點A文件,ESC,后來又出來了SO。操作系統(tǒng)的第一方向是抽象硬件。第二個更重要的目標(biāo)是怎么運行軟件。比如說現(xiàn)在我們看到MIGO,看到安卓,看見火狐軟件,所有這些我們大家公認(rèn)的,有人說這些OS各有各的不同。不管你是在這兩個陣營里持哪個態(tài)度。上面的這個演化現(xiàn)在是層出不窮。底下的內(nèi)核基本穩(wěn)定。這個結(jié)論還是公平公正的。如果上面要做一些新的創(chuàng)新。我拿一支很強的手機,比如兩核、四核。我上面拿一個手機撥號就可以撥給倪老師,他打電話就可以打給我。這兩個手機通過一個虛擬的網(wǎng)絡(luò)空間,這個手機很快可以找到他的手機,很快形成分布式處理,或者是協(xié)同的外部服務(wù)。我們兩支手機是沒有辦法攻擊中移動、中電信網(wǎng)絡(luò)的。這兩支手機不知道它底下或者周邊有多少DNS地址,如果上面的虛擬機都知道DNS地址,大家現(xiàn)在的網(wǎng)絡(luò)安全是岌岌可危的。如果任何機器,任何一個360裝過的肉機都可以向一個網(wǎng)站瞬間發(fā)起一個DDS的攻擊,這個網(wǎng)絡(luò)絕對是不堪一擊??墒侨绻麕舻奶摂M機根本就沒有DNS地址,只要通過一個手機號就可以找到另外一個計算機。這樣的做法是沒有辦法攻擊網(wǎng)絡(luò)的。
在這臺虛擬機的基礎(chǔ)上,我們是有創(chuàng)新的余地的。第三維空間,就是大家認(rèn)為現(xiàn)在的S3、云盤,或者個人云、公共云,不管怎么樣,存儲被拉到了另一維空間上去了。本地的硬盤變成一個緩存。程序能跑起來。曾經(jīng)我們上學(xué)的時候,我上大學(xué)的時候還沒有DOC。后來我去美國才有DOC。我們現(xiàn)在有一個cloud,比如說叫微軟的SKYDRIVE,或者蘋果的icloud,現(xiàn)在這個icloud我們都放的DATA。這個云盤里能放程序嗎?這個云盤里如果放程序能跑嗎?我們能不能做出一個cloud。這一維空間,多個CPU、多個虛擬的空間,這三個空間都是安卓現(xiàn)在還起碼比較弱的地方。在這三個空間上如果補足,上面還跑安卓。不限定一個FREMOR,還可以訪問其他的FREMOR。
這是云盤的空間。這是講的一個家庭云上多PCU,或者物聯(lián)網(wǎng)上多PCU的空間。這是講的云盤里的空間。沒有劃出來是多虛擬機的空間。這張圖是我從微軟的網(wǎng)站抄的,這就是win8的架構(gòu)圖。大家今天如果看到win8。就會知道它有兩個桌面,一個是傳統(tǒng)的Desktop,一個是Motro style?,F(xiàn)在它把一個內(nèi)核又可以做手機,又可以做服務(wù),曾經(jīng)是好多個內(nèi)核,所以微軟雖然是游戲機內(nèi)核。它統(tǒng)一完了以后再上面跑了一個雙簧蛋,在上面跑了兩個操作系統(tǒng)。如果上面跑了兩個所謂的中間件或者什么東西呢?它實際上是兩個。這一部分就是傳達微軟器C++,他對兼容做的相對完美。這一唯綠的,他現(xiàn)在叫windows win3 2。所以winRT現(xiàn)在只做兩件事,它的平板、它的變成的CRT叫winRT。對軟件支持是這兒,或者是這兒負(fù)責(zé)的。
這個風(fēng)格是windows變成還是新的RT編程,這兩個編程是截然不同。我們今天很多人講OS都是講的在這個層面的技術(shù)的改良。在這個地方API從這兒到這兒,基本上就是把那個全廢了。這個RT有什么用?就是為了在那個三維空間上進行拓展。然后能讓三類語言互通互聯(lián)。在這個時候如果我們用技術(shù)語言說,這兒就應(yīng)該叫java,java有一個東西叫CNI,通過人寫,壓站調(diào)到C代碼。在這個時候,已經(jīng)沒有JNI了,它可以直接從.net調(diào)到C代碼,是不通過CNI的,這句話是非常重要的。JAVA從發(fā)明到今天,第一句口號就是,run >