空想天堂

星期三, 十二月 06, 2006

星期三, 十月 04, 2006

DragonFly内核配置文件翻译(六)

# syscons is the default console driver, resembling an SCO console
device sc0 at isa?

sc0是默认的console驱动,类似于SCO的console。大多数全屏的程序通过像termcap一样的中端数据库访问console,而不管你用的是sc0,或者是vt0以及兼容VT220的console驱动。当你登录的时候,如果全屏的程序在这个console下面运行不正常的话,请设置你的TERM变量为scoansi。

# Enable this and PCVT_FREEBSD for pcvt vt220 compatible console driver
#device vt0 at isa?
#options XSERVER # support for X server on a vt console
#options FAT_CURSOR # start with block cursor
# If you have a ThinkPAD, uncomment this along with the rest of the PCVT lines
#options PCVT_SCANSET=2 # IBM keyboards are non-std

兼容VT220的console驱动,向后兼容VT100/102。在一些有不兼容sc0硬件的笔记本上能够正常工作。同样,登录的时候需要设置TERM边路为vt100或vt220。当网络上有大量不同类型的机器需要连接时,这个驱动会显得很有用。因为sc0设备的termcap或者terminfo记录通常不存在,而vt100是任何平台上普遍存在的。

# Power management support (see LINT for more options)
device apm0 at nexus? disable flags 0x20 # Advanced Power Management

高级电源管理支持。用于笔记本。

# PCCARD (PCMCIA) support
device card
device pcic0 at isa? irq 10 port 0x3e0 iomem 0xd0000
device pcic1 at isa? irq 11 port 0x3e2 iomem 0xd4000 disable

PCMCIA支持。用于笔记本用户的PCMCIA设备。

# Serial (COM) ports
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
device sio1 at isa? port IO_COM2 irq 3
device sio2 at isa? disable port IO_COM3 irq 5
device sio3 at isa? disable port IO_COM4 irq 9

这些是MS-DOS和Windows系统中用COM1到COM4表示的四个串行端口。

便签:如果你在COM4上有一个内置调制解调器,并且在COM2上有一个串行端口,你需要改变调制解调器的IRQ到2(因为技术上的原因,IRQ2=IRQ9),以便Dragonfly能够访问到调制解调器。如果你用的是多功能卡,请察看手册中的sio(4)以获取更多的关于这些行恰当参数的资讯。一些显卡(特别是基于S3芯片的显卡)使用行如0x*2e8这样的IO地址,并且很多廉价的多功能卡不能完全解码16位IO地址空间,这会导致这些多功能卡和显卡冲突导致COM4端口失效。

每个串行端口需要一个唯一的IRQ(除非你使用支持中断共享的多功能卡),所以COM3和COM4默认的IRQ将不能使用。

# Parallel port
device ppc0 at isa? irq 7

ISA总线并行口界面。

device ppbus # Parallel port bus (required)

提供并行口总线支持。

device lpt # Printer

支持并行口打印机。

便签:以上三个选项需要开启并行打印机支持。

device plip # TCP/IP over parallel

并行网络界面驱动。

星期日, 九月 24, 2006

DragonFly内核配置文件翻译(五)

options ATA_STATIC_ID #Static device numbering

创建静态的控制器号码(和旧的驱动相似),否则设备的号码将会被动态分配。

# ATA and ATAPI devices
device ata0 at isa? port IO_WD1 irq 14
device ata1 at isa? port IO_WD2 irq 15

上面的选项用于旧的非PCI系统

# SCSI Controllers
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
device amd # AMD 53C974 (Teckram DC-390(T))
device dpt # DPT Smartcache - See LINT for options!
device isp # Qlogic family
device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets)

device adv0 at isa?
device adw
device bt0 at isa?
device aha0 at isa?
device aic0 at isa?

SCSI控制器。请注释掉你的系统中没有的设备。如果你仅仅拥有一个IDE系统,你可以把以上选项一起删除。

# SCSI peripherals
device scbus # SCSI bus (required)
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI
access)

SCSI周边设备。重复一下,你可以注释掉系统没有的设备,或者如果你只有IDE的话可以全部删掉。

便签:

USB设备 umass(4)以及其它少数驱动会使用SCSI子系统,即使它们并不是真正的SCSI设备。因此如果内核配置文件里面有类似这种设备的话,必须要确定没有把SCSI support移除。

# RAID controllers
device ida # Compaq Smart RAID
device amr # AMI MegaRAID
device mlx # Mylex DAC960 family

RAID控制器支持。如果你没有RAID设备,请把上面的选项注释掉。

# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc0 at isa? port IO_KBD

键盘控制器(atkbdc)给AT键盘以及PS/2定位设备提供I/O服务。键盘控制器是上述键盘驱动(atkbd)和PS定位设备驱动(psm)所必需的。

device atkbd0 at atkbdc? irq 1

atkbd驱动,和atkbdc一起提供AT84键盘和AT增强型键盘这些AT接口键盘的访问通道。

device psm0 at atkbdc? irq 12

PS/2鼠标支持。有PS/2鼠标的就用这个设备。

device vga0 at isa?

显卡驱动。

# splash screen/screen saver
pseudo-device splash

启动的时候显示Splash screen!同时屏幕保护也需要这个。

星期日, 九月 10, 2006

DragonFly内核配置文件翻译(四)

打开内核中的Soft Update选项,将会有助于提高磁盘的访问速度。即使是内核自带的功能,你也必须要指定相应的磁盘来打开这个选项。察看mount(8)的输出,你可以看到你的系统盘是否起用Soft Update选项。如果你没看到soft-updates选项,那么你可能需要用tunefs(8)来激活它(对于已经存在的文件系统)或者newfs(8)来创建一个新的文件系统。

options MFS #Memory Filesystem
options MD_ROOT #MD is a potential root device

这个是一个内存映射(memory-mapped)文件系统。最基本的是像一个虚拟磁盘(RAM DISK),如果你有大量的交换空间并且想要体现它们的优势话,可以用虚拟磁盘来快速存取一些临时文件。因为很多程序的临时文件都存放在/tmp下面,所以将这种MFS分区挂载到/tmp无疑是一种很理想的方法。参照下面的做法将一个MFS虚拟磁盘挂载到/tmp,将下面的行写入/etc/fstab:

/dev/ad1s2b /tmp mfs rw 0 0

现在你可以选择直接重启或者运行mount /tmp

options NFS #Network Filesystem
options NFS_ROOT #NFS usable as root device, NFS required

网络文件系统。除非你想通过TCP/IP从一台UNIX®文件服务器挂载一个分区,否则你可以将这些选项注释掉。

options MSDOSFS #MSDOS Filesystem

MS-DOS®文件系统。如果你不打算在启动的时候挂载DOS格式的硬盘分区的话,你可以安全地将这个选项注释掉。在你第一次挂载一个DOS分区的时候,MSDOSFS会被自动加载。并且通过mtools软件(在pkgsrc®里)你可以访问DOS格式的软盘而不用去加载/卸载它们,并且mtools也不需要MSDOSFS。

options CD9660 #ISO 9660 Filesystem
options CD9660_ROOT #CD-ROM usable as root, CD9660 required

ISO 9660文件系统(光盘常用格式)。如果你没有CDROM或者仅仅是偶尔加载数据CD的话(因为它会在你第一次挂载数据CD的时候被自动加载),你可以把这个选项注释掉。而其它的音乐CD(Audio CD)则不需要这个选项。

options PROCFS #Process filesystem

进程文件系统。这是一个挂载到/proc的伪文件系统,你可以从一些程序(如ps(1))中获取更多的正在运行的进程信息。

options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]

兼容4.3BSD。保留这个选项。如果注释掉的话一些程序会有奇怪的表现。

options SCSI_DELAY=15000 #Delay (in ms) before probing SCSI

这个选项会让kernel在加载每一个SCSI设备之前等待15秒。如果你只有IDE硬盘,你可以直接忽略它;如果你想减少等待的时间从而加速启动,你可以减少这个选项的值,比如5秒(5000 ms)。当然,如果你这样做了但是DragonFly因为没有足够的时间而去识别你的SCSI设备的话,你还是需要将这个值调回来。

options UCONSOLE #Allow users to grab the console

允许用户独占控制台(此处翻译不准确,原文是grab the console),对于X用户比较有用。举个例子,你可以通过xterm -C来创建一个控制台,那么你可以看到任何write(1),talk(1),以及其它你收到的消息,就象接受来自内核的控制台消息一样。

options USERCONFIG #boot -c editor

这个选项允许你从启动菜单启动配置编辑器(configuration editor)

options VISUAL_USERCONFIG #visual boot -c editor

这个选项允许你从启动菜单启动一个虚拟的配置编辑器(visual configuration editor)

options KTRACE #ktrace(1) support

打开进程追踪,有利于出错(debugging)

options SYSVSHM #SYSV-style shared memory

这个选项用于为System V提供共享内存。最常见的用处是X的XSHM扩展,用于加速很多完全图形化的程序。如果你使用X,你需要明确的包含这个选项。

options SYSVSEM #SYSV-style semaphores

System V信号支持。很少使用,同样,仅仅往内核添加了很少的几百字节。

options SYSVMSG #SYSV-style message queues

System V消息支持。和上面一样,仅仅加了几百字节。

便签:ipcs(1)命令会列出正在使用System V的所有进程。

options P1003_1B #Posix P1003_1B real-time extensions
options _KPOSIX_PRIORITY_SCHEDULING

1993 POSIX®中加入的实时性扩展(Real-time extensions)。某些ports中的程序会用到(比如StarOffice™)

options ICMP_BANDLIM #Rate limit bad replies

这个选项启用ICMP带宽限制错误回复。通常你需要打开这个选项,这样会帮助你保护服务器免遭DoS包的攻击。

# To make an SMP kernel, the next two are needed
#options SMP # Symmetric MultiProcessor Kernel
#options APIC_IO # Symmetric (APIC) I/O

上面的选项是SMP支持所必须的。

device isa

任何DragonFly支持的计算机会有一个isa设备,即使你没有isa插槽你也不要将这个选项移除。如果你有一台IBM PS/2(MCA总线),DragonFly现在能提供一些有限的支持。如果需要了解更多的MCA支持信息,请参见/usr/src/sys/i386/conf/LINT。

device eisa

如果你用的是EISA主板的话请包含这个选项。这个选项启用EISA总线上的所有设备的自动检测和配置功能。

device pci

如果你用的是PCI总线主板,请包含这个选项。这个选项会自动搜索PCI卡和PCI to ISA入口。

device agp

如果你的系统有AGP的显卡请包含这个选项。将打开AGP支持和主板的AGP GART功能。

# Floppy drives
device fdc0 at isa? port IO_FD1 irq 6 drq 2
device fd0 at fdc0 drive 0
device fd1 at fdc0 drive 1

软驱控制器。fd0代表A:软驱,fd1代表B:软驱

device ata

ATA和ATAPI设备支持的驱动。在现代的机器上一行device ata就可以检测所有的PCI ATA/ATAPI设备了。

device atadisk # ATA disk drives

ATA磁盘驱动需要同时启用这个选项。

device atapicd # ATAPI CDROM drives

ATAPI CDROM设备需要同时启用这个选项。

device atapifd # ATAPI floppy drives

ATAPI 软驱需要同时启用这个选项。

device atapist # ATAPI tape drives

ATAPI 磁带机需要同时启用这个选项。

星期日, 九月 03, 2006

DragonFly内核配置文件翻译(三)

除了上面这些选项,接下来的都是些或多或少的可选项。请阅读下面的便签或者相临的选项获取更多资讯。

#makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols

通常在构建DragonFly内核和大多数脚本的符号的过程中,为了减少安装时的空间,在内核被链接后,并不会包含debug信息。如果你想要测试正在开 发中的分支内核或者开发经过用户自己改变过的DragonFly内核,你可能需要反注释这行。这样当debug信息传给gcc的时候会打开-g选项。

options MATH_EMULATE #Support for x87 emulation

这行会允许内核在你的电脑没有数字协处理器(386或者486SX)的时候去模拟一个协处理器。如果你用的是486DX,或者是386/486SX(带独立的387/487芯片),或者更高型号(奔腾,奔二等),你可以把这行注释掉。

便签:通常DragonFly模拟出来的数字协处理器并不是十分精确。如果你没有数字协处理器,并且你需要很高的精度,那么这里建议你应该改变 GPL_MATH_EMULATE去使用GNU数字支持(GNU math support),GNU数字支持因为授权的原因默认没有被包含进来。

options INET #InterNETworking

网络支持。即使没有联网的打算,你也不比改变它。大多数程序至少需要还回网络(loopback networking)(例如,在你的PC内进行网络连接),所以这个选项本质上其实也是必需的。

options INET6 #IPv6 communications protocols

打开IPV6通信协议。

options FFS #Berkeley Fast Filesystem
options FFS_ROOT #FFS usable as root device [keep this!]

这是最基础的硬盘文件系统。如果你需要从硬盘启动,请不要修改它。

options UFS_DIRHASH #Improve performance on big directories

这个选项提供使用额外内存来加速硬盘读取大目录的功能。如果是大型服务器、交互式工作站的话你应该不要改动这个选项;如果只是一个小型系统,并且内存有限而且磁盘存取速度不是很重要的话,请把这个选项关掉。

星期日, 八月 20, 2006

DragonFly内核配置文件翻译(二)

maxusers n

maxusers选项用来设置许多重要的system table的大小。数字的大小应当粗略的等于你的机器上期望的并发用户数。

(建议)如果你将maxusers的值设置为0,那么系统会自动调整这个值的大小。如果你实在需要自己设定这个值的话,那么请至少设置成4,特别是如果你 要用到X Window或者一些编译软件的时候。理由是由maxusers设定的table里面有一些是用来控制进程数量的,这些table一般设置为20+ 16*maxusers,所以如果你把maxusers设置成1的话,那么系统里面的并发进程最多只能是36,包括了系统启动时的18个进程和15个打开 X时可能产生的进程。即使是你进行最简单的操作比如运行man打开一个参考手册,也会产生9个进程用于过滤、解压缩和浏览参考手册。如果把 maxusers设置成64的话,那么最多可以同时有1044个并发进程,这样对于绝大多数应用来说都是足够了。无论何时,当你打开一个应用程序时如果看 到proc table full这样的错误,或者你正在运行一个有大量并发用户的服务器,你可以增加maxusers参数并且重新编译内核。
注意:maxusers并不限制登录系统的用户数量。它只是根据你系统上可能会有的用户数量和并发进程来简单地设置各种table的大小。能设置远程并发连接数和X终端系统的一个关键字是pseudo-device pty 16。

# Floating point support - do not disable.
device npx0 at nexus? port IO_NPX irq 13

npx0是DragonFly里面浮点运算单元的接口,它可以是硬件上的处理器或者是模拟数学运算的软件。这是一个必选项。

# Pseudo devices - the number indicates how many units to allocate.
pseudo-device loop # Network loopback

这是TCP/IP的一个一般性还回设备。如果你用telnet或者FTP连接localhost(一般是127.0.0.1),当通过这个设备时将会折回。同样这也是一个强制性选项。

DragonFly内核配置文件翻译(一)

初次翻译专业性文章,翻译的超烂...大家莫要扔鸡蛋西红柿~~><~~
而且窝也没时间一次性翻译完,所以会分段翻译,希望说能够让一些对DragonFlyBSD感兴趣的人有些帮助。

DragonFly内核配置文件


通常配置文件的格式都是十分简单的。其中每一行包含一个关键字以及一个或者多个参数。简单来说,一般每一行只会存在一个参数。而其它任何以#开头的行不是 描述性的批注就是被忽略掉的配置参数。下面会介绍GENERIC配置里面的每一个关键字的用法,其中有一些关键字虽然分布在GENERIC配置的各个角 落,不过这里还是会将他们整合在一起介绍(比如网络部分的关键字)。一份更加彻底的配置选项清单以及关于驱动设备详细的介绍存在于叫做LINT的配置文件 中,这个文件在和GENERIC配置文件相同的目录下面。如果你对配置文件每一行的目的持有怀疑,或者是有需要的话,请首先参见LINT配置文件。

为了使讲解更加清晰,下面作为范例的GENERIC核心配置文件会有更多附加的叙述。这个GENERIC文件应该会和你机器上 /usr/src/sys/i386/conf/GENERIC文件十分相似。再次说明,如果你需要获得每个内核选项更详细的资料,请参见 /usr/src/sys/i386/conf/LINT。

#
#
# GENERIC -- Generic kernel configuration file for DragonFly/i386
#
# Check the LINT configuration file in sys/i386/conf, for an
# exhaustive list of options.
#
# $DragonFly: src/sys/i386/conf/GENERIC,v 1.17 2004/06/25 05:09:38 hmp Exp $


下列关键字是你自定义内核中所必须的:

machine i386


这行用来声明你所使用的机器架构。至今为止,这个关键字的参数必须是i386或者amd64。

cpu I386_CPU
cpu I486_CPU
cpu I586_CPU
cpu I686_CPU


上述的四个选项用来指名DragonFly所使用的机器的CPU类型。有时候你可能会需要指明多种CPU的类型(比如,在你无法确定你的CPU应该使用 I586_CPU或者是I686_CPU的情况下)。无论如何,对于一个自定义的内核来说,最好还是指定单一的正确的CPU类型。如果你实在无法确定你的 CPU类型,可以察看一下/var/run/dmesg.boot文件,里面会有DragonFly的启动信息,通常也会包含你的CPU类型。

ident GENERIC


这个选项作为你自定义内核的识别代码,你应该要把GENERIC改成和你的内核相同的名称,例如,这里我们使用MYKERNEL作为内核的名字。 ident关键字的参数,将会在内核启动的时候显示出来,所以如果你想区分常用的内核和新内核的话,分别给两个内核不同的名字将会是一个很有效的区分方法 (例如你想编译一个实验性的新内核)。

恭喜开张

Blogspot能稳定访问差不多一个月了吧。看上去应该是Google和GFW搞定关系了,所以就在这里安家了。
说实话Blogspot比Msn Spaces好到天上去了,界面简洁,功能丰富,速度又快。