国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 手機知識 > 正文

深度剖析E680G開發(fā)三.移植OPIE操作系統(tǒng)(上)

2024-06-10 11:28:12
字體:
供稿:網(wǎng)友

一、前言
   
    凡事我圖寫的文章,往往比較內(nèi)容縱深,范圍卻很窄,注重實際操作。原因
很簡單,水平有限,還達不到理論的層次,只是對片面的技術(shù)作些陳述,至于擴
充,豐富就是別人的事了。移植操作系統(tǒng)看似很玄乎的東西,其實也就是一層窗
戶紙。
    事實上每每剛聽聞一件事,覺得很神秘,實實在在去接觸一點,又覺得簡單
無比,然再深入的話,卻又會覺得內(nèi)容是深不可測。現(xiàn)實往往是如此滑稽,不過
也只有在這種不斷的循環(huán)中,人才會進步。
    讀完這篇文章,你會發(fā)現(xiàn)沒有談及技術(shù)內(nèi)容,全是在說“廢話”。而我一向認(rèn)
為說“廢話”這很有必要。

二、重要提示

    文章難免有疏漏,會在下面地址不斷更新:
    全系列文章地址:http://blog.csdn.net/liwei_cmg
    文章相關(guān)的重要資源的下載地址:http://play.younet.com/view.php?tid=18578

三、認(rèn)識操作系統(tǒng)

    操作系統(tǒng)的分類方式是多種多樣。如按功能特征分為批處理,分時和實時操作
系統(tǒng)。按應(yīng)用范圍分個人,網(wǎng)絡(luò),分步式和嵌入式操作系統(tǒng)。
    所有分類都不是絕對的,按我個人理解,偏向于把操作系統(tǒng)作如下劃分:
   
    ◆普通PC機操作系統(tǒng)
    這是我們接觸最頻繁的一類了,從早期的MS-DOS到Windows 95,Windows 98,
Windows xp以及未來的Windows Vista等,全是微軟家族的產(chǎn)品。除此以外linux
家族的RedHat Linux,Turbo Linux等,蘋果的Mac OS X也屬于這個范疇。
  
    ◆服務(wù)器操作系統(tǒng)
    包括各類的大型機,小型機操作系統(tǒng),另外網(wǎng)絡(luò)操作系統(tǒng)也屬于這一類。
如基于UNIX的IBM AIX、AS系列,HP UNIX,Sun Solaris等,基于Linux的IBM
System p5系列等。
   
    ◆嵌入式操作系統(tǒng)(Embedded Operating System)
    終于說到我們的E680g了。
    嵌入式操作系統(tǒng)可簡單劃分為專用和普通兩種。專用嵌入式操作系統(tǒng)(如大名
鼎鼎的VxWorks)應(yīng)用范圍可謂專業(yè)。如汽車飛機,工業(yè)控制,國際空間站,火星
探險等等,通用就常見的多了,從各家手機的廣泛采用的Symbian、種類繁多的
嵌入式Linux以及逐漸沒落的Palm,和氣勢逐漸壯大的Windows CE家族,都是屬
于這個分類。
    我們的E680g采用的就是嵌入式Linux家族為首的MontaVista Linux操作系統(tǒng)。
   
四、Linux圖形化歷程
    注:此段文章綜合了眾多資料,主要引用個人電腦的文章
   
    談起OPIE,就不能不談Qt,然而要對Qt有個來龍去脈的認(rèn)識,需要從Linux
圖形化說起。讓我們回顧下Linux圖形化界面發(fā)展的歷史。

    Linux實際上是以UNIX為模板的,它繼承了UNIX內(nèi)核設(shè)計精簡、高度健壯的特
點,無論系統(tǒng)結(jié)構(gòu)還是操作方式也都與UNIX無異。Linux本身也是沒有圖形界面,
只是一個基于命令行的操作系統(tǒng)。
    早在Linux之前,Unix的圖形界面一向是以麻省理工學(xué)院(MIT)的X Window
系統(tǒng)為標(biāo)準(zhǔn)。不過,X Window(請注意不是X Windows)并不是一個直接的圖形操
作環(huán)境,而是作為圖形環(huán)境與UNIX系統(tǒng)內(nèi)核溝通的中間橋梁,任何廠商都可以在
X Window基礎(chǔ)上開發(fā)出不同的GUI圖形環(huán)境。MIT目的只在于為UNIX系統(tǒng)設(shè)計一套
簡單的圖形框架,以使UNIX工作站的屏幕上可顯示更多的命令。許多UNIX廠商在
X Window原型上開發(fā)適合自己的UNIX GUI視窗環(huán)境,其中比較著名的有SUN與AT&T
聯(lián)手開發(fā)的“Open Look”、IBM/HP主導(dǎo)下的OSF(Open Software Foundation,開
放軟件基金會)開發(fā)出的“Motif”。經(jīng)過多年競爭,Motif最終勝出,成為普遍使
用的界面庫。不過,Motif只是一個帶有窗口管理器(Window-Manager)的圖形界
面庫(Widget-Library),而非一個真正意義上的GUI界面。經(jīng)過協(xié)商之后IBM/HP
與SUN決定將Motif與Open Look整合,并在此基礎(chǔ)上開發(fā)出一個名為“CDE(Common
Desktop Environment) ”的GUI作為UNIX的標(biāo)準(zhǔn)圖形界面。
    遺憾的是,Motif/CDE和UNIX系統(tǒng)的價格都非常昂貴,而當(dāng)時微軟的Windows發(fā)
展速度驚人并率先在桌面市場占據(jù)壟斷地位,CDE則一直停留在UNIX領(lǐng)域提供給root
系統(tǒng)管理員使用,直到今天情況依然如此。
    上個世紀(jì)九十年代中期,以開源模式推進的Linux在開發(fā)者中已經(jīng)擁有廣泛的
影響力。盡管X Window已經(jīng)非常成熟,也有不少基于X Window的圖形界面程序,
但它們不是未具備完整的圖形操作功能就是價格高昂(如CDE),根本無法用于
Linux系統(tǒng)中。如果Linux要獲得真正意義上的突破,一套完全免費、功能完善的
GUI就非常必要。
    在這時,挪威TrollTech一批程序員抓住機遇推出了Qt,一個跨平臺的C++圖
形用戶界面庫。基本上,Qt同X Window上的 Motif、Open Look、GTK等圖形界面
庫和Windows平臺上的 MFC、OWL、VCL、ATL是同類型的東西,但Qt具有優(yōu)良的跨
平臺特性(支持Windows、Linux、各種UNIX、OS390和QNX等)、面向?qū)ο髾C制以
及豐富的API,同時也可支持2D/3D渲染和OpenGL API。
    1996年10月,由開發(fā)圖形排版工具Lyx的德國人Matthias Ettrich發(fā)起了KDE
(K Desktop Environment)計劃。在當(dāng)時的同類圖形用戶界面庫產(chǎn)品中,Qt的功能
最為強大,Matthias Ettrich在發(fā)起KDE項目時很自然選擇了Qt作為開發(fā)基礎(chǔ)。
    KDE本身采用GPL(GNU通用公共許可證)宣言的,但是KDE底層的基礎(chǔ)卻是Qt。
    Qt是一個不遵循GPL的商業(yè)軟件,一大批自由程序員對KDE項目的決定深為不
滿,它們認(rèn)為利用非自由軟件開發(fā)違背了GPL的精神,于是GNU擁護者,一批人去
開發(fā)Harmonny(Harmony是一個兼容替代庫,設(shè)計用來在沒有Qt的情況下也有可能
運行KDE軟件。),試圖重寫一套兼容于Qt的替代品,另一一批由一個墨西哥程序
員Miguel De Icaza組織下重新開發(fā)了一套稱為GNOME(GNU Network Object
Enviroment)來替代KDE。
    Linux業(yè)界老大RedHat不喜歡KDE/Qt的版權(quán),甚至專門派出了幾個全職程序員
來加入GNOME的開發(fā)工作,于是一場與Motif和Openlook相似的圣戰(zhàn)就這么打起來
了。
    Trolltech為了KDE曾數(shù)次修改Qt的版權(quán),從成立KDE Free Qt 基金會到采用
GPL,可謂是費盡心機,但是GNOME采用的GTK從一開始就是完全的GPL,因此在這個
方面GNOME有一定的優(yōu)勢,加上Qt/KDE采用C++,在當(dāng)時并不為很多人熟悉,因此
GNOME吸引了更多的自由軟件開發(fā)者,但是KDE畢竟先走一步,推出的KDE1.1.2也十
分穩(wěn)定,而當(dāng)時急忙中推出的GNOME1.0的系統(tǒng)穩(wěn)定性奇差,有人甚至笑稱GNOME1.0
還沒有KDE1.0Alpha穩(wěn)定。
    2000年,可謂是風(fēng)云突變,一個接一個重大的事件先后發(fā)生: 首先是一批從
Apple公司出來的工程師成立了一個Eazel的公司替GNOME設(shè)計界面,然后是一批
GNOME程序員成立了一個Helix Code公司替GNOME提供商業(yè)支持,而大家期待以久的
KDE 2.0也終于發(fā)布了,這也是相當(dāng)龐大的自由軟件,除KDE本身,還包括Koffice
套件和集成開發(fā)環(huán)境Kdevelop等等一大批軟件,其主力軟件Kounqueror也是第一個
可以同微軟的InternetExploer相抗衡的瀏覽器。


    Sun公司,RedHat公司,Eazel公司,Helix Code等一批公司成立了一個GNOME
基金會,Sun還宣布將把重量級辦公軟件Star office同GNOME集成,Trolltech公司
自然不能坐以待斃,于2000年10月將Qt的free edition變?yōu)镚PL宣言,徹底解決了
KDE的版權(quán)問題,給了GNOME陣營一個有力的回?fù)簟?BR>    Qt實際上就擁有雙重授權(quán):如果對應(yīng)的Linux發(fā)行版采用免費非商業(yè)性的方式
進行發(fā)放,那么使用KDE無須向TrollTech交納授權(quán)費用;但如果Linux發(fā)行版為盈
利性的商業(yè)軟件,那么使用KDE時必須獲得授權(quán)。由于TrollTech是商業(yè)公司且一直
主導(dǎo)著KDE的方向,雙許可方式不失為解決開源與盈利矛盾的好辦法。TrollTech宣
稱,雙許可制度徹底解決了KDE在GPL公約方面的問題,但RedHat并不喜歡,RedHat
不斷對GNOME項目提供支持,希望它能夠盡快走向成熟,除RedHat之外的其他Linux
廠商暫時都站在KDE這一邊,但他們同時也在發(fā)行版中捆綁了GNOME桌面。
    在2001-2002年,火熱一時的Linux運動開始陷入低潮期,幾乎所有的廠商都發(fā)
現(xiàn)桌面Linux版本不可能盈利,而易用性的不足也讓業(yè)界不看好Linux進入桌面的前
途。但在服務(wù)器市場,Linux發(fā)展勢頭非常迅猛,直接對UNIX和Windows Server造
成威脅。不過,秉承自由軟件理念的開發(fā)者們并不理會外界的論調(diào),他們一直將
Linux桌面化作為目標(biāo),GNOME項目和KDE項目都在這期間獲得完善發(fā)展。
    進入2004年后,KDE與GNOME依然保持快速發(fā)展。商業(yè)支持方面,RedHat還是
GNOME的鐵桿支持者,IBM、SUN、Novell、HP等重量級企業(yè)也都選擇GNOME,而KDE的
主要支持者暫時為SuSE、Mandrake以及中科紅旗、共創(chuàng)開源在內(nèi)的國內(nèi)發(fā)行商。
    2005年,厚積薄發(fā)的GNOME開始全面反超,3月份的2.10、9月份的2.12讓GNOME
獲得近乎脫胎換骨的變化,加之OpenOffice.org 2.0、Firefox 1.5等重磅軟件的
出臺讓GNOME如虎添翼;KDE方面則分別在3月和11月推出3.4和3.5,其中KDE 3.5也
逼近完美境地,我們認(rèn)為它的水平與GNOME 2.12不相伯仲。但KDE在商業(yè)支持方面
每況愈下,Novell在11月宣布旗下所有的商業(yè)性發(fā)行版將使用GNOME作為默認(rèn)桌面
(仍會對KDE Libraries提供支持),SuSE Linux桌面版則會對KDE與GNOME提供同
等支持。
    到這里,我們發(fā)現(xiàn)一個頗富戲劇性的結(jié)局:致力于商業(yè)化的KDE反而失去了重
量級商業(yè)企業(yè)的支持。其實道理非常簡單—沒有哪一家重量級企業(yè)喜歡受制于人,
也許KDE的Qt不需要很多授權(quán)費,但誰知道TrollTech公司以后會不會漫天要價?
既然有免費的GNOME可以選擇,那為什么不呢?
    雖然在商業(yè)方面存在競爭,GNOME與KDE兩大陣營的開發(fā)者關(guān)系并沒有變得更糟,
相反他們都意識到支持對方的重要性。如果KDE和GNOME無法實現(xiàn)應(yīng)用程序的共享,
那不僅是巨大的資源浪費,而且將導(dǎo)致Linux出現(xiàn)根本上的分裂。事實上,無論是
GNOME的開發(fā)者還是KDE的開發(fā)者,他們都有著共同的目標(biāo),就是為Linux開發(fā)最好的
圖形環(huán)境,只是因為理念之差而分屬不同的陣營。KDE與GNOME的商業(yè)競爭對開發(fā)者
們其實沒有任何利益影響(只有TrollTech會受影響),基于共同的目的,KDE與
GNOME陣營大約從2003年開始逐漸相互支持對方的程序—只要你在KDE環(huán)境中安裝GTK
庫,便可以運行GNOME的程序,反之亦然。經(jīng)過兩年多的努力,KDE和GNOME都已經(jīng)
實現(xiàn)高度的互操作性,兩大平臺的程序都是完全共享的。
    2006年,GNOME與KDE都站在一個全新的起點,獲得商業(yè)公司和更多自由程序員
支持的GNOME躊躇滿志,將超越的目光放在Mac OS X系統(tǒng)。也許你認(rèn)為Windows
Vista的半透明和三維界面將Linux遠(yuǎn)遠(yuǎn)拋在后面,那么我們告訴你這是絕對的誤解,
GNOME目前已經(jīng)可以實現(xiàn)類似的效果,Novell在前幾個月就向外界作過詳細(xì)的演示。
當(dāng)前的KDE也可支持相當(dāng)不錯的半透明和陰影特效,技術(shù)上毫不落后于GNOME。現(xiàn)在,
GNOME項目朝向革命性的3.0版本邁進,KDE則致力于開發(fā)同樣有重大技術(shù)變革的4.0,
這兩個成果大概在2007年可進入現(xiàn)實,屆時Linux系統(tǒng)將具備更卓越的可用性。也就
是說,Linux桌面應(yīng)用的全面鋪開指日可待,而除了開發(fā)者和廠商的努力外,如何向
企業(yè)和個人用戶推廣以及提供培訓(xùn)將是廠商要考慮的主要問題,我們今天恰好站在
這樣的一道門檻上。
    全球各地有著共同目標(biāo)的藝術(shù)家通過互聯(lián)網(wǎng)組織到一起,共同為Linux系統(tǒng)
設(shè)計一流的視覺界面、系統(tǒng)圖標(biāo),而所有的自由軟件程序員都有一個共同的目標(biāo),
那就是開發(fā)出一流水準(zhǔn)的軟件提供給大眾使用。這種基于挑戰(zhàn)自我、帶有濃烈精神
色彩的軟件開發(fā)模式成為商業(yè)軟件之外的另外一極。現(xiàn)在,微軟面對的并不是那些
只在業(yè)余時間鼓搗代碼的程序員,而是分布在全球各地、數(shù)量龐大、且擁有一流技
術(shù)水平的開發(fā)者,這些開發(fā)者被有效地組織起來,形成一個個有序的協(xié)作團隊,大
量實力雄厚的商業(yè)公司在背后提供支持。

    寫到這里,我只想說一句,偉大的開源奉獻精神!

五、Qt在嵌入式操作系統(tǒng)的發(fā)展過程

    Qt最初是作為一個跨平臺(Win32、Mac、Unix)的C++GUI庫開發(fā)的。在2000年
TrollTech發(fā)布了Qt的嵌入式版本。到目前分為四個版本:Win32版,適用于Windows
平臺;X11版,適合于使用了X系統(tǒng)的各種Linux和 Unix平臺;Mac版,適合與蘋果
MacOSX;embedded版,適合于具有幀緩沖(frame buffer)的Linux平臺。
    Qt在剛出現(xiàn)的時候,對于Linux和Unix系統(tǒng),只有構(gòu)建于Xlib之上的X11版。但
隨著Linux操作系統(tǒng)在嵌入式領(lǐng)域的應(yīng)用日漸廣泛,Qt推出了嵌入式的版本Qt-embedded
即Qte。由于嵌入式受限的硬件環(huán)境往往難以運行龐大的X服務(wù)器,Qt的嵌入式版跳過
了Xlib和XServer,直接操作幀緩沖,很大的提高了速度,縮減了體積。
    Qtopia最初是sourceforge.net上的一個開源項目,全稱是Qt Palmtop Environment,
是構(gòu)建于Qte之上一個類似桌面系統(tǒng)的應(yīng)用環(huán)境,包括了PDA和手機等掌上系統(tǒng)常見
的功能如電話簿、日程表等。現(xiàn)在Qtopia 已經(jīng)成為了Trolltech的又一個主打產(chǎn)品,
為基于Linux操作系統(tǒng)的PDA和手機提供了一個完整的圖形環(huán)境。
    值得注意的是,Qte和Qtopia之間的關(guān)系。在版本4之前,Qte和Qtopia是不同的
兩套程序,Qte是基礎(chǔ)類庫,Qtopia是構(gòu)建于Qte之上的一系列應(yīng)用程序。但從版本
4開始,Trolltech將Qte并入了Qtopia,并推出了新的Qtopia4。在該版中,原來的
Qte被稱為Qtopia Core,作為嵌入式版本的核心,既可以與Qtopia配合,也可以獨
立使用。原來的Qtopia則被分成幾層,核心的應(yīng)用框架和插件系統(tǒng)被稱為 Qtopia
Platform,上層的應(yīng)用程序則按照不同的目標(biāo)用戶分為不同的包,如Qtopai PDA,
Qtopia Phone等。

六、OPIE(Open Palmtop Integrated Environment)

    OPIE全稱為開放掌上電腦集成環(huán)境。是基于Qtopia,最類似于桌面領(lǐng)域中的KDE,
是為掌上電腦專門設(shè)計的LINUX操作系統(tǒng)。OPIE操作系統(tǒng)完美地支持Motorola的A、E
系統(tǒng)的智能手機使用的硬件設(shè)施,并且兩者有著相同的LINUX內(nèi)核模塊。OPIE操作系
統(tǒng)可以理解為就是一個界面接口程序。

七、寫在最后

    通過這些內(nèi)容我們大體得知,普通PC的Linux操作系統(tǒng)架構(gòu)如下:
    Linux Kernel + XLib + GLib + GNOME  GNOME/GTK
    Linux Kernel + XLib + Qt  + KDE     KDE/Qt

    而在一般采用Qt嵌入式操作系統(tǒng)的架構(gòu)如下:
    Linux Embedded Kernel + Framebuffer + Qte + Qtopia
   
    我們再來看E680g操作系統(tǒng)的架構(gòu):
    MontaVista Linux Kernel + Framebuffer + Qte + ezx圖形庫
    這樣看來,似乎要移植OPIE操作系統(tǒng),只需要重新交叉編譯一下即可。我們將
在下文做一次實際的完整操作。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 织金县| 青龙| 井研县| 平乐县| 霍林郭勒市| 大方县| 高陵县| 岑溪市| 台北县| 郑州市| 南和县| 乌拉特后旗| 图们市| 江北区| 岐山县| 宁化县| 汝州市| 原平市| 屏南县| 都江堰市| 保亭| 新兴县| 四平市| 白银市| 罗田县| 青铜峡市| 饶平县| 湘西| 沙洋县| 丽江市| 武定县| 那曲县| 布拖县| 礼泉县| 修文县| 富锦市| 武义县| 佛教| 汪清县| 鄂托克旗| 滕州市|