Linux开发速记教程之第一篇
一、Linux職業方向
①、服務器運維;②、應用軟件開發;③、設備驅動開發。
二、設備驅動開發
Linux 系統的一個重要設計哲學是一切皆文件。包括硬件設備,對于系統來說也是一個文件,所以系統向上層應用程序提供 open、 write、 read、 close 等統一的文件操作接口,應用程序可以利用這些接口對設備文件進行訪問,從而實現對硬件設備的初始化、寫入、讀取以及關閉等操作。
當系統接收到應用程序的這些訪問請求時,它會向下查詢對應設備具體的操作函數,然后調用相應的函數處理請求,而這些針對不同設備具體的操作函數就是設備驅動程序。因此,設備驅動就是這樣一種把硬件與操作系統連接在一起的程序, Linux 系統會提供統一的格式,設備驅動開發工程師根據具體的設備按照系統格式要求實現相應的設備操作函數。
三、i.MX 系列應用處理器
i.MX 應用處理器包括 i.MX8、 i.MX7、 i.MX6 及 i.MX28 系列,被廣泛應用于工業控制、汽車電子領域,其中 i.MX6 系列應用處理器包含基于 Cortex 的單核、雙核和四核系列的的產品,其架構有,主要采用 CortexA7, Cortex-A9 作為內核,部分型號采用 Cortex-A9+Cortex-M4 的雙核心方案。主頻從 528MHz~1.2GHz 不等。該系列芯片主要應用在車載多媒體系統、數字標牌電子閱讀器、人機界面、物聯網網關、智能工業控制系統等輕量、低功耗的領域,在物聯網推進的大潮下,該芯片定有一番作為。
本篇采用的是i.MX6ULL系列處理器,包含一個Cortex-A7內核,主頻有528MHz、792MHz和900MHz。如型號為 MCIMX6Y2CVM08AB 的芯片,它屬于 i.MX6ULL 系列,是主頻為 792MHz、芯片封裝為 BGA,尺寸為 14x14mm,焊盤間距為 0.8pitch的工業級芯片。
四、Linux內核和發行版
Linux 內核負責控制硬件、管理文件系統、進程管理、網絡通訊等,但它本身并沒有給用戶提供必要的工具和應用軟件。基于 Linux 內核搭配各種各樣系統管理軟件或應用工具軟件,從而組成一套完整可用的操作系統,見下圖。我們稱這樣的系統為 Linux 發行版(distribution)。完整的 Linux 系統就如同汽車, Linux 內核構成了最為關鍵的引擎,不同的發行版就類似使用相同引擎的不同車型。
五、根目錄
根目錄是 Linux 下所有文件和目錄的起點,它的路徑用斜杠符號“/”來表示。家目錄(個人目錄)路徑為“/home/用戶名/” ,整個 Linux 系統有且只有一棵從根目錄開始的目錄樹,目錄樹只是一個管理上的概念,它本身并不跟硬件掛鉤的,例如這些文件之所以是存儲在磁盤中,是因為在安裝系統時,已經把整個根目錄“掛載”在了磁盤上。所謂掛載就是把存儲器的分區與某個目錄對應起來,對該目錄進行訪問時,相應的操作會被映射到其掛載的存儲器分區,而這些存儲器包括磁盤、光盤、 U 盤、
NAND FLASH 等。
①、/bin 目錄:/bin 目錄是/binary 的縮寫,它包含眾多普通用戶可用的命令。而命令的本質就是可執行程序,即二進制 bin 文件。熟悉 Linux 命令后,回頭再來本目錄看看,會發現 ls、 cp、 cat 等命令,都可以在此處找到。
②、/sbin 目錄:/sbin 目錄是/system bin 的縮寫,它的功能類似/bin ,不過它存儲的一般是系統程序,一般需要使用管理員權限才能使用。如顯示系統已加載的模塊命令 lsmod、對存儲器分區進行格式化的 mkfs 等。
④、/etc 目錄:/etc 目錄是/etcetera 的縮寫,據說原始的 Unix 設計是在該目錄存放些零碎的內容,但現在該目錄現在已發展成存放系統的各種配置文件,非常重要。如用戶信息文件/etc/passwd,系統初始化文件/etc/rc 等,系統依據這些配置運行。在給系統安裝某些軟件或服務后,常常需要修改/etc 目錄下的文件進行配置。
⑤、 /root 目錄:/root 是超級用戶的目錄,在 Ubuntu 下默認為空。
⑥、 /home 目錄:/home 即前面介紹的家目錄。
⑦、/lib 目錄:/lib 目錄是/library 的縮寫,根文件系統上的程序所需的共享庫,存放了根文件系統程序運行所需的共享文件。如 C 語言標準庫,這些文件包含了可被許多程序共享的代碼,以避免每個程序都包含有相同的子程序的副本,故可以使得可執行文件變得更小,節省空間。
⑦、/dev 目錄:/dev 目錄存放了設備文件,即設備驅動程序,用戶通過這些文件訪問外部設備。比如,用戶可以通過訪
問/dev/mouse 來訪問鼠標的輸入,就像訪問其他文件一樣。
⑧、/proc 目錄:/proc 目錄通常包含了內核導出到用戶空間的內核信息,通過訪問該目錄下的文件可以查看這些信息。
**⑨、/sys 目錄:**與/proc 目錄類似, /sys 目錄用于把內核的設備驅動導出到用戶空間,可通過訪問 sys 目錄及其下的文件,來查看甚至控制內核的一些驅動設備。
⑩、/tmp 目錄:/tmp 目錄存放程序在運行時產生的信息和數據。但在引導啟動后,運行的程序最好使用/var/tmp 來代替/tmp,因為前者可能擁有一個更大的磁盤空間。
11、/boot 目錄:/boot 目錄存放引導加載器 (bootstrap loader) 使用的文件,如 lilo,核心映像也經常放在這里,而不是放在根目錄中。但是如果有許多核心映像,這個目錄就可能變得很大,這時使用單獨的文件系統會更好一些。
12、/mnt 目錄:/mnt 目錄是系統管理員臨時掛載 (mount) 文件系統的安裝點。 /mnt 下面可以分為許多子目錄,例如/mnt/dosa可能是使用 msdos 文件系統的軟驅,而/mnt/exta 可能是使用 ext2 文件系統的軟驅, /mnt/cdrom 光驅等等。
13、/media 目錄:/media 目錄通常是一些自動掛載的設備目錄,如光盤和 U 盤,部分系統會自動掛載到這個目錄下,然后通過
自動掛載的目錄可以訪問對應的設備。
14、/usr 目錄:
曾經的 /usr 還是用戶的家目錄,存放著各種用戶文件——現在已經被 /home 取代了(例如 /usr/someone 已經改為 /home/someone)。現代的 /usr 只專門存放各種程序和數據,用戶目錄已經轉移。雖然 /usr 名稱未改,不過其含義已經從“用戶目錄”變成了“unixsystem resource” (Unix 系統資源)。值得注意的是,在一些 unix 系統上,仍然把 /usr/someone 當做用戶家目錄,如 Minix。
? /usr/bin : 所有可執行文件,如 gcc, firefox 等(指不包含在 /sbin 和 /bin 內的);
? /usr/include : 各種頭文件,編譯文件等時需要使用;
? /usr/include/’ package-name’ : 程序特定的頭文件;
? /usr/lib : 所以可執行文件所需要的庫文件;
? /usr/scr:源代碼, Linux 內核的源代碼就放在該目錄下。
六、文件類型
**①、普通文件:**如文本文件, bin 文件等。
**②、可執行文件:**可執行文件包括腳本和應用程序,這些文件可被系統加載運行,類似 Windows 下的 bat 腳本、 exe 程序文件
等。
**③、鏈接文件:**鏈接文件分為硬鏈接和軟鏈接:? 硬鏈接是指同一個文件的不同別名。? 軟鏈接文件有類似于 Windows 的快捷方式。它實際上是一個特殊的文件。在符號連接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息。
**④、目錄文件:**在 Linux 下目錄也是文件。
**⑤、設備文件:**硬件設備也是文件,通過打開對應的設備文件可以初始化設備,部分設備還可以通過讀寫設備文件實現對硬件的控制。
七、用戶及用戶組
①、Linux是多用戶操作系統,root用戶管理其他用戶和計算機的全部資源;
②、在Linux中,每個用戶都有一個特定的UID編號來標識一個系統用戶,并且把標號0分配給root用戶的uid,它可以分配給每個用戶不同的權限,因此每個用戶可進行的操作也不同。
③、Linux 的文件屬性,可以分為讀權限、寫權限、執行權限。讀權限以及寫權限,基本上和 Windows 操作系統是一樣的。
八、Linux命令行
Shell是命令行解釋器,Linux系統與用戶通過Shell進行交互的。
①、Shell:指命令解釋器,常見的解釋器有bash、sh,在Ubuntu系統默認是bash解釋器,所以有時候說bash也是指命令行。
②、終端(Terminal):通常指用來運行 Shell 的程序,示場景的不同有不一樣的名稱,如 Ubuntu 系統自帶的叫本地終端,嵌入式開發板常常提供串口進行輸入輸出的串口終端,通過網絡訪問的 ssh 終端。
③、控制臺(Console):特指某些終端,通常是指它的物理形態,如帶鍵盤和顯示器的物理設備。
④、快捷鍵 Ctrl+Alt+T,可以快速打開一個命令行終端;
cd命令:change dir 的簡寫,它可以把終端當前所在的路徑切換至目標路徑。
mkdir 命令是 make directory 的簡寫,它可以在文件系統中創建一個新的目錄。
touch 命令可以創建不存在的文件,或者 touch 通過參數修改目錄或文件的日期時間,就是摸一下,更新它的時間。
ls 命令功能為顯示指定目錄下的內容(文件及子目錄) ,還可以查看文件大小,修改日期等等信息。
cat 命令是 通常被用來在終端下輸出文件的內容進行查看。
echo 命令的功能是在終端上打印一段文字,也可以把終端的變量內容打印出來。
輸出重定向到文件“>”或“?”,其中“>”會直接用輸出覆蓋原文件,而“?”則把輸出追加到原文件的末尾。
rmdir 命令是 remove directory 的簡寫,它的功能是刪除空的目錄。
rm 命令是 remove 的簡寫,它的功能是刪除一個或多個文件或目錄。
sudo 命令是 switch user do 的簡寫,意思是切換用戶去做某件事情。
clear命令是 清除命令行的內容及打印出來的內容。
reboot/poweroff 命令來控制系統的重啟與關機。
man命令可以用來查找更多的命令。
總結
以上是生活随笔為你收集整理的Linux开发速记教程之第一篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows11安装 Python
- 下一篇: 组织机构代码