|
本帖最后由 一朝成名 于 2009-9-28 23:38 編輯
以下推薦的幾篇文章個(gè)人感覺(jué)非常不錯。對于行業(yè)整體的把握以及行業(yè)發(fā)展動(dòng)向的分析很有深度。
作者介紹:陳渝,清華大學(xué)老師,他也是skyEye的開(kāi)發(fā)者,他的書(shū)《源代碼開(kāi)放的嵌入式軟件分析與實(shí)踐--基于SkyEye和ARM開(kāi)發(fā)平臺》也不錯,值得看看。
紅色的標注是我寫(xiě)的一些簡(jiǎn)單的見(jiàn)解
很高興有機會(huì )跟大家一起交流一下關(guān)于嵌入式領(lǐng)域的開(kāi)源軟件,先自我介紹一下,我叫陳渝,目前在清華大學(xué)計算機系當老師(博士后呵呵,人家不愿意說(shuō),還是我來(lái)說(shuō)吧),主要是從事操作系統和嵌入式系統的一些教學(xué)和科研工作。其實(shí)當時(shí)何老師給我這個(gè)題目時(shí),我覺(jué)得確實(shí)有點(diǎn)大,雖然有兩個(gè)限制,限制在嵌入式領(lǐng)域,限制在開(kāi)源,即使加上這些限制,其實(shí)范圍也是相當大。所以我按照目前我了解的一些情況給大家做個(gè)介紹。不能包含到題目的方方面面,只能是個(gè)人的一些粗淺的認識。開(kāi)源軟件確實(shí)是從我開(kāi)始接觸,就是90年代中初期,到現在也有10多年了。但是也很難說(shuō)對開(kāi)源軟件了解到很透,因為確實(shí)發(fā)展日新月異,這是我了解到的情況。首先我跟大家介紹一下當前在嵌入式領(lǐng)域內的一些應用,這個(gè)可以看出來(lái)我們軟件有些什么樣的特點(diǎn);接下來(lái)會(huì )就嵌入式系統中的軟件架構層次上介紹一下各層次在面向嵌入式相關(guān)的一些軟件;最后還有時(shí)間的話(huà),給大家介紹一下目前在嵌入式領(lǐng)域做的教學(xué)科研工作,和大家分享一下。
前面已經(jīng)有很多老師提到嵌入式系統的應用領(lǐng)域,比如說(shuō)在國防、工控、消費電子等等,其實(shí)還有一個(gè)很重要的趨勢是跟網(wǎng)絡(luò )結合,這些事我們認為當前嵌入式領(lǐng)域最主要的應用,但是由于領(lǐng)域的差異性很大,也導致了一些軟件的區別是很大的。在早期,在軍控、航空航天里面,嵌入式系統是相當的廣泛,舉個(gè)簡(jiǎn)單的例子,在我們國內,像航空航天,我們跟航空航天的一些機構有些聯(lián)系,我們知道在他們的系統里面,無(wú)論是登月,還是載人飛船,還有自己的大飛機,嵌入式軟件的身影是無(wú)處不在的;另一方面呢,在我們的日常生活中,比如現在比較流行的電子書(shū),這其實(shí)也是嵌入新型的軟件在里面,還有在家庭方面,我們早期的家庭方面,可能沒(méi)有關(guān)注到太多嵌入式軟件的身影,但是現在的一些PSP、手機里面,還包括攝像機等等,軟件的作用越來(lái)越大,特別是跟Internet互聯(lián),這一塊已經(jīng)成為現在嵌入式系統里面重點(diǎn)關(guān)注的、軟件需要重點(diǎn)去支持的一個(gè)方向。說(shuō)到視頻服務(wù)器,我跟大家簡(jiǎn)單介紹一下,不知道大家有沒(méi)有體會(huì ),現在出門(mén)基本可以看到到處都有攝像頭,攝像頭就是通過(guò)類(lèi)似這樣一個(gè)架構來(lái)把攝像頭所看到的場(chǎng)景給記錄下來(lái),便于事后進(jìn)行分析,可以這樣說(shuō)目前北京攝像頭的比例在世界上都可以排到前三位的。那么怎么能夠更好地支持一些視頻的處理?這一塊也是嵌入式系統比較關(guān)注的一個(gè)領(lǐng)域。家庭這一塊,這個(gè)其實(shí)是目前在研究方面也是做的比較多的,整個(gè)家庭場(chǎng)景里面,實(shí)現一個(gè)設備級的互聯(lián)互通,剛才周立功老師也講到他們企業(yè)中設備的互聯(lián)互通,他的那個(gè)場(chǎng)景可能更多在工控里面,在智能家居這個(gè)領(lǐng)域,目前也是競爭相當激烈,也有很多的研究成果,后面會(huì )給大家介紹一下。這個(gè)嵌入式Internet代表了這幾年會(huì )比較大的發(fā)展趨勢,怎么能夠把嵌入式軟件、嵌入式應用和Internet連接起來(lái),跟后端的兩個(gè)所謂余計算等等結合起來(lái),更方便更有效地服務(wù),這個(gè)其實(shí)是我們前端和后端越來(lái)越緊密地連在一起了。這個(gè)不僅是嵌入式軟件的問(wèn)題,還要考慮嵌入式軟件和后端服務(wù)器軟件之間更有效的互聯(lián)互通,我們上了3G以后,這一塊的重要性也越來(lái)越突顯出來(lái)了。這個(gè)數字機頂盒,我就跳過(guò)去了,其實(shí)前幾年已經(jīng)有的概念,目前來(lái)說(shuō)發(fā)展的還不是特別快。汽車(chē)電子這一塊是個(gè)很重要的問(wèn)題,大家都知道,我們開(kāi)這個(gè)會(huì )很多都提到“核高基”,其實(shí)“核高基”在嵌入式領(lǐng)域重點(diǎn)支持兩個(gè),一個(gè)就是汽車(chē)電子,一個(gè)是移動(dòng)網(wǎng)絡(luò )。在這兩個(gè)里面怎么能夠發(fā)揮軟件的作用,使得它的功能可以更大化,更充分體現出來(lái),這一塊其實(shí)國家也是相當重視,我們的企業(yè)在這方面也是做了很多工作。智能玩具和機器人,這個(gè)我給大家簡(jiǎn)單介紹一下為什么這個(gè)也很重要,不知道大家關(guān)注沒(méi)有,微軟目前專(zhuān)門(mén)面向機器人領(lǐng)域提出了它的所謂的集成開(kāi)發(fā)環(huán)境,希望把將來(lái)robot的發(fā)展方向能夠控制住,通過(guò)它的IDE、編程語(yǔ)言,通過(guò)它提供的一系列庫等等,這個(gè)領(lǐng)域現在看不出很大的前景,但其實(shí),在國外這個(gè)方面已經(jīng)有很熱的研究了。包括我們每年在學(xué)校都會(huì )組織一些國內國外都有機器人比賽,機器人足球賽等等,這都是嵌入式軟件在智能機器人領(lǐng)域里的發(fā)展。工控這個(gè)領(lǐng)域,其實(shí)大家很多企業(yè)都涉及到這一塊,我就不做詳細講解了。但是有一個(gè)需要注意的地方,現在的工控領(lǐng)域已經(jīng)不是一個(gè)單獨的體系,它需要跟Internet互聯(lián),這一點(diǎn)像微軟雖然它不做開(kāi)源,但是它還是支持一些開(kāi)放的標準,甚至包括開(kāi)放一些源代碼,我覺(jué)得也不能一提到開(kāi)源,就把微軟作為一個(gè)靶子來(lái)打。在學(xué)校來(lái)講,對微軟還算是一個(gè)中立的立場(chǎng)上來(lái)說(shuō)話(huà)的。微軟還和其他一些企業(yè)做DPWS協(xié)議,就是希望能在工控領(lǐng)域使得工控設備能夠更有效地進(jìn)行互聯(lián)互通,這個(gè)就類(lèi)似于早期的UPnP,UPnP協(xié)議可能更側重于家電,嵌入式設備等,但目前還希望能推到設備上去。軍事偵察這個(gè)領(lǐng)域,大家在一些場(chǎng)合都看到了,在我們國家,無(wú)論是在航空航天,其實(shí)周立功老師他們更有經(jīng)驗,在我們國內已經(jīng)承擔了一些項目,還有朱明遠老師他在航空領(lǐng)域、飛機領(lǐng)域也有他們軟件產(chǎn)品的體現?赡苡捎趪鴥劝踩虮C艿囊,他們公布的信息不多。這是一個(gè)日本做的機器人,是個(gè)例子,還有火星探路者等等。
前面給大家簡(jiǎn)單介紹了當前嵌入式系統應用的領(lǐng)域,我們可以看出有幾個(gè)特點(diǎn),嵌入式應用場(chǎng)景是千差萬(wàn)別的,但是也確實(shí)朝著(zhù)互聯(lián)互通Internet的這么一個(gè)方向發(fā)展,基于這個(gè)趨勢,我們來(lái)看看現在的一些開(kāi)源軟件。這里面資源確實(shí)有限,我也很難進(jìn)行展開(kāi)介紹,這是把我了解到的部分內容和大家做個(gè)簡(jiǎn)單的交流。從這個(gè)軟件架構上來(lái)說(shuō),它確實(shí)從硬件上涉及到一系列的軟件,包括協(xié)議等等。在硬件這一層通過(guò)協(xié)議和網(wǎng)絡(luò )這一層的互聯(lián)互通,除了TCP/IP協(xié)議外,還有一些使用比較廣泛的協(xié)議,比如ZigBee,Bluetooth等等,這些協(xié)議都有相應的軟件協(xié)議在支持,有了最底層的協(xié)議棧支持后,上層的這些軟件就可以互聯(lián)互通了。在這之上,會(huì )有一系列的操作系統和更高層的協(xié)議,操作系統也是涉及到開(kāi)源和嵌入式領(lǐng)域內的,有Ecos、RTEMS等,協(xié)議有UPnP、Jini、DPWS、IGRS等,那么重點(diǎn)提一下IGRS是我們國內設備級互聯(lián)互通的協(xié)議標準,目前它的基礎協(xié)議層已經(jīng)成為國際標準,目前在進(jìn)行推廣,其他的如UPnP、Jini、DPWS是國外一些大的企業(yè)自己的標準。再往上是middleware這一層,middleware本身是個(gè)比較廣義的軟件范疇,這里面會(huì )提到CORBA、OSGi、DLNA等等,它主要面向工業(yè)界和消費電子界服務(wù)層或軟件層的互聯(lián)互通。再往上是一些middlewareservice,包括GUI,還有Database、IDE等等,在底層這些支撐軟件的支持上才會(huì )產(chǎn)生各種各樣的應用。那么現在的應用,我覺(jué)得主要有兩個(gè)趨勢,一個(gè)是跟那個(gè)所謂的被控系統綁定,第二個(gè)是跟Internet綁定,這兩個(gè)趨勢會(huì )導致一些新的廠(chǎng)商、新的應用、新的技術(shù)。
我再簡(jiǎn)單介紹一下相關(guān)的OS,由于是開(kāi)源軟件,那么在嵌入式操作系統里面,開(kāi)源軟件也是相當多的。但是做的能夠給產(chǎn)業(yè)去用的開(kāi)源操作系統并不是很多,剛才邵老師已經(jīng)介紹了有μC/OS等,但是要注意的是開(kāi)放源代碼并不就是開(kāi)源,它還和license相關(guān),剛才邵老師也介紹了有關(guān)license的情況,如果用于商業(yè)里面,也是需要付費的。(呵呵其中的意思大家體會(huì )一下)但是這里的一些OS即使用于商業(yè)里面,也可能不需要付費的。這個(gè)層面的OS也有一些,也達到了一定的數量。第一個(gè)就是ECos,它一開(kāi)始是自己獨立的一個(gè)小公司,然后被RedHat給購買(mǎi)了,購買(mǎi)后,嵌入式這一塊由于推廣不力,Ecos又自己出去了成立一個(gè)新的公司,目前也還在發(fā)展,但總的來(lái)說(shuō),發(fā)展的力度并不是特別強(感覺(jué)最近發(fā)展的還可以吧,09年4月發(fā)布的3.0版本,我最近項目拿來(lái)開(kāi)發(fā)的感覺(jué)還可以,抽時(shí)間我獨體的介紹一下)。第二個(gè)是RTEMS,RTEMS主要是應用在航空航天領(lǐng)域,這就有點(diǎn)類(lèi)似于Vxworks,但是它是一個(gè)不需要繳納版稅的嵌入式操作系統,是由美國的一個(gè)公司在維護。根據我的理解,當前在航天領(lǐng)域,有些系統是用RTEMS在做一些應用,我們跟他們有些技術(shù)上的交流與合作。開(kāi)源的特點(diǎn)是很多人來(lái)維護,但是缺乏一個(gè)很強的商業(yè)支持,從商業(yè)上的支持維護來(lái)看,維護的熱情和做操作系統商業(yè)還是有點(diǎn)差距的(性能非常不錯的RT os,性能不錯跟Vxworks比過(guò)猶不及,應該關(guān)注一下)。這兩個(gè)操作系統,我理解是目前開(kāi)源、無(wú)版稅、有一定市場(chǎng)潛力的操作系統。至于Linux大家已經(jīng)講了很多了,我不會(huì )展開(kāi)去講,但是Linux它的發(fā)展點(diǎn)是不一樣的,Linux它本來(lái)的目標是面向服務(wù)器和桌面的操作系統,但是它會(huì )有很多分支,特別是在RT-Linux會(huì )對實(shí)時(shí)有很多支持,目前它的RT能力,根據我了解到的一些資料,因為L(cháng)inux還有一個(gè)很大的特點(diǎn)是它支持VM,虛存管理,它和windriver有虛存管理的Vxworks的性能相比,差別并不是很大,這是RT-Linux最新的發(fā)展;第二種Linux發(fā)展就是面向沒(méi)有虛存管理的CPU,更低端的CPU,有一個(gè)分支叫μCLinux,這個(gè)也在很多的嵌入式設備里面有很多體現,大家可能看不到,因為操作系統在最底下,比如說(shuō)我們現在看到市場(chǎng)上的攝像機,就是嵌入式μCLinux,還有一些照相機等等。Linux應該是很大的一類(lèi),由于大家了解比較多,就給大家簡(jiǎn)單介紹到這。另外還要介紹一些OS,這些OS是用在更不常用的領(lǐng)域,我們稱(chēng)之為無(wú)限傳感器網(wǎng)絡(luò ),可以看到無(wú)限傳感器網(wǎng)絡(luò )這個(gè)小片子,它和一個(gè)硬幣的大小差不多,日本有的企業(yè)做出來(lái)的甚至比硬幣還要小很多。這些小一點(diǎn)的嵌入式設備,它通過(guò)ZigBee可以實(shí)現一定程度的互聯(lián)互通,在這個(gè)小設備上,也有一些OS在應用。有美國做的TinyOS,還有歐洲做的Contiki操作系統,它支持了小型或微小型深度嵌入式設備的互聯(lián)互通,這一塊目前在研究階段還是多一些,但是我們認為在將來(lái)會(huì )有一個(gè)好的應用前景,它意味著(zhù)我們的嵌入式設備真是無(wú)處不在的且互聯(lián)互通。
前面講的都是面向特定領(lǐng)域的OS,比如工控、航空航天領(lǐng)域的OS,還有一類(lèi)是面向我們消費電子類(lèi)的OS,我這里做了個(gè)總結,差不多都是基于Linux,可以稱(chēng)之為L(cháng)inux系統的一個(gè)解決方案,當前有兩大類(lèi),國際上有大的公司在后面做著(zhù)推動(dòng),第一個(gè)就是Intel在推動(dòng)的叫做Moblin,它聯(lián)合一些軟件企業(yè),一直想將來(lái)在以它的嵌入式CPU為核心的嵌入式設備上提供一整套軟件的解決方案。這個(gè)Moblin架構用到了QT的3D顯示,還有將來(lái)的3G網(wǎng)等等,wifi,與互聯(lián)網(wǎng)會(huì )有很好的溝通,形成一整套的架構體系,那么這個(gè)體系由Intel還有幾個(gè)Linux廠(chǎng)商一起來(lái)推進(jìn),這是一個(gè)值得關(guān)注的一點(diǎn),我記得Moblin也是Intel收購windriver后重點(diǎn)要做的事情。另一個(gè)是大家可能聽(tīng)的更多的Google推動(dòng)的Android操作系統,其實(shí)也是一個(gè)解決方案,底層也是Linux,也提出它自己類(lèi)似Java的一套系統,可以來(lái)支持它最主要的目標是手機,或者說(shuō)是移動(dòng)終端,希望通過(guò)控制終端的方式使得終端能夠更好地采用它后端的這些服務(wù),剛才提到一個(gè)觀(guān)點(diǎn),嵌入式終端其實(shí)將來(lái)要通過(guò)后端的服務(wù)來(lái)給人呈現一個(gè)更好的交互的手段,終端畢竟能力有限,只要有了高速的網(wǎng)絡(luò ),后端的服務(wù)就可以很好地呈現在我們前端了。所以說(shuō)這里面也存在一個(gè)將來(lái)的趨勢,可以看出軟件將會(huì )變成一種服務(wù),將來(lái)可能不是賣(mài)軟件,而是賣(mài)服務(wù)。(做底層硬件的可能不喜歡這些話(huà),但是是事實(shí))這一點(diǎn)大家也是有很多體會(huì )了。Google就是一個(gè)典型的例子,它沒(méi)有賣(mài)軟件,它賣(mài)的全是服務(wù)。這個(gè)我就簡(jiǎn)單介紹看下它的類(lèi)和Linux2.6內核,這是它的運行環(huán)境,包括很豐富的交互處理,上層還用了很好的開(kāi)發(fā)環(huán)境,這里面做的系統都是開(kāi)放源代碼的,從底層到上層都是開(kāi)放源代碼的。
在middleware這一層,除了早期的CORBA,還有個(gè)很重要的趨勢,OSGi成立1999年,但是由于OSGi它推Felix集成開(kāi)發(fā)環(huán)境,引起了大家的注意,當前主流的中間件都是基于OSGi開(kāi)發(fā)的,也實(shí)現了一些開(kāi)源的事情,我們理解就是它主要基于Java的更好的可以實(shí)現組件的一個(gè)動(dòng)態(tài)替換的一個(gè)新型系統。GUI這里面,我相信魏老師會(huì )給大家講的,我就不班門(mén)弄斧了。Database這一塊,也有個(gè)趨勢,就是早前的面向關(guān)系數據庫外,面向對象的數據庫也越來(lái)越引起大家的重視了,尤其在嵌入式領(lǐng)域。DB4o就是一個(gè)很不錯的面向對象的數據庫,當前在我們的嵌入式領(lǐng)域相當廣泛。IDE除了Eclipse,NetBean、Kdevelop外,還有一些面向C和C下部MonoDevelop等一系列開(kāi)源集成開(kāi)發(fā)環(huán)境,大家用的最多的,或者基于它進(jìn)行二次開(kāi)發(fā)最多的還是Eclipse,這個(gè)我想大家也都有體會(huì )。這是IBM在維護的開(kāi)源的可擴展的IDE。
最后再花點(diǎn)時(shí)間簡(jiǎn)單介紹一下我們正在做的工作,其實(shí)我們做了很多教學(xué)和研究工作,都離不開(kāi)我們的開(kāi)源軟件,我們看一下。第一個(gè)就是我們做的嵌入式開(kāi)發(fā)和教學(xué)的模擬環(huán)境,叫做Skyeye,這是一個(gè)軟件,它主要的目的是能夠模擬一個(gè)嵌入式的開(kāi)發(fā)板,這樣可以使得我們軟件在這個(gè)硬件上進(jìn)行調試、運行、開(kāi)發(fā),這是目前它支持一系列的CPU和一些外設,目前已應用于教學(xué)和部分科研中,有相應的網(wǎng)址大家可以訪(fǎng)問(wèn)。目前也是我的學(xué)生在做進(jìn)一步的開(kāi)發(fā)和維護。第二個(gè)OS,OS算我的本行,其實(shí)有個(gè)很有意思的特點(diǎn),也和大家介紹一下,我覺(jué)得我們國家OS的教學(xué)有比較大的問(wèn)題。很大的問(wèn)題在于老師的教學(xué),我曾經(jīng)參加過(guò)教育部的一個(gè)會(huì ),操作系統教學(xué)的一個(gè)會(huì ),來(lái)的老師都是教操作系統的,但是只有10%的老師會(huì )去做操作系統的研究,這確實(shí)是個(gè)問(wèn)題,如果不做研究,怎么能夠更好地去教學(xué)?如果只照著(zhù)書(shū)本去教學(xué),其實(shí)是很有問(wèn)題的。而目前我們國內的操作系統的教學(xué),還是以書(shū)本為主,就是以原理為主。但是我們看國外,無(wú)論是MIT還是斯坦福,他們都是面向實(shí)踐的操作系統教學(xué),這一塊其實(shí)邵老師應該也有相應的體會(huì ),我們現在目前就是基于MIT的freecode的操作系統,來(lái)做進(jìn)一步的推修、擴展,學(xué)生花很大的時(shí)間和精力放在實(shí)踐這個(gè)環(huán)節,通過(guò)它更好地了解操作系統,目前我們做了擴展,在不到7000行代碼里面,支持x86的SMP和多核架構,可以把Linux的,Linux很重要很復雜,我們把它的調度器的框架、算法、內存管理都移植到我們的操作系統里面,代碼不超過(guò)1萬(wàn)行,就可以讓學(xué)生在這上面做相應的實(shí)驗和了解。當然即使清華的學(xué)生對它依然覺(jué)得有難度,我希望通過(guò)我們進(jìn)一步的擴展可以使我們的學(xué)生可以更好地去了解OS真正的怎么回事。第三個(gè)是偏科研,剛才我已經(jīng)提到了,要支持互聯(lián)網(wǎng),現在有個(gè)很重要的觀(guān)點(diǎn),要把多個(gè)嵌入式設備隱藏在看不到的地方,通過(guò)它們的互聯(lián)互通互操作來(lái)使得可以給人提供更有效的服務(wù),那么目前我們在做的一些無(wú)論是863還是“核高基”的一些項目,都是與之相關(guān)的。當前有個(gè)概念叫普適合計算,在清華也有專(zhuān)門(mén)的普適計算研究中心來(lái)做相應的工作,目前申請的項目就是希望能夠通過(guò)支持底層設備級的互聯(lián)互通協(xié)議甚至做進(jìn)一步的擴展,包括和國內其他單位合作使得將來(lái)的設備能夠更有效的互聯(lián)互通,然后動(dòng)態(tài)地生成一些服務(wù),給提供一個(gè)更好的支持,使我們的生活更加方便和舒適。這是我們目前在做的一些工作。
最后簡(jiǎn)單總結一下,就是現在我們國家確實(shí)在進(jìn)一步推廣支持開(kāi)源軟件,學(xué)校也在進(jìn)一步推廣開(kāi)源軟件的教學(xué),產(chǎn)業(yè)可以通過(guò)開(kāi)源軟件來(lái)降低成本,增加效益,我們理解是開(kāi)源軟件在嵌入式領(lǐng)域將會(huì )有更大的發(fā)展。謝謝大家。 |
|