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