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

相關(guān)知識(shí)

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ā)布第一個(gè)Linux操作系統(tǒng)內(nèi)核Linux 0.01,目前有上百種不同的發(fā)行版本,主要包括Red Hat Linux、Ubuntu Linux、SuSE Linux、Gentoo Linux、Debian Linux、Fedora等。其優(yōu)勢(shì)包括:完全開源免費(fèi)、多用戶多任務(wù)、界面良好、多種平臺(tái)支撐、軟件支持豐富、安全可靠、良好穩(wěn)定性及強(qiáng)大網(wǎng)絡(luò)功能。

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

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

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

由于內(nèi)核代碼完全開源免費(fèi),不同領(lǐng)域和不同層次的用戶可以根據(jù)實(shí)際應(yīng)用場(chǎng)景對(duì)內(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)試。對(duì)不同平臺(tái)架構(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等多種硬件平臺(tái),而且開放源代碼,可以定制。

綜上,嵌入式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è)備等。與臺(tái)式機(jī)/筆記本式計(jì)算機(jī)相比,各種手持設(shè)備、消費(fèi)電子以及特殊用途的專用設(shè)備市場(chǎng)容量極大,因此嵌入式Linux系統(tǒng)具有極其強(qiáng)大的生命力和廣泛的應(yīng)用前景。

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

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

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

(1)/bin

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

(2)/boot

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

(3)/dev

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

(4)/etc

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

(5)/home

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

(6)/lib

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

(7)/lost+found

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

(8)/media

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

(9)/mnt

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

(10)/opt

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

(11)/proc

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

(12)/root

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

(13)/sbin

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

(14)/srv

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

(15)/sys

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

(16)/tmp

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

(17)/usr

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

(18)/var

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

(19)/run

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

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

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

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

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)控制?,F(xiàn)在比較流行的窗口管理器是KDE和GNOME。

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

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

(2)常見的Shell版本

每個(gè)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:是對(duì)Bourne Shell的發(fā)展,在大部分內(nèi)容上與Bourne Shell兼容。

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

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

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

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

主站蜘蛛池模板: 两当县| 仁化县| 永川市| 河北省| 上栗县| 丰原市| 万年县| 宜川县| 奎屯市| 威远县| 瓮安县| 海晏县| 志丹县| 阿坝县| 孝昌县| 饶河县| 布尔津县| 涿鹿县| 宁夏| 镇沅| 岐山县| 鄱阳县| 洪泽县| 手游| 通江县| 肥西县| 太仆寺旗| 杭锦旗| 武胜县| 维西| 山阳县| 南陵县| 革吉县| 平和县| 左贡县| 衡南县| 阿坝县| 普兰店市| 唐山市| 新巴尔虎左旗| 荣成市|