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