- 從實踐中學嵌入式Linux操作系統
- 華清遠見嵌入式學院 曹忠明 程姚根編著
- 2765字
- 2018-12-27 02:31:59
1.4 嵌入式Linux基礎
隨著摩托羅拉手機A760、IBM智能型手表WatchPad、夏普PDA Zaurus等一款款高性能“智能數碼產品”的出現,以及Motorola、三星、MontaVista、飛利浦、Nokia、IBM、SUN等眾多國際頂級巨頭的加入,嵌入式Linux的隊伍越來越龐大,在通信、信息、數字家庭、工業控制等領域,隨處都能見到嵌入式Linux的身影。
究竟是什么原因讓嵌入式Linux發展如此迅速呢?又究竟是什么原因讓它能與強勁的VxWorks、Window CE相抗衡呢?這一切還是要歸根于它的“父親”——Linux的功勞。可以說,嵌入式Linux正是繼承和發展了Linux的誘人之處才走到今天的,而Linux也正是有了嵌入式Linux的廣泛應用才使其更加引人矚目。下面就從Linux開始,一層層揭開嵌入式Linux的面紗。
1.4.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,其中許多重要的工具如gcc、gdb、make、Emacs等都是GNU貢獻。
這個“嬰兒版”的操作系統以平均兩星期更新一次的速度迅速成長,如今的Linux已經有超過250種發行版本,并且可以支持所有體系結構的處理器,如X86、PowerPC、ARM、XSCALE等,也可以支持帶MMU或不帶MMU的處理器。到目前為止,它的內核版本也已經從最開始的0.0.1發展到現在的2.6.xx。
1.4.2 Linux作為嵌入式操作系統的優勢
從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.4.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.4.4 如何學習Linux
實踐出真知,學習Linux也一樣,只有通過大量的動手實踐才能真正領會Linux的精髓,才能迅速掌握在Linux上的應用開發。因此,在本書中筆者安排了大量的實驗環節和課后實踐環節,希望讀者盡可能多參與。
另外,需要指出的是,互聯網也是一個很好的學習工具,一定要充分地加以利用。正如編程語言一樣,實踐的過程中總會出現多種多樣的問題,筆者在寫作過程中會盡可能地考慮可能出現的問題,但限于篇幅和實際情況,不可能考慮到所有可能出現的問題,所以希望讀者能充分利用互聯網這一共享的天空,在其中尋找答案。以下列出了國內的一些Linux論壇:
- Practical Data Analysis
- 21小時學通AutoCAD
- Verilog HDL數字系統設計入門與應用實例
- Practical Data Wrangling
- Photoshop CS4經典380例
- Docker Quick Start Guide
- PyTorch Deep Learning Hands-On
- Spark大數據技術與應用
- 嵌入式操作系統
- 愛犯錯的智能體
- Godot Engine Game Development Projects
- Mastering Machine Learning with R
- 單片機與微機原理及應用
- 樂高機器人:Scratch與WeDo編程基礎實戰應用
- Orange'S:一個操作系統的實現