动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 操作系统 > FreeBSD教程
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ FreeBSD教程 ]的信息

本月文章推荐
.自订 FreeBSD Kernel (系统核心).
.在FreeBSD中添加用户.
.FreeBSD上的NFS.
.怎麽样设定 telnet prompt ?.
.FreeBSD 简介.
.FreeBSD下有关设备名,分区和moun.
.教你制作可以随身携带的FreeBSD系.
.如何在 FreeBSD 上使用 UPS.
.怎样编译FreeBSD内核.
.FreeBSD开发环境解决方案.
.FreeBSD 4.0 Kernel Hacking Gui.
.FreeBSD命令adjkerntz简介(调节改.
.FreeBSD SNP 4.inetd.conf设定.
.Ports & Package.
.FreeBSD 4.0 Kernel Hacking Gui.
.FreeBSD命令 lastcomm介绍 3.实际.
.FreeBSD kernel 编译大法(一).
.FreeBSD SNP 2.Server端--自我测.
.FreeBSD下Apache2.0运行模型分析.
.FREEBSD升级及优化全攻略.

FreeBSD 5-CURRENT 的内核配置与优化

发表日期:2005-3-28 |


在本文针对4-STABLE的那个版本中已经讨论了削减系统功能的意义。

在某种程度上,对于FreeBSD 5-CURRENT而言,配置内核是必需的。

FreeBSD 5.x是一个充满新特性的系统。目前,5.0-RELEASE已经正式推出,但第五版本这个分支仍然是CURRENT分支,在它成为5-STABLE之前,我们可能还需要等待数个月的时间,这可能意味着一个到两个RELEASE版本。

这篇文章将主要着眼于FreeBSD 5.0-CURRENT的内核配置。据我所知,这篇文章的内容至少在2003年3月以前应该是完全适合的,而在FreeBSD 5-STABLE正式标注之后,也不应该再出现什么本质的变化。当然,保险起见,我个人建议您在进行改动,并将其应用到自己的系统上之前,首先备份内核:

cd /boot
cp -R kernel kernel.good

这样,一旦出现意外情况,您将可以通过在启动时选择/boot/kernel.good/kernel来正确地引导系统。

说到这里,我不得不指出FreeBSD 5在内核文件放置方面的一个非常显著的变化。在5.0之前,内核及模块分别在/kernel和/modules/文件夹中;5-CURRENT为了便于管理,将内核及其模块都放到了/boot/kernel/文件夹。这一变化使得旧版的loader(Cool程序在默认情况下不能正确加载内核文件,当然,指定正确的文件名仍然可以保证4.x的loader(Cool程序正确加载FreeBSD 5内核,但我依旧倾向于按照UPDATING所说的那样,把升级boot, loader这一系列初启程序作为系统升级的一部分。

在正式开始介绍FreeBSD 5的内核配置之前,我还必须介绍5.0新的device.hints配置文件。Device.hints配置文件位于/boot/文件夹,对于没有ISA设备的系统,这个文件基本上是没用的。这个文件取代了FreeBSD 4.x一直沿用的user config机制。FreeBSD开发组期待将来的某个时间重新加入user config机制,以让loader更加人性化,但直到笔者撰写这篇文章的时候为止,这一机制的新实现仍然没有完成。

device.hints由一系列符合下面句法的语句组成:

hint...=

如果你熟悉4.x上的loader(Cool配置指令,那么只需要做少量的转换就可以解决问题:

iomem 改为 maddr iosiz 改为 msize

当然,世界是美好的,FreeBSD提供了一个awk脚本来解决问题。这个脚本位于src/sys/i386/conf/,它的名字是gethints.awk。

贫了这么多,一些读者可能已经等急了。但我还得说一个FreeBSD 5和4的重大区别,那就是LINT没了。

拿掉LINT这事儿跟device.hints有关,为了不把话题扯得太远,我不打算详细描述关于这个文件的故事;先说要紧的:首先,类似4.x风格的LINT文件现在叫NOTES;其次,如果你一定要获得LINT的话,在src/sys/i386/conf里面执行下面的指令:

make LINT

即可。下面我继续“传统上”的那个内核配置文件。这个配置文件是由GENERIC改过来的,当然,删除了一些没必要的注释。红色表示我删除的东西,而蓝色表示我添进去,或做了修改的那些设置。绿色表示我没添进去,但在NOTES中曾出现过的有用的配置。

#
# DELPHIJ -- Kernel configuration file for FreeBSD/i386
#

machine i386
cpu I486_CPU       # 默认已经没有i386了,但i486…
cpu I586_CPU       # 还有这个i586都不适应我的情况
cpu I686_CPU
ident DELPHIJ      # 签上我的名Smile
maxusers 0

# VMWare对于这条指令的模拟有问题。加上这个选项可以大大地
# 提高系统速度;我没有选中它,因为我的系统需要SMP,而且
# 不是VMWare虚拟机Smile SMP和这条选项的连用结果是系统崩溃!
options CPU_DISABLE_CMPXCHG

#静态连接device.hints,而不是从/boot/device.hints加载
#hints "GENERIC.hints" #默认的文件

makeoptions DEBUG=-g # 在内核中包括gdb(1)调试符号-
                     # 出问题之前,不管我事儿……

# SCHED_4BSD是传统的、经过证明的BSD调度器。它使用全局的
# 运行队列,它与CPU关系不密切,对SMP的性能不是最好的。
# 它有非常好的交互性和优先级选择机制。
#
# SCHED_ULE是新的试验性的调度器,它是为SMP设计的,但在单
# 处理器上运行一样出色。使用这个调度器的用户需要有对出现
# 非预期的崩溃和进行反馈做好心理准备。
options SCHED_4BSD #4BSD scheduler
options SCHED_ULE  #ULE scheduler,SMP上快许多
options INET       #IPv4协议
options INET6      #IPv6通讯协议-外围设备不让我这么干:~(
options FFS        #必须有的FFS(Unix文件系统)
options SOFTUPDATES #SoftUpdates支持,相信我,加上没错的
options UFS_ACL     #ACL(访问控制表)支持
options UFS_DIRHASH #访问大目录时,以少量内存为代价提高性能
options MD_ROOT #MD作为根设备
options NFSCLIENT #NFS客户
options NFSSERVER #NFS服务
options NFS_ROOT #NFS作为跟文件系统; 需要NFSCLIENT
options MSDOSFS #MSDOS文件系统
options CD9660 #ISO 9660文件系统

options PROCFS #进程文件系统(需要PSEUDOFS)
options PSEUDOFS #伪文件系统框架
options COMPAT_43 #兼容 BSD 4.3 [必须保留!]
options COMPAT_FREEBSD4 #兼容FreeBSD4
options SCSI_DELAY=2000 #探测SCSI前的延时
options KTRACE  #ktrace(1)支持
options SYSVSHM #SYSV共享内存
options SYSVMSG #SYSV消息队列
options SYSVSEM #SYSV信号量
options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B实时扩展
options KBD_INSTALL_CDEV #/dev中安装CDEV
options AHC_REG_PRETTY_PRINT # 调试时显示寄存器bit域
# 驱动程序将因此增大约128K
options AHD_REG_PRETTY_PRINT # 同上,将增大约215K

# current分支调试[我不打算翻译了,如果你到了能调试内核
# 的层次,应该能看懂Smile]
options DDB #Enable the kernel debugger
options INVARIANTS #Enable calls of extra sanity checking
options INVARIANT_SUPPORT #Extra sanity checks of internal structures, required by INVARIANTS
options WITNESS #Enable checks to detect deadlocks and cycles
options WITNESS_SKIPSPIN #Don't run witness on spinlocks for speed

# SMP支持
options SMP # Symmetric MultiProcessor Kernel
options APIC_IO # Symmetric (APIC) I/O

device isa
device eisa
device pci

# 软驱支持
device fdc

# DEVICE_POLLING可以让dc, fxp和sis设备更平稳地运行,不幸
# 的是它不能和SMP连用。
options DEVICE_POLLING

options AUTO_EOI_1     # 8259A自动中断结束控制方式。
                       # 可以提高系统性能
options AUTO_EOI_2     # 没证明过这东西能用,我的机器崩了Sad

# 将这个文件保存到内核,这样将来可以用
# strings -n 3 /boot/kernel/kernel | sed -n 's/^___//p'
# 找回
options INCLUDE_CONFIG_FILE

options IPSEC          #IPSec内核级支持,与IPSec互斥

options FAST_IPSEC     # 快速IPSEC实现(需要相关硬件)

options IPFILTER       # ipfilter支持。

options RANDOM_IP_ID   # 此选项有效阻止远程探测TCP报文生成

options TCP_DROP_SYNFIN #丢弃SYN+FIN的TCP包

options ZERO_COPY_SOCKETS # 这是对4.4BSD设计缺陷的重大改进
                          # 可以极大地提高网络性能

device crypto           # 核心crypto(加密)支持
device cryptodev        # /dev/crypto硬件访问支持

device hifn             # Hifn 7951, 7781, etc.

options PANIC_REBOOT_WAIT_TIME=0 # panic时重启等待时间

# 请参考tuning(7)
options NMBCLUSTERS=4096 # 对于我的服务器合适的NMBCLUSTER

makeoptions CONF_CFLAGS=-fno-builtin #不允许使用 memcmp等

# 应用程序最大、堆栈、默认内存大小。内存2GB
options MAXDSIZ=(2047UL*1024*1024)
options MAXSSIZ=(128UL*1024*1024)
options DFLDSIZ=(2047UL*1024*1024)

# ufs1 扩展属性支持。Ufs2不需要
options UFS_EXTATTR
options UFS_EXTATTR_AUTOSTART

# GEOM支持
options GEOM_AES
options GEOM_APPLE
options GEOM_BDE
options GEOM_BSD
options GEOM_GPT
options GEOM_MBR
options GEOM_PC98
options GEOM_SUNLABEL

options QUOTA          # 磁盘配额支持

# 优化SMP性能,把mutex(互斥体)变为自旋锁。我不敢用……
options ADAPTIVE_MUTEXES

# ATA 和 ATAPI 设备
device ata
device atadisk # ATA 磁盘驱动器
device atapicd # ATAPI光驱
device atapifd # ATAPI软驱
device atapist # ATAPI磁带机(财主的玩意Smile
options ATA_STATIC_ID #静态设备标号

# SCSI 控制器
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
device ahd # AHA39320/29320 and onboard AIC79xx devices
device amd # AMD 53C974 (Tekram DC-390(T))
device isp # Qlogic family
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')
device trm # Tekram DC395U/UW/F DC315U adapters

device adv # Advansys SCSI adapters
device adw # Advansys wide SCSI adapters
device aha # Adaptec 154x SCSI adapters
device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device bt # Buslogic/Mylex MultiMaster SCSI adapters

device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50

# 通过SCSI接口的RAID控制器
device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
device ciss # Compaq Smart RAID 5*
device dpt # DPT Smartcache III, IV - See NOTES for options!
device iir # Intel Integrated RAID
device mly # Mylex AcceleRAID/eXtremeRAID

# SCSI设备
device scbus # SCSI bus (required)
device ch # SCSI media changers
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
device ses # SCSI Environmental Services (and SAF-TE)

# RAID控制器
device aac # Adaptec FSA RAID
device aacp # SCSI passthrough for aac (requires CAM)
device amr # AMI MegaRAID
device ida # Compaq Smart RAID
device mlx # Mylex DAC960 family
device pst # Promise Supertrak SX6000
device twe # 3ware ATA RAID

# atkbdc0同时用于控制键盘和PS/2鼠标器
device atkbdc # AT键盘控制器
device atkbd # AT键盘
device psm # PS/2 mouse

device vga # VGA显示卡

# 启动画面和屏幕保护程序[我的服务器平时不接显示器]
device splash

# syscons是默认的控制台驱动
device sc

# 启用VT220兼容的控制台驱动pcvt
#device vt
#options XSERVER # support for X server on a vt console
#options FAT_CURSOR # start with block cursor

device agp # AGP支持

# 浮点运算支持-必须保留
device npx

# 电源管理
#device apm
# i8254挂起及恢复支持
device pmtimer

# PCCARD (PCMCIA)支持
device cbb # cardbus (yenta) bridge
#device pcic # ExCA ISA and PCI bridges
device pccard # PC Card (16-bit) bus
device cardbus # CardBus (32-bit) bus

# 串口(COM)支持
device sio # 8250, 16[45]50 based serial ports

# 并口支持
device ppc
device ppbus # Parallel port bus (required)
device lpt # Printer
device plip # TCP/IP over parallel
device ppi # Parallel port interface device
#device vpo # Requires scbus and da


# 独立 PCI 以太网卡支持,这些设备不需要miibus,
# 非SMP情况下还支持DEVICE_POLLING,可惜我一个也没有Sad
device de # DEC/Intel DC21x4x (``Tulip'')
device em # Intel PRO/1000 adapter Gigabit Ethernet Card
device txp # 3Com 3cR990 (``Typhoon'')
device vx # 3Com 3c590, 3c595 (``Vortex'')

device miibus # MII bus支持

# 以下PCI以太网卡需要MII bus支持才能用
device dc # DEC/Intel 21143 and various workalikes
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (``Starfire'')
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device ste # Sundance ST201 (D-Link DFE-550TX)
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 ``EPIC'')
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
device bge # Broadcom BCM570xx 千兆以太网卡

# ISA网卡
device cs # Crystal Semiconductor CS89x0 NIC
# 'device ed' 需要 'device miibus'
device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
device ex # Intel EtherExpress Pro/10 and Pro/10+
device ep # Etherlink III based cards
device fe # Fujitsu MB8696x based cards
device lnc # NE2100, NE32-VL Lance Ethernet cards
device sn # SMC's 9000 series of ethernet chips
device xe # Xircom pccard ethernet

# ISA设备,有个性的代码……
#device le

# Wireless NIC cards
device wlan # 802.11 support
device an # Aironet 4500/4800 802.11 wireless NICs.
device awi # BayStack 660 and others
device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
#device wl # Older non 802.11 Wavelan wireless NIC.

# 伪设备
device random # 随机数采集发生器(/dev/random, /dev/urandom)
device loop   # 自环网络
device ether  # 以太网支持
device sl     # 内核级 SLIP
device ppp    # 内核级 PPP
device tun    # 包隧道(ppp(Cool, nos-tun(Cool)
device pty    # 伪tty (telnet等等)
device md     # 虚拟盘
device gif    # IPv6对IPv4隧道
device faith  # IPv6对IPv4转发

# `bpf'伪设备将启用伯克利数据包过滤器。
# 小心由此带来的管理问题
pseudo-device bpf #Berkeley packet filter

# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices
device ugen # Generic
device uhid # "Human Interface Devices"
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
device urio # Diamond Rio 500 MP3 player
device uscanner # Scanners
# USB Ethernet, requires mii
device aue # ADMtek USB ethernet
device cue # CATC USB ethernet
device kue # Kawasaki LSI USB ethernet

粗略地说说上面的选择。COM, PPC这些东西不用我说,这台机器并不需要连接打印设备,也不需要连接COM口键盘,所以一律去掉。使用ULE调度器的原因是为了给FreeBSD的开发做点贡献,如果你不喜欢冒险的话,可以考虑使用4BSD的,当然,话说回来,如此在意稳定性的话,用4-STABLE可能是更好的选择。

上述内核配置文件需要最新的CURRENT代码。如果你没有和FreeBSD中央CVS服务器同步的话,那么你可能需要首先同步代码;如果还有问题,希望能收到你的来信

上一篇:在FREEBSD 5.2中使用Pureftpd + MySQL + Pureftpd_ph 人气:8530
下一篇:关于FreeBSD 5优化的补充 人气:7701
浏览全部FreeBSD的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-14 25175学生成绩管理系统 v2.88
2008-10-14 冰雪CMS v2.0 bulid 081013
2008-10-14 Modoer多功能点评系统 v1.1 Beta
2008-10-14 乐风CMS乐风影视版 v2008.10.13
2008-10-14 FeitecCMS 40T免费资源网整站源码
2008-10-14 Asoft签到管理系统 v3.0 Pack2
2008-10-14 金博人才招聘求职网黄金版 v4.2
2008-10-14 游戏推广无限制版本
2008-10-14 AmEav WebSite 业网站管理系统 英
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成