日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

Linux 核心--15.Linux內(nèi)核資源( 二 )



內(nèi)存管理
這部分代碼主要位于mm目錄中但其處理器結(jié)構(gòu)相關(guān)部分被放在arch/*/mm中 。頁(yè)面出錯(cuò)處理代碼位于mm下的 memory.c文件中而內(nèi)存映射與頁(yè)面cache代碼位于filemap.c中 。buffer cache則在mm/buffer.c中實(shí)現(xiàn), swap cache位于mm/swap_state.c和mm/swapfile.c中 。

核心
大多數(shù)通用代碼位于kernel目錄下而處理器相關(guān)代碼被放在arch/*/kernel中 。調(diào)度器位于kernel/sched.c 而fork代碼位于kernel/fork.c中 。底層部分處理代碼位于include/linux/interrupt.h中 。task_struct的 描敘則在/linux/sched.h中可以找到 。

PCI
PCI偽設(shè)備驅(qū)動(dòng)位于drivers/pci/pci.c且其系統(tǒng)通用定義放在include/linux/pci.h中 。每個(gè)處理器結(jié)構(gòu) 具有特殊的PCI BIOS代碼,Alpha AXP的位于arch/alpha/kernel/bios32.c中 。

進(jìn)程間通訊
所有這些代碼都在ipc目錄中 。系統(tǒng)V IPC對(duì)象都包含一個(gè)ipc_perm結(jié)構(gòu),它在include/linux/ipc.h中描敘 。系統(tǒng)V消息在ipc/msg.c中實(shí)現(xiàn),共享內(nèi)存在ipc/shm.c而信號(hào)燈位于ipc/sem.c中 。管道在ipc/pipe.c中實(shí)現(xiàn) 。

中斷處理
核心的中斷處理代碼總是與微處理器結(jié)構(gòu)相關(guān) 。Intel系統(tǒng)的中斷處理代碼位于arch/i386/kernel/irq.c中, 其定義位于include/asm-i386/irq.h中 。

設(shè)備驅(qū)動(dòng)
Linux核心源碼的大多數(shù)都是設(shè)備驅(qū)動(dòng) 。所有Linux的設(shè)備驅(qū)動(dòng)源碼都放在drivers目錄中并分成以下幾類:

/block
塊設(shè)備驅(qū)動(dòng)包括IDE(在ide.c中)驅(qū)動(dòng) 。如果你想尋找這些可包含文件系統(tǒng)的設(shè)備的初始化過(guò)程 則應(yīng)該在drivers/block/genhd.c中的device_setup() 。當(dāng)安裝一個(gè)nfs文件系統(tǒng)時(shí)不但要初始化 硬盤(pán)還需初始化網(wǎng)絡(luò) 。塊設(shè)備包括IDE與SCSI設(shè)備 。

/char
此目錄包含字符設(shè)備的驅(qū)動(dòng),如ttys,串行口以及鼠標(biāo) 。

/cdrom
包含所有Linux CDROM代碼 。在這里可以找到某些特殊的CDROM設(shè)備(如Soundblaster CDROM) 。IDE接口的CD驅(qū)動(dòng)位于drivers/block/ide-cd.c中而SCSI CD驅(qū)動(dòng)位于drivers/scsi/scsi.c中 。

/pci
它包含了PCI偽設(shè)備驅(qū)動(dòng)源碼 。這里可以找到關(guān)于PCI子系統(tǒng)映射與初始化的代碼 。另外位于 arch/alpha/kernel/bios32.c中的Alpha AXP PCI補(bǔ)丁代碼也值得一讀 。

/scsi
這里可以找到所有的SCSI代碼以及Linux支持的SCSI 設(shè)備的設(shè)備驅(qū)動(dòng) 。

/net
包含網(wǎng)絡(luò)驅(qū)動(dòng)源碼,如tulip.c中的DECChip 21040 PCI以太網(wǎng)驅(qū)動(dòng) 。

/sound
所有的聲卡驅(qū)動(dòng)源碼 。

文件系統(tǒng)
EXT2文件系統(tǒng)的源碼位于fs/ext2中,其數(shù)據(jù)結(jié)構(gòu)定義位于include/linux/ext2_fs.h, ext2_fs_i.h 以及 ext2_fs_sb.h中 。虛擬文件系統(tǒng)數(shù)據(jù)結(jié)構(gòu)在include/linux/fs.h中描敘且其代碼在fs/*中 。buffer cache 和update核心后臺(tái)進(jìn)程在fs/buffer.c中實(shí)現(xiàn) 。

網(wǎng)絡(luò)
網(wǎng)絡(luò)代碼位于net目錄而大多數(shù)包含文件位于include/net中 。BSD套接口代碼位于net/socket.c中 。IPV4的 INET套接口代碼位于net/ipv4/af_inet.c中 。通用協(xié)議支撐代碼(包括sk_buff處理過(guò)程)位于net/core中, 同時(shí)TCP/IP網(wǎng)絡(luò)代碼位于net/ipv4中 。網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)位于drivers/net中 。

模塊
核心模塊代碼部分位于核心中部分位于modules包中 。核心代碼位于kernel/modules.c且其數(shù)據(jù)結(jié)構(gòu)與核心 后臺(tái)進(jìn)程kerneld消息位于include/linux/module.h和include/linux/kerneld.h目錄中 。同時(shí)必要時(shí)需查閱 include/linux/elf.h中的ELF文件格式 。

推薦閱讀