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

1 FreeBSD 核心

概述
FreeBSD可以在PC/AT兼容機(jī)器上運(yùn)行 。CPU是i386,i486,Pentium,
Pentium Pro以及其兼容芯片等 。
1.1.1(略)
1 , 理論地址: 2個(gè)13 bit 長 32 bit 長
2 , 線形地址:32 bit 長的空間
3 , 物理地址:32 bit 長的空間
1.1.2進(jìn)程的虛擬空間
1 , text部分
這部分是執(zhí)行文件的的text領(lǐng)域 , 也就是機(jī)器語言部分 , 對于這個(gè)
部分的空間在機(jī)器上的物理內(nèi)存頁是共有的 , 還有 , 這部分最后的變量
地址是etext 。
2 , data和bss部分
執(zhí)行文件的data部分 , 也就是初始化的數(shù)據(jù)段和執(zhí)行文件指定的內(nèi)
存變量 。內(nèi)存變量在開始的時(shí)候以0填充 。這一段空間可以讀寫 。它的
邊界也是以edata和end的地址做結(jié)尾 。進(jìn)程的malloc()等內(nèi)存分配的
操作的時(shí)候 , 地址的增加方向向bss空間進(jìn)行 。
3 , stack部分
也就是進(jìn)程執(zhí)行的時(shí)候的stack空間 , 這部分空間(從地址的最高位
開始可以伸縮) , 其對于物理內(nèi)存 , 伸縮程度由核心自動執(zhí)行 。
1.2 kernel的configure
freebsd的kernel構(gòu)成文件在/usr/src/sys的目錄下面 。下面的子目錄做一個(gè)
介紹 。
compile 編譯核心的目錄 。
conf configure的目錄 。
ddb 核心調(diào)試的sounre code的目錄 。
dev 一部分的drivers的source code的目錄 。
gnu 浮點(diǎn)運(yùn)算的仿真以及ex2fs文件系統(tǒng)的source code目錄 。
i386 依賴于pc/at機(jī)器的目錄 , 以下介紹它的字目錄 。
apm suspend一些節(jié)電程序 。
boot 不是kernel本身的東西 , 只是一些怎么從開機(jī)到讀入kernel
的boot program的source code 。
conf config的一些依賴data 。
isa isa bus的驅(qū)動程序類的source code 。
eisa eisa bus的驅(qū)動程序類的source code 。
include 對pc/at的一些include files
i386 對pc/at的一些核心code
ibcs2,Linux 使各類的os的執(zhí)行文件在freebsd上執(zhí)行的code
isofs/cd9660
cd-rom在Unix文件系統(tǒng)上操作的的有關(guān)code
kern 核心code
libkern 核心庫的source code
miscfs 實(shí)現(xiàn)unix文件系統(tǒng)的code
msDosfs 在unix上操作ms-dos文件系統(tǒng)的有關(guān)code
net 實(shí)現(xiàn)network功能的基本部分code
netatalk
實(shí)現(xiàn)appletalk network功能code
netinet 實(shí)現(xiàn)internet network功能的code
netipx 實(shí)現(xiàn)ipx功能的code
netns 實(shí)現(xiàn)ns network的code
netkey 實(shí)現(xiàn)網(wǎng)絡(luò)加密部分的功能的code
nfs 實(shí)現(xiàn)nfs服務(wù)
pc98 對于pc98的支持
pccard 對pcmcia的支持
pci 對pci bus的驅(qū)動程序的source code
scsi 對cd-rom , hard disk,tape 等的scsi驅(qū)動程序的source code
sys 獨(dú)立于機(jī)器體系結(jié)構(gòu)的一部分code
ufs unix file system 的支持code
vm 虛擬內(nèi)存管理的部分
1.2.1配置的操作----config command
在root權(quán)限下 , config , make實(shí)行后 , 可以得到簡單的kernel 。
*configure file
移動到/usr/src/sys/i386/config看看 。
GENERIC 從cd-rom等安裝freebsd的時(shí)候?qū)?yīng)于defaule kernel
的配置file
LINT kernel組合功能的網(wǎng)羅的的配置file
下面4個(gè)是對配置很有必要的的依賴data file
Makefile.386 config生成的Makefile file的template.
devices.i386 對于unix filesystem可能的block型的device
名字和major號的對照表
files.i386 記錄kernel功能組合的基礎(chǔ)上 , 依賴于pc/at
機(jī)器的功能名稱和各種功能實(shí)現(xiàn)的source code
file的名字表 。
options.i386 記錄配置項(xiàng)目的表 。
還有 , majors.i386是記錄對應(yīng)驅(qū)動器的I/O表和major號的一個(gè)文件 。
于核心配置沒關(guān)系 。
對于新的i/o設(shè)備 , 如果要做device driver,對pc/at,要在files.i386(沒
有的話在/usr/src/sys/conf/files)追加相應(yīng)的行 , 不然就不能把它加入
到核心里面 。
追加的格式為
相對path名 optional device-name device-driver

對于配置文件 , 首先 , 要設(shè)置cpu , bus , i/o設(shè)備,多少用戶等 。例如對于GENERIC

推薦閱讀