兩天沒有更新了,,上次博文我們分析了linux的內(nèi)存管理子系統(tǒng),本來我不想對(duì)接下來的進(jìn)程管理子系統(tǒng),、網(wǎng)絡(luò)子系統(tǒng),、虛擬文件系統(tǒng)在這個(gè)階段進(jìn)行分析的,但是為了讓大家對(duì)內(nèi)核有個(gè)整體的把握,,今天還是簡(jiǎn)單的介紹一下剩余的幾個(gè)子系統(tǒng),,我們對(duì)這幾個(gè)子系統(tǒng)的分析,只要了解其作用和部分內(nèi)容即可,,不必深究,,等我們寫上幾個(gè)驅(qū)動(dòng),到時(shí)候按照驅(qū)動(dòng)再來分析這幾個(gè)子系統(tǒng)我們就清晰多了。 在http://www.cnblogs.com/wrjvszq/p/4257164.html一文我們提到過linux由七個(gè)部分構(gòu)成,,最重要的四個(gè)子系統(tǒng)是內(nèi)存管理子系統(tǒng),、進(jìn)程管理子系統(tǒng)、網(wǎng)絡(luò)子系統(tǒng),、虛擬文件系統(tǒng),、上次我們已經(jīng)對(duì)內(nèi)存管理子系統(tǒng)進(jìn)行了分析(談不上分析,只是個(gè)簡(jiǎn)單了解),。 所以今天我們會(huì)分析到以下內(nèi)容: 1. Linux進(jìn)程管理子系統(tǒng) 2. Linux網(wǎng)絡(luò)子系統(tǒng) 3. 虛擬文件系統(tǒng) 4. Linux設(shè)備驅(qū)動(dòng)簡(jiǎn)介
在進(jìn)程管理中最重要的就是進(jìn)程的調(diào)度和進(jìn)程的通信下面我們一一分析,。 1. 進(jìn)程調(diào)度 進(jìn)程調(diào)度使得多個(gè)進(jìn)程增長(zhǎng)CPU中“微觀串行,宏觀并行”的進(jìn)行執(zhí)行,。進(jìn)程調(diào)度處于系統(tǒng)的中心位置,,內(nèi)核中其他子系統(tǒng)都依賴于它。 a) 進(jìn)程調(diào)度意義 進(jìn)程調(diào)度使得多個(gè)進(jìn)程增長(zhǎng)CPU中“微觀串行,,宏觀并行”的進(jìn)行執(zhí)行,。進(jìn)程調(diào)度處于系統(tǒng)的中心位置,內(nèi)核中其他子系統(tǒng)都依賴于它,。 b) 進(jìn)程的狀態(tài)切換 Linux的進(jìn)程在幾個(gè)狀態(tài)間進(jìn)行切換,,如下圖展現(xiàn)了其切換關(guān)系。
c) 進(jìn)程調(diào)度策略 Linux中常見的有以下 1) SCHED_OTHER 分時(shí)調(diào)度策略,。 2) SCHED_FIFO實(shí)時(shí)調(diào)度策略,,先到先服務(wù) 3) SCHED_RR實(shí)時(shí)調(diào)度策略,時(shí)間片輪轉(zhuǎn)
2. 進(jìn)程通信 Linux支持進(jìn)程間的多種通信機(jī)制,,可以通過這些通信機(jī)制進(jìn)行多個(gè)進(jìn)程,、多資源的互斥訪問、進(jìn)程間的同步和消息傳遞,。 a) linux進(jìn)程間通信方式 1) 管道:分為有名管道(用于同一系統(tǒng)間的任意進(jìn)程)和無名管道(用于父子進(jìn)程) 2) 信號(hào)量 3) 信號(hào) 4) 消息隊(duì)列 5) 共享內(nèi)存 6) 套接字(socket) l Linux網(wǎng)絡(luò)子系統(tǒng) Linux網(wǎng)絡(luò)子系統(tǒng)提供了對(duì)各種網(wǎng)絡(luò)標(biāo)準(zhǔn)的存取和各種硬件的支持,。下圖是其整體結(jié)構(gòu)。其可以分為協(xié)議層和網(wǎng)絡(luò)驅(qū)動(dòng)程序,,其中網(wǎng)絡(luò)協(xié)議主要負(fù)責(zé)實(shí)現(xiàn)每一種可能的網(wǎng)絡(luò)傳輸協(xié)議,,而網(wǎng)絡(luò)驅(qū)動(dòng)程序負(fù)責(zé)與硬件通信。
l Linux虛擬文件系統(tǒng) Linux虛擬文件系統(tǒng)(VFS)隱藏了各種硬件的具體細(xì)節(jié),,為所有的設(shè)備提供了統(tǒng)一的接口,,它是對(duì)各種文件系統(tǒng)的一個(gè)抽象,其實(shí)使用超級(jí)塊super block存放文件系統(tǒng)相關(guān)信息,,使用索引節(jié)點(diǎn)inode存放文件的物理信息,,使用目錄項(xiàng)dentry存放文件的邏輯信息,其整體架構(gòu)如下,。
l Linux設(shè)備驅(qū)動(dòng)簡(jiǎn)介 上面的介紹很簡(jiǎn)單,,僅僅是對(duì)這些子系統(tǒng)的概念什么的進(jìn)行了簡(jiǎn)介,下面我們對(duì)linux設(shè)備驅(qū)動(dòng)進(jìn)行簡(jiǎn)單介紹。 1. 設(shè)備驅(qū)動(dòng)分類 Linux分為下面三種基本設(shè)備,。 a) 字符設(shè)備 是一種按照字節(jié)來訪問的設(shè)備,,字符設(shè)備適用于大多數(shù)的簡(jiǎn)單硬件。常見的LED,、按鍵等 b) 塊設(shè)備 是一種以塊(通常為512字節(jié))為最小訪問單位的設(shè)備,,常見的硬盤、SD卡等,。但在linux中對(duì)塊沒有大小限制,,可以訪問任意數(shù)目的字節(jié)。 c) 網(wǎng)絡(luò)設(shè)備 用來負(fù)責(zé)發(fā)送和接收?qǐng)?bào)文的設(shè)備,,比如網(wǎng)卡,。
今天的簡(jiǎn)單分析就先到這里,我以后會(huì)慢慢的伴隨著驅(qū)動(dòng)的開發(fā)去分析內(nèi)核,,感謝大家的關(guān)注,。
|
|