概述
FreeBSD可以在PC/AT兼容机器上运行 。CPU是i386,i486,Pentium,
Pentium Pro以及其兼容芯片等 。
1.1.1(略)
1 , 理论地址: 2个13 bit 长 32 bit 长
2 , 线形地址:32 bit 长的空间
3 , 物理地址:32 bit 长的空间
1.1.2进程的虚拟空间
1 , text部分
这部分是执行文件的的text领域 , 也就是机器语言部分 , 对于这个
部分的空间在机器上的物理内存页是共有的 , 还有 , 这部分最后的变量
地址是etext 。
2 , data和bss部分
执行文件的data部分 , 也就是初始化的数据段和执行文件指定的内
存变量 。内存变量在开始的时候以0填充 。这一段空间可以读写 。它的
边界也是以edata和end的地址做结尾 。进程的malloc()等内存分配的
操作的时候 , 地址的增加方向向bss空间进行 。
3 , stack部分
也就是进程执行的时候的stack空间 , 这部分空间(从地址的最高位
开始可以伸缩) , 其对于物理内存 , 伸缩程度由核心自动执行 。
1.2 kernel的configure
freebsd的kernel构成文件在/usr/src/sys的目录下面 。下面的子目录做一个
介绍 。
compile 编译核心的目录 。
conf configure的目录 。
ddb 核心调试的sounre code的目录 。
dev 一部分的drivers的source code的目录 。
gnu 浮点运算的仿真以及ex2fs文件系统的source code目录 。
i386 依赖于pc/at机器的目录 , 以下介绍它的字目录 。
apm suspend一些节电程序 。
boot 不是kernel本身的东西 , 只是一些怎么从开机到读入kernel
的boot program的source code 。
conf config的一些依赖data 。
isa isa bus的驱动程序类的source code 。
eisa eisa bus的驱动程序类的source code 。
include 对pc/at的一些include files
i386 对pc/at的一些核心code
ibcs2,Linux 使各类的os的执行文件在freebsd上执行的code
isofs/cd9660
cd-rom在Unix文件系统上操作的的有关code
kern 核心code
libkern 核心库的source code
miscfs 实现unix文件系统的code
msDosfs 在unix上操作ms-dos文件系统的有关code
net 实现network功能的基本部分code
netatalk
实现appletalk network功能code
netinet 实现internet network功能的code
netipx 实现ipx功能的code
netns 实现ns network的code
netkey 实现网络加密部分的功能的code
nfs 实现nfs服务
pc98 对于pc98的支持
pccard 对pcmcia的支持
pci 对pci bus的驱动程序的source code
scsi 对cd-rom , hard disk,tape 等的scsi驱动程序的source code
sys 独立于机器体系结构的一部分code
ufs unix file system 的支持code
vm 虚拟内存管理的部分
1.2.1配置的操作----config command
在root权限下 , config , make实行后 , 可以得到简单的kernel 。
*configure file
移动到/usr/src/sys/i386/config看看 。
GENERIC 从cd-rom等安装freebsd的时候对应于defaule kernel
的配置file
LINT kernel组合功能的网罗的的配置file
下面4个是对配置很有必要的的依赖data file
Makefile.386 config生成的Makefile file的template.
devices.i386 对于unix filesystem可能的block型的device
名字和major号的对照表
files.i386 记录kernel功能组合的基础上 , 依赖于pc/at
机器的功能名称和各种功能实现的source code
file的名字表 。
options.i386 记录配置项目的表 。
还有 , majors.i386是记录对应驱动器的I/O表和major号的一个文件 。
于核心配置没关系 。
对于新的i/o设备 , 如果要做device driver,对pc/at,要在files.i386(没
有的话在/usr/src/sys/conf/files)追加相应的行 , 不然就不能把它加入
到核心里面 。
追加的格式为
相对path名 optional device-name device-driver
对于配置文件 , 首先 , 要设置cpu , bus , i/o设备,多少用户等 。例如对于GENERIC
推荐阅读
- Solaris 10:网络计算的开源核心平台
- 人参花的功效与作用人参花的禁忌人群
- Solaris10 SMF服务管理概要
- 红外线烤灯的功效与作用 红外线烤灯有什么作用
- 铁马鞭的功效与作用 铁马鞭的功效与作用是什么
- 鸡鸣散的功效与作用 鸡鸣散有什么功效
- 冬春多冻害果树早预防
- ZFS时代FreeBSD系统的数据冗余策略
- 玉米汁的功效与作用 玉米汁的禁忌
- 易筋经的功效与作用易筋经的好处