程序员 wordpress shell Firefox google linux Windows 云计算 Python mysql Ubuntu php apache 开源 微软 nginx Android java centos 编程

《嵌入式 Linux應用程序開發標準教程(第2版)》——第1章 Linux快速入門 1.1 嵌入式Linux基礎

第1章 Linux快速入門

本章目標

嵌入式Linux是以Linux為基礎的操作系統,只有熟練使用Linux系統之後,才能在嵌入式Linux開發領域得心應手。通過本章的學習,讀者能夠掌握如下內容。

能夠獨立安裝Linux操作系統
能夠熟練使用Linux系統的基本命令
認識Linux系統啟動過程
能夠獨立在Linux系統中安裝軟件
能夠獨立設置Linux環境變量
能夠獨立定制Linux服務
1.1 嵌入式Linux基礎

自由開源軟件在嵌入式應用上受到青睞,Linux日益成為主流的嵌入式操作系統之一。隨著MOTOROLA手機A760、IBM智能型手表WatchPad、SharpPDA Zaurus等一款款高性能“智能數碼產品”的出現,以及Motorola、Samsung、MontaVista、Philips、Nokia、IBM、SUN等眾多國際頂級巨頭的加入,嵌入式Linux的隊伍越來越龐大了。目前,國外不少大學、研究機構和知名公司都加入了嵌入式Linux的開發工作,成熟的嵌入式Linux產品不斷湧現。

2004年全球嵌入式Linux市場規模已達9150萬美元,2005年有1.336億美元,2006年有1.653億美元,2007年達到2.011億美元,每年平均增長30%。

究竟是什麽原因讓嵌入式Linux系統發展如此迅速。業界歸納為三大原因:第一,Linux在嵌入式系統所需的實時性、電源管理等核心技術方面不斷發展;第二,國際標準組織(如OSDL、CELF等)持續建立嵌入式Linux相關標準,有效解決版本分歧與兼容性問題;第三,業界主導組織、開發廠商等不斷推出嵌入式Linux相關開發工具、維護系統。

嵌入式Linux以年費訂閱方式為主,與其他的以產品利潤為收入方式的嵌入式系統不同,彈性的捆綁銷售策略,助其成功地逐年提高市場占有率,從2004年的46.8%擴大到2007年的56.4%。

國際有名的嵌入式Linux操作系統提供商MontaVista,收購了PalmSource的愛可信和奇趣科技等,加強了對中國市場的投入,並在整個嵌入式操作系統市場中,占據了重要地位。而嵌入式操作系統的領先廠商,也改變了原來的單一產品路線,開始推出自己的Linux軟件產品,實現“兩條腿走路”。國內的嵌入式軟件廠商也以Linux為突破口,紛紛開發各種基於Linux的操作系統產品。這些嵌入式Linux廠商已經形成了一個不容忽視的群體。

以下就從Linux開始,一層層揭開嵌入式Linux的面紗。

1.1.1 Linux發展概述

簡單地說,Linux是指一套免費使用和自由傳播的類UNIX操作系統。人們通常所說的Linux是Linus Torvalds所寫的Linux操作系統內核。

當時的Linus還是芬蘭赫爾辛基大學的一名學生,他主修的課程中有一門課是操作系統,而且這門課是專門研究程序的設計和執行。最後這門課程提供了一種稱為Minix的初期UNIX系統。Minix是一款僅為教學而設計的操作系統,而且功能有限。因此,和Minix的眾多使用者一樣,Linus也希望能給它添加一些功能。

在之後的幾個月裏,Linus根據實際的需要編寫了磁盤驅動程序以便下載訪問新聞組的文件,又編寫了個文件系統以便能夠閱讀Minix文件系統中的文件。這樣,“當你有了任務切換,有了文件系統和設備驅動程序後,這就是UNIX,或者至少是其內核。”於是,0.0.1版本的Linux就誕生了。

Linus從一開始就決定自由傳播Linux,他把源代碼發布在網上,於是,眾多的愛好者和程序員也都通過互聯網加入到Linux的內核開發工作中。這個思想與FSF(free Software Foundation)資助發起的GNU(GNU’s Not UNIX)的自由軟件精神不謀而合。

GNU是為了推廣自由軟件的精神以實現一個自由的操作系統,然後從應用程序開始,實現其內核。而當時Linux的優良性能備受GNU的賞識,於是GNU就決定采用Linus及其開發者的內核。在他們的共同努力下,Linux這個完整的操作系統誕生了。其中的程序開發共同遵守General Public License(GPL)協議,這是最開放也是最嚴格的許可協議方式,這個協議規定了源碼必須可以無償地獲取並且修改。因此,從嚴格意義上說,Linux應該叫做GNU/Linux,其中許多重要的工具如gccgdbmakeemacs等都是GNU貢獻的。

這個“嬰兒版”的操作系統以平均兩星期更新一次的速度迅速成長,如今的Linux已經有超過250種發行版本,且可以支持所有體系結構的處理器,如X86、PowerPC、ARM、Xscale等,也可以支持帶MMU或不帶MMU的處理器。到目前為止,它的內核版本也已經從原先的0.0.1發展到現在的2.6.xx。

1.1.2 Linux作為嵌入式操作系統的優勢

從Linux系統的發展過程可以看出,Linux從最開始就是一個開放的系統,並且它始終遵循著源代碼開放的原則,它是一個成熟而穩定的網絡操作系統,作為嵌入式操作系統有如下優勢。
1.低成本開發系統

Linux的源碼開放性允許任何人獲取並修改Linux的源碼。這樣一方面大大降低了開發的成本,另一方面又可以提高開發產品的效率。並且還可以在Linux社區中獲得支持,用戶只需向郵件列表發一封郵件,即可獲得作者的支持。
2.可應用於多種硬件平臺

Linux可支持X86、PowerPC、ARM、Xscale、MIPS、SH、68K、Alpha、Sparc等多種體系結構,並且已經被移植到多種硬件平臺。這對於經費、時間受限制的研究與開發項目是很有吸引力的。Linux采用一個統一的框架對硬件進行管理,同時從一個硬件平臺到另一個硬件平臺的改動與上層應用無關。
3.可定制的內核

Linux具有獨特的內核模塊機制,它可以根據用戶的需要,實時地將某些模塊插入到內核中或者從內核中移走,並能根據嵌入式設備的個性需要量體裁衣。經裁減的Linux內核最小可達到150KB以下,尤其適合嵌入式領域中資源受限的實際情況。當前的2.6內核加入了許多嵌入式友好特性。
4.性能優異

Linux系統內核精簡、高效並且穩定,能夠充分發揮硬件的功能,因此它比其他操作系統的運行效率更高。在個人計算機上使用Linux,可以將它作為工作站。它也非常適合在嵌入式領域中應用,對比其他操作系統,它占用的資源更少,運行更穩定,速度更快。
5.良好的網絡支持

Linux是首先實現TCP/ip協議棧的操作系統,它的內核結構在網絡方面是非常完整的,並提供了對包括十兆位、百兆位及千兆位的以太網,還有無線網絡、Token ring(令牌環)和光纖甚至衛星的支持,這對現在依賴於網絡的嵌入式設備來說無疑是很好的選擇。

1.1.3 Linux發行版本

由於Linux屬於GNU系統,而這個系統采用GPL協議,並保證了源代碼的公開,於是眾多組織或公司在Linux內核源代碼的基礎上進行了一些必要的修改加工,然後再開發一些配套的軟件,並把它整合成一個自己的發布版Linux。除去非商業組織Debian開發的Debian GNU/Linux外,美國的Red Hat公司發行了Red Hat Linux,法國的Mandrake公司發行了Mandrake Linux,德國的SUSE公司發行了SUSE Linux,我國眾多公司也發行了中文版的Linux,如著名的紅旗Linux。Linux目前已經有超過250個發行版本。

下面僅對Red Hat、Debian、Mandrake等具有代表性的Linux發行版本進行介紹。
1.Red Hat

全世界的Linux用戶最熟悉的發行版想必就是Red Hat了。Red Hat最早是由Bob Young和Marc Ewing在1995年創建的。目前Red Hat分為兩個系列:由Red Hat公司提供收費技術支持和更新的Red Hat Enterprise Linux(RHEL,Red Hat的企業版),以及由社區開發的免費的桌面版Fedora Core。

Red Hat企業版有3個版本——as、ES和WS。AS是其中功能最為強大和完善的版本。而正統的桌面版Red Hat版本更新早已停止,最後一版是Red Hat 9.0。本書就以穩定性高的RHEL AS作為安裝實例進行講解。

官方主頁:http://www.redhat.com/ 。
2.Debian

之所以把Debian單獨列出,是因為Debian GNU/Linux是一個非常特殊的版本。在1993年,伊恩·默多克(Ian Murdock)發起Debian計劃,它的開發模式和 Linux 及其他開放性源代碼操作系統的精神一樣,都是由超過800位誌願者通過互聯網合作開發而成的。一直以來,Debian GNU/Linux被認為是最正宗的Linux發行版本,而且它是一個完全免費、高質量的且與UNIX兼容的操作系統。

Debian系統分為3個版本,分別為穩定版(Stable)、測試版(Testing)和不穩定版(Unstable)。每次發布的版本都是穩定版,而測試版在經過一段時間的測試證明沒有問題後會成為新的穩定版。Debian擁有超過8710種不同的軟件,每一種軟件都是自由的,而且有非常方便的升級安裝指令,基本囊括了用戶的所有需要。Debian也是最受歡迎的嵌入式Linux之一。

官方主頁:http://www.debian.org/ 。
3.我國的發行版本及其他

目前國內的紅旗、新華等都發行了自己的Linux版本。

除了前面所提到的這些版本外,業界還存在著諸如Gentoo、LFS等適合專業人士使用的版本。在此不做介紹,有興趣的讀者可以自行查找相關的資料做進一步的了解。

1.1.4 如何學習Linux

正如人們常說的“實踐出真知”,學習Linux的過程也一樣。只有通過大量的動手實踐才能真正地領會Linux的精髓,才能迅速掌握在Linux上的應用開發,相信有編程語言經驗的讀者一定會認同這一點。因此,在本書中筆者安排了大量的實驗環節和課後實踐環節,希望讀者盡可能多參與。

另外要指出的是,互聯網也是一個很好的學習工具,一定要充分地加以利用。正如編程一樣,實踐的過程中總會出現多種多樣的問題,筆者在寫作的過程當中會盡可能地考慮可能出現的問題,但限於篇幅和讀者的實際情況,不可能考慮到所有可能出現的問題,所以希望讀者能充分利用互聯網這一共享的天空,在其中尋找答案。以下列出了國內的一些Linux論壇:

http://www.linuxfans.org

http://www.linuxforum.net/

http://www.linuxeden.com/forum/

http://www.newsmth.net

延伸阅读

评论