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

1 FreeBSD 核心( 二 )


Machine "i386"
cpu "I386_CPU"
cpu "I486_CPU"
cpu "I586_CPU"
cpu "I686_COU"
ident GENERIC
maxusers 10
當(dāng)作為server時(shí)候 , 應(yīng)該把最大user設(shè)置大一點(diǎn) , 以提高系統(tǒng)性能 。
下一步 , 指定options , 對(duì)于GENERIC
options MATH_EMULATE #support for x87 emulation
options INET #interNETworing
options FFS #Berkeley Fast Filesystem
options NFS #Network Filesystem
......
options指定的名字xxx等 , 如果在/usr/src/sys/conf/options或者在
/usr/src/sys/i386/conf/options.i386中記載的時(shí)候 , 應(yīng)在對(duì)應(yīng)的opt_XXX.h中寫入
。沒有的話 , 作為cc命令行的參數(shù)定義"-D"在Makefile里面追加 。對(duì)于XXX的格式應(yīng)該

相對(duì)path名 optional xxx
下一步 , 對(duì)于config
config kernel root on wd0
(略)
配置文件剩下的部分應(yīng)該是bus,i/o等一些硬件配置 , 一般有controller,device,
disk,tape四類 。例如
controller isa0
controller eisa0
controller pci0
等 。
第二層的device和controller , 記錄了一些bus設(shè)備的連接 。ISA的情況是
device device_name at isa? 參數(shù)
controller controller_name at isa? 參數(shù)
EISA和PCI就相對(duì)簡單一點(diǎn):
device device_name
controller controller_name
device_name里指定的設(shè)備名是 , 串口 , 并口 , 網(wǎng)絡(luò)等裝置 。
第三層的disk和tape為
disk disk_name at 控制設(shè)備名 drive 號(hào)
tape tape_name at 控制設(shè)備名 drive 號(hào)
SCSI接口卡作為第二層的控制裝置記錄的同時(shí)
controller scbus0
作為通用的scsi控制設(shè)備 。因此 , 對(duì)于它的hard disk,tape,cd-rom,mo設(shè)備 , 有
device sd0
device st0
device cd0
device od0
等 , 它可以自動(dòng)識(shí)別和分配號(hào)碼 。
對(duì)于其他的scsi設(shè)備 , 有
device pt0 at scbus?
這些東西(bus,scsi,i/o) , 在生成的ioconf.c以及相應(yīng)的include中有反映 。
configure的最后 , 不是一些物理設(shè)備 , 而是kernel內(nèi)部的一些軟設(shè)置
pseudo-device 理論設(shè)備名
首先 , 要考慮以下兩個(gè)設(shè)備:
pseudo-device pty 16 #ttys - can go as high as 256
pseudo-device log #syslog interface (/dev/klog)
network使用的場合 , 應(yīng)該有下面兩個(gè)
pseudo-device loop
pseudo-device ether
這種情況下 , 最好有
pseudo-device bpfilter 4 #berkeley packet filter
pseudo-device tun 1 #Tunnel driver ( PPP)
想做floppy的時(shí)候 , 要
pseudo-device vn #Vnode driver ( turns a file into a device)
(代續(xù))



FreeBSD核心探討(翻譯)2

1.3 FreeBSD boot之前的工作
1.3.1pc/at機(jī)器的boot順序
hard disk的最前面的一個(gè)block(512byte),叫做master boot recorder(MBR).這
里有啟動(dòng)限定的program和分區(qū)的信息 。分區(qū)信息是指對(duì)于一個(gè)區(qū)是16byte長 , 最多
只能有4個(gè)區(qū) 。16byte的內(nèi)容是 , 分區(qū)哪里開始 , 哪里結(jié)束 。哪種os , 能否啟動(dòng)等 。對(duì)
于freebsd , 安裝的時(shí)候向MBR寫入了boot easy.
磁盤的結(jié)構(gòu)如下圖表示:
block Number
#0 #1 #2 ... #14 #15 #16 #17
-------------------------------------------------------------
disk no used
label
-------------------------------------------------------------
<-boot->|<---------boot2-------------->| |<--unix file system--

FreeBSD用的block#0--#14的15個(gè)block里面 , 含有讀入freebsd的程序 , bootease
只在block#0里面 , 在15個(gè)block中并沒有 。它的作用
。讀入mbr , 找freebsd的分區(qū)
。讀入最初的15個(gè)block , 到物理內(nèi)存中0x0001000
。跳轉(zhuǎn)到相當(dāng)于block#2的內(nèi)存位置
然后 , 屏幕表示為:
。。。
。。。
boot:
(參數(shù)說明略)
它的source是/usr/src/sys/i386/boot/biosboot,make之后 , 生成兩個(gè)文件:
boot1,boot2分別寫入block#1 , block#2--#14中 。
一般 , 一個(gè)物理的unix分區(qū)理論上可以有8個(gè) , 比如swap , unix system等 。

推薦閱讀