隨著智能設(shè)備的發(fā)展,Linux系統(tǒng)越來越多的被用到了嵌入式設(shè)備里。為了讓工程師們以及新手小白們更好的了解Linux,小編整理了一系列的有關(guān)Linux的基礎(chǔ)知識點,快來看看吧!
1. Linux系統(tǒng)分為三層:
(1) 靠近硬件的底層是內(nèi)核,即Linux操作系統(tǒng)常駐內(nèi)存部分。 (2) 中間層是內(nèi)核之外的shell層,即操作系統(tǒng)的系統(tǒng)程序部分。 (3) 最高層是應(yīng)用層,即用戶程序部分。
2. Linux的進程調(diào)度算法采用多級隊列輪轉(zhuǎn)法。
3. Linux兩種管理內(nèi)存的策略:
(1) 交換 (2) 請求分頁
4. Linux支持三種類型的硬件設(shè)備:
(1) 字符設(shè)備 (2) 塊設(shè)備 (3) 網(wǎng)絡(luò)設(shè)備
5. Linux 進程狀態(tài):
(1) 運行態(tài) (2) 可中斷等待態(tài) (3) 不可中斷等待態(tài) (4) 停止態(tài) (5) 僵死態(tài)
6. Linux進程的執(zhí)行模式:
(1) 用戶模式 (2) 內(nèi)核模式
7. 如果在用戶程序執(zhí)行過程中出現(xiàn)系統(tǒng)調(diào)用或者發(fā)生中斷事件,就要運行操作系統(tǒng)程序,進程模式變成內(nèi)核模式。在內(nèi)核模式下運行的進程可以執(zhí)行機器的特權(quán)指令,此時該進程的運行不受用戶的干預(yù),即使是root用戶也不能干預(yù)內(nèi)核模式下進程的運行。
8. Linux進程按功能和運行的程序分為:
(1) 系統(tǒng)進程 (2) 用戶進程
9. 用戶進程既可以在用戶模式下運行,也可以在內(nèi)核模式下運行。
10. Linux每個進程都有一個名為task-struct的數(shù)據(jù)結(jié)構(gòu),相當(dāng)于進程控制塊。
11. task-struct包含的信息:
(1) 進程狀態(tài) (2) 調(diào)度信息 (3) 標(biāo)識符 (4) 內(nèi)部進程通信 (5) 鏈接信息 (6) 時間和計時器 (7) 文件系統(tǒng) (8) 虛擬內(nèi)存 (9) 處理器信息
12. Linux每個進程都有一個系統(tǒng)堆棧,保存中斷現(xiàn)場信息和進程進入內(nèi)核模式后執(zhí)行子程序嵌套調(diào)用的返回現(xiàn)場信息。
13. 系統(tǒng)空間堆棧大小是靜態(tài)確定的,用戶空間堆棧可以在運行時動態(tài)擴展。
14. 系統(tǒng)剛剛啟動時,系統(tǒng)運行在內(nèi)核方式,內(nèi)核在引導(dǎo)并完成基本的初始化操作以后,就有了系統(tǒng)的第一個進程。除此之外,所有的其他進程和內(nèi)核線程都由這個原始進程或其子孫進程創(chuàng)建。
15. 除初始化進程外,其他進程都是用系統(tǒng)調(diào)用fork()和clone()創(chuàng)建的。調(diào)用fork()和clone()的進程是父進程,被生成的進程是子進程。
16. 后臺程序按批處理方式調(diào)度運行。
17. 超級塊包含文件系統(tǒng)的大小和形式的基本信息。文件系統(tǒng)管理員可以利用這些信息來使用和維護文件系統(tǒng)。每個塊組都是一個超級塊。
18. 每個數(shù)據(jù)塊組都有一個描述它的數(shù)據(jù)結(jié)構(gòu),即塊組描述結(jié)構(gòu)。
19. 每個文件都有唯一一個索引節(jié)點。
20. 索引節(jié)點兩種形式:
(1) 盤索引節(jié)點 (2) 內(nèi)存索引節(jié)點
21. 用戶程序通過有關(guān)文件系統(tǒng)操作的系統(tǒng)調(diào)用界面進入系統(tǒng)空間,然后經(jīng)由VFS才可使用Linux系統(tǒng)中具體的文件系統(tǒng)。
22. VFS和ext2文件系統(tǒng)一樣也使用超級塊和索引節(jié)點來描述和管理系統(tǒng)中的文件。每個安裝的文件系統(tǒng)都有一個VFS超級塊。
23. Linux系統(tǒng)進程啟動時,自動打開三個文件:標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤輸出,文件描述符分別是0,1,2.
24. 信號處理機構(gòu)包括:
(1) 信號的分類、產(chǎn)生和傳送 (2) 對各種信號預(yù)先規(guī)定的處理方式 (3) 信號的檢測和處理
25. 進程接到信號后,在一定時機做相應(yīng)處理,可采取四種處理方式:
(1) 忽略信號 (2) 阻塞信號 (3) 由進程處理該信號 (4) 由系統(tǒng)默認(rèn)處理
26. 對信號的檢測和響應(yīng)是在系統(tǒng)空間進行的。
27. 一個管道線就是連接兩個進程的一個打開文件。
28. 用戶是通過文件系統(tǒng)與設(shè)備交互的。
29. 所有設(shè)備都作為特別文件,從而在管理上具有下列共性:
(1) 每個設(shè)備都對應(yīng)文件系統(tǒng)中的一個索引節(jié)點,都有一個文件名。 (2) 應(yīng)用程序通常可以通過系統(tǒng)調(diào)用open()打開設(shè)備文件,建立與目標(biāo)設(shè)備的連接。 (3) 對設(shè)備的使用類似對文件的存取。 (4) 設(shè)備驅(qū)動程序是系統(tǒng)內(nèi)核的一部分,必須為系統(tǒng)內(nèi)核或者它們的子系統(tǒng)提供標(biāo)準(zhǔn)接口。 (5) 設(shè)備驅(qū)動程序利用標(biāo)準(zhǔn)的內(nèi)核服務(wù)。
30. 中斷處理分為兩個步驟:
(1) 中斷響應(yīng):硬件實施 (2) 中斷處理:軟件實施
31. 每個系統(tǒng)調(diào)用都有唯一的號碼,稱為系統(tǒng)調(diào)用號。
32. 在Linux網(wǎng)絡(luò)中,網(wǎng)絡(luò)數(shù)據(jù)從用戶進程傳輸?shù)骄W(wǎng)絡(luò)設(shè)備需要經(jīng)歷4個層次。數(shù)據(jù)傳輸只能按照層次自上而下進行,不能跨越其中的某個或某些層次。這使得網(wǎng)絡(luò)傳輸只能有唯一的一條路徑,從而提高了整個網(wǎng)絡(luò)的可靠性和準(zhǔn)確性。
33. socket在邏輯上有三個特征(或要素):
(1) 網(wǎng)域 (2) 類型 (3) 協(xié)議