官术网_书友最值得收藏!

相關(guān)知識

1.2.1 嵌入式Linux概述

Linux是一種基于可移植操作系統(tǒng)接口標(biāo)準(zhǔn)(POSIX)的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。軟件支持主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議,硬件支持32位和64位。1991年10月5日首次發(fā)布第一個Linux操作系統(tǒng)內(nèi)核Linux 0.01,目前有上百種不同的發(fā)行版本,主要包括Red Hat Linux、Ubuntu Linux、SuSE Linux、Gentoo Linux、Debian Linux、Fedora等。其優(yōu)勢包括:完全開源免費(fèi)、多用戶多任務(wù)、界面良好、多種平臺支撐、軟件支持豐富、安全可靠、良好穩(wěn)定性及強(qiáng)大網(wǎng)絡(luò)功能。

1.嵌入式Linux操作系統(tǒng)

嵌入式Linux(Embedded Linux)是指將完整的Linux經(jīng)過裁剪修改小型化后,固化在嵌入式處理器的存儲器中,并應(yīng)用于特定場合的專用Linux操作系統(tǒng)。嵌入式Linux既繼承了Internet上無限的開放源代碼資源,又具有嵌入式操作系統(tǒng)的特性,與其他嵌入式操作系統(tǒng)相比具備如下優(yōu)勢。

(1)內(nèi)核完全開源免費(fèi)及良好移植性

由于內(nèi)核代碼完全開源免費(fèi),不同領(lǐng)域和不同層次的用戶可以根據(jù)實(shí)際應(yīng)用場景對內(nèi)核進(jìn)行改造,低成本地設(shè)計(jì)和開發(fā)出滿足自己需要的嵌入式系統(tǒng)。類似于Linux,嵌入式Linux也符合IEEE POSIX.1相關(guān)標(biāo)準(zhǔn),使得應(yīng)用程序可移植性良好。

(2)強(qiáng)大的網(wǎng)絡(luò)支持及兼容性

嵌入式Linux支持所有標(biāo)準(zhǔn)的因特網(wǎng)協(xié)議,來源于Linux網(wǎng)絡(luò)協(xié)議棧構(gòu)建的嵌入式TCP/IP網(wǎng)絡(luò)協(xié)議棧,除IPV4還包括IPV6。此外還支持多種文件系統(tǒng),包括ext2、fat16、fat32、romfs等。良好的兼容和支持特性有利于應(yīng)用開發(fā)。

(3)Linux具備一整套完整工具鏈

傳統(tǒng)嵌入式開發(fā)調(diào)試一般采用在線仿真器(ICE)方式實(shí)現(xiàn)。仿真器為目標(biāo)程序建立完整的仿真環(huán)境,完成監(jiān)視調(diào)試相關(guān)功能。這種使用專用仿真器的調(diào)試方式適合硬件底層調(diào)試,但成本較高。而嵌入式Linux只需軟硬件支持基本的串口功能即可進(jìn)行調(diào)試,成本極低且能解決實(shí)際應(yīng)用中的大部分問題。嵌入式Linux的完整工具鏈(Tool Chain)包括用作編譯器的GCC工具,用作調(diào)試工具的GDB、KGDB、XGDB等。相關(guān)工具可以完成從操作系統(tǒng)底層到應(yīng)用軟件上層的調(diào)試。對不同平臺架構(gòu)及不同處理器開發(fā)者可以通過全套工具鏈建立相應(yīng)的開發(fā)環(huán)境和交叉運(yùn)行環(huán)境,開發(fā)及仿真十分方便。

(4)具有廣泛的硬件支持特性

系統(tǒng)可運(yùn)行在x86、Alpha、Sparc、MIPS、PPC、Motorola、NEC、ARM等多種硬件平臺,而且開放源代碼,可以定制。

綜上,嵌入式Linux應(yīng)用領(lǐng)域非常廣泛,如平板、機(jī)頂盒、手機(jī)、掃描儀、數(shù)據(jù)網(wǎng)絡(luò)、交換機(jī)、路由器、服務(wù)器以及衛(wèi)星通信、醫(yī)療電子、交通運(yùn)輸計(jì)算機(jī)外設(shè)、工業(yè)控制、航空航天領(lǐng)域各種特種設(shè)備等。與臺式機(jī)/筆記本式計(jì)算機(jī)相比,各種手持設(shè)備、消費(fèi)電子以及特殊用途的專用設(shè)備市場容量極大,因此嵌入式Linux系統(tǒng)具有極其強(qiáng)大的生命力和廣泛的應(yīng)用前景。

2.Linux文件系統(tǒng)

Linux文件系統(tǒng)目錄如圖1-25所示,“/”為根目錄,其下的一級子目錄作用如下所述。

圖1-25 Linux文件系統(tǒng)目錄

(1)/bin

bin是“二進(jìn)制文件(Binaries)”的英文縮寫,主要存放系統(tǒng)命令,普通用戶和root超級用戶都可以執(zhí)行。放在/bin下的命令在單用戶模式下也可以執(zhí)行。

(2)/boot

boot是系統(tǒng)啟動目錄,保存與系統(tǒng)啟動相關(guān)的文件,如內(nèi)核文件、啟動引導(dǎo)程序(grub)文件以及其他連接文件、鏡像文件等。

(3)/dev

dev是“設(shè)備(device)”的英文縮寫,該目錄下存放的是Linux的外部設(shè)備,在Linux中訪問設(shè)備的方式和訪問文件的方式是相同的。

(4)/etc

etc是“等等(et cetera)”的英文縮寫,這個目錄用來存放所有的系統(tǒng)管理需要的配置文件和子目錄。

(5)/home

home是普通用戶的主目錄(也稱為家目錄)。在創(chuàng)建用戶時,每個用戶要有一個默認(rèn)登錄和保存自己數(shù)據(jù)的位置,就是用戶的主目錄,所有普通用戶的主目錄是在/home/下建立一個和用戶名相同的目錄。如用戶lxr的主目錄就是/home/lxr。

(6)/lib

lib是“庫(library)”的英文縮寫,這個目錄里存放著系統(tǒng)最基本的動態(tài)鏈接共享庫文件,其作用類似于Windows里的動態(tài)鏈接庫(dll)文件。幾乎所有的應(yīng)用程序都需要用到這些共享庫文件。

(7)/lost+found

這個目錄一般情況下是空的,當(dāng)系統(tǒng)非法關(guān)機(jī)后,這里就存放了一些系統(tǒng)修復(fù)過程中恢復(fù)的文件。

(8)/media

media是掛載目錄。系統(tǒng)建議用來掛載媒體設(shè)備,如U盤和光盤。

(9)/mnt

mnt也是掛載目錄。早期Linux中只有這一個掛載目錄。系統(tǒng)建議這個目錄用來掛載額外的設(shè)備,如U盤、移動硬盤和其他操作系統(tǒng)的分區(qū)。

(10)/opt

安裝大的應(yīng)用程序。這個目錄是放置和安裝其他軟件的位置,手工安裝的源碼包軟件都可以安裝到這個目錄中。不過筆者還是習(xí)慣把軟件放到/usr/local/目錄中,也就是說/usr/local/目錄也可以用來放置和安裝軟件。

(11)/proc

proc是“進(jìn)程(processes)”的英文縮寫,/proc是一種偽文件系統(tǒng)(即虛擬文件系統(tǒng)),存儲的是當(dāng)前內(nèi)核運(yùn)行狀態(tài)的一系列特殊文件,這個目錄是一個虛擬的目錄,它是系統(tǒng)內(nèi)存的映射,可以通過直接訪問這個目錄來獲取系統(tǒng)信息。

(12)/root

root是超級用戶的主目錄。普通用戶主目錄在/home/下,超級用戶root的主目錄在“/”下。

(13)/sbin

保存與系統(tǒng)環(huán)境設(shè)置相關(guān)的命令,只有root超級用戶可以使用這些命令進(jìn)行系統(tǒng)環(huán)境設(shè)置,但也有些命令允許普通用戶查看。

(14)/srv

該目錄存放一些服務(wù)啟動之后需要提取的數(shù)據(jù)。

(15)/sys

虛擬文件系統(tǒng)。和/proc/目錄相似,該目錄中的數(shù)據(jù)都保存在內(nèi)存中,主要保存與內(nèi)核相關(guān)的信息。

(16)/tmp

臨時目錄,系統(tǒng)存放臨時文件的目錄。在該目錄下,所有用戶都可以訪問和寫入。建議此目錄中不保存重要數(shù)據(jù),最好每次開機(jī)都把該目錄清空。

(17)/usr

usr是“共享資源(unix shared resources)”的英文縮寫,這是一個非常重要的目錄,用戶的很多應(yīng)用程序和文件都放在這個目錄下,類似于Windows下的program files目錄。

(18)/var

var是“變量(variable)”的英文縮寫,這個目錄中存放著在不斷擴(kuò)充著的文件,一般可以將那些經(jīng)常修改的目錄放在這個目錄下。包括各種日志文件。

(19)/run

這是一個臨時文件系統(tǒng),存儲系統(tǒng)啟動以來的信息。當(dāng)系統(tǒng)重啟時,這個目錄下的文件應(yīng)該被刪掉或清除。如果系統(tǒng)上有/var/run目錄,應(yīng)該讓它指向run目錄。

3.Linux文件權(quán)限

Linux是一個多用戶操作系統(tǒng),為了保護(hù)用戶個人的文件不被其他用戶讀取、修改或執(zhí)行,Linux提供文件權(quán)限機(jī)制,文件的操作權(quán)限分為讀、寫和執(zhí)行,分別用r、w、x來表示。對每個文件(或目錄)而言,都有4種不同的用戶。

root:系統(tǒng)超級用戶能夠以root賬號登錄。

owner:實(shí)際擁有文件(或目錄)的用戶。

group:用戶所在組的成員。

other:以上三類之外的所有其他用戶。

4.Linux Shell

Shell是系統(tǒng)的用戶界面,提供了用戶與內(nèi)核進(jìn)行交互操作的一種接口。它接收用戶輸入的命令并把它送入內(nèi)核去執(zhí)行。

(1)Shell的特點(diǎn)

1)圖形用戶界面化。Linux提供了像Microsoft Windows那樣的可視的命令輸入界面——X Window的圖形用戶界面(GUI)。它提供了很多窗口管理器,其操作就像Windows一樣,有窗口、圖標(biāo)和菜單,所有的管理都是通過鼠標(biāo)控制。現(xiàn)在比較流行的窗口管理器是KDE和GNOME。

2)解析命令。Shell內(nèi)置的命令解釋器,解析用戶輸入的命令并把它們送到內(nèi)核。

3)可編程。Shell有自己的編程語言用于對命令的編輯,它允許用戶編寫由shell命令組成的程序。Shell編程語言具有普通編程語言的很多特點(diǎn),比如它也有循環(huán)結(jié)構(gòu)和分支控制結(jié)構(gòu)等,用這種編程語言編寫的Shell程序與其他應(yīng)用程序具有同樣的效果。

(2)常見的Shell版本

每個Linux系統(tǒng)的用戶可以擁有自己的用戶界面或Shell,用以滿足他們自己專門的Shell需要。同Linux本身一樣,Shell也有多種不同的版本。目前主要有下列版本的Shell:

1)Bourne Shell:是貝爾實(shí)驗(yàn)室開發(fā)的。

2)BASH:是GNU的Shell版本,是GNU操作系統(tǒng)上默認(rèn)的Shell。

3)Korn Shell:是對Bourne Shell的發(fā)展,在大部分內(nèi)容上與Bourne Shell兼容。

4)C Shell:是SUN公司Shell的BSD版本。

(3)Shell提示符及命令操作

Shell有兩種提示符:#和$。Linux系統(tǒng)登錄時可以用兩種身份登錄:root用戶和一般用戶。以“#”為提示符表明該終端是由root用戶打開的,root用戶具有最高權(quán)限,因此可以輸入任何可用的命令。以“$”為提示符表明該終端是一般用戶,一般用戶在使用系統(tǒng)時是有限制的。

在Shell下輸入相應(yīng)的命令并按〈Enter〉鍵,Shell就執(zhí)行命令。如果沒有此命令,Shell會提示:“command not fount”。Shell命令是區(qū)分大小寫的,一條命令只要有一個字母的大小寫發(fā)生變化,系統(tǒng)就認(rèn)為是一條不同的命令。輸入命令、目錄名或文件名的開頭一個或幾個字母后按〈Tab〉鍵,Shell會在相應(yīng)目錄里進(jìn)行匹配,自動補(bǔ)齊命令、目錄名或文件名。還可以通過按〈↑〉或〈↓〉鍵來顯示執(zhí)行過的命令,這在重復(fù)執(zhí)行某些命令時會給用戶帶來很大的方便。

主站蜘蛛池模板: 白朗县| 承德市| 虞城县| 兴和县| 乌兰察布市| 五莲县| 施甸县| 营口市| 山西省| 博客| 余江县| 苏尼特左旗| 玉龙| 北海市| 洛阳市| 乌兰浩特市| 成安县| 雷山县| 太原市| 浮梁县| 宣城市| 聂荣县| 城市| 汶上县| 绩溪县| 抚顺市| 尚志市| 永安市| 山阴县| 武城县| 巴东县| 威海市| 上思县| 大荔县| 阿尔山市| 大冶市| 敦化市| 田林县| 连平县| 乐平市| 漠河县|