[转]inux Kernel部分选项意义

转自:http://hi.baidu.com/xtyangjie/item/b23b673bfa8ef4c7382ffa78

inux Kernel部分选项意义

Processor type and features

High Resolution Timer Support [*]

高频率时钟支持。看到网上很多资料说多数PC并不支持这个,感到不解。后来在这个页面找到了测试方法:

http://www.songho.ca/misc/timer/timer.html

基本clock()函数和HRT函数获得的精度如果不同,说明你的机器支持HRT(当然前提是测试运行在你的内核编入了这个选项的基础上)。我的测试结果是(100/500k次{整形变量后置自增, cerr空字符串输出} + 一个clock()/gettimeofday()函数调用):

clock: 0 ms / 20 ms

gettimeofday: 0.003 ms / 27.749 ms

如果那网站说的没错,这样的精确度差别应该说明我的机子是支持HRT的吧(不过个人不确定是否只要精确到微妙级都说明HRT在起作用)。

Symmetric multi-processing support [ ]

Maximum number of CPUs [4]

对 称多处理技术。需要注意SMP和CMP(芯片级多处理)的差别,前者的操作对象为多CPU;后者是前者概念的延伸,操作对象为CPU核心(可以是多个 CPU的每个核心)。目前的SMP均为芯片级别,也即既可调度CPU,又可调度内部的核心,因此提到SMP时,”CPU“的概念已经延伸到了”CPU核心 “(比如我的CPU是Core 2 E8400,因此对于Linux SMP支持来说,会发现2(核)*2(超线程)=4颗CPU)。判断CPU”核心“的方法如下:

cat /proc/cpuinfo | awk '/cpu cores/ {a=a+$4;};END{print a}'

获得的数值即可填入选项Maximum number of CPUs。

启 用这一项之后,linux内核需要“使用 proc 文件系统了解处理器的数目及类型”(见”参见“),此外的多CPU之间的协调支持应该也是 性能 per CPU 降低的原因之一(也即“线性度不好”)。貌似因为这个,help上书“单CPU单核”的童鞋不要选啊不要选。对于PC机,基本不会出现多CPU的 情况,但多核目前是很普遍了,因此要视情况而定。

参见:

http://www.ibm.com/developerworks/cn/linux/l-linux-smp/

http://hi.baidu.com/lu_youyou/blog/item/dabd4e555da255133a2935e9.html

http://hi.baidu.com/redcat8850/blog/item/504f8df47c4ce5ec7709d7b6.html

Power Management and ACPI options

Run-time PM core functionality [*]

(PM_RUNTIME)允许设备在空闲期节省资源。udisk所依赖的USE_SUSPEND依赖于此项。

Networking support

Networking options

IP: advanced router []

与 路由相关的一个选项。这里的路由相关是指使本机支持IP Forwarding等特性,一句话:你的机子成了个路由器。该选项还有些子项来控制不同的路由策略(都是学《计算机网络》的时候学过的呵呵,也可参见 《TCP/IP详解 卷一》)。我没必要让自己的系统支持路由功能,故disable。

IP: kernel level autoconfiguration []

这个选项确保内核启动时即可进行IP设置,设置方法可以通过kernel command line或bootp和rarp协议完成(参见它的子项)。一般看到bootp和rarp,我们基本就能确定,相关配置只是用于无盘工作站或需网络安装的机子上的。因此不必选择。

 

IrDA subsystem support --> [ ]

红外通信协议。我的机子没有,也基本不用,因此没安装。


Device Drivers

Generic Driver Options

Maintain a devtmpfs filesystem to mount at /dev [ ]

>Automount devtmpfs at /dev, after the kernel mounted the rootfs []

该 两个选项在启动时(mount rootfs之前)起作用,主要用于map一些外置设备,诸如外置硬盘、光驱、u盘等等。如果需要在启动时访问这写设备,可以考虑启用两个选项。其中第二 个选项可以保证内核自动mount devtmpfs至/dev中,这就保证我们自己不必在构建initramfs时手动挂载了。

这两个选项也可以利用mdev替代。参见:http://en.gentoo-wiki.com/wiki/Initramfs#devtmpfs

Select only drivers that don't need compile-time external firmware []

Prevent firmware to be built(NEW) [*]

Include in-kernel firmware blobs in kernel binary []

这 几个选项控制设备的firmware是否编进内核中。external的firmware直接忽略,除非编完了之后出现有设备找不到firmware的情 况。第二个可以避免每次编译时构建firmware(大多驱动都有自带firmware,因此多数不必编译,除非出现找不到firmware的情况)。最 后一个则不光是external firmware了,它对于如显示驱动的编译方法有很大影响。对于希望使用开源驱动的童鞋,如果将其选上,若显示驱动等的firmware会直接编入内 核,就不需要在配置显卡时另行制定firmware的位置;而如果不选,则需要另行编译firmware,并将其放在/lib/firmware/,并对 内核相应选项设置,以指定其位置。闭源驱动直接无视即可。

参见:http://en.gentoo-wiki.com/wiki/Radeon#Kernels_.3E.3D2.6.33

Connector - unified userspace <-> kernelspace linker []

Report process events to userspace [] 

字 面意思理解是一个链接用户态和内核态的统一接口。子选项用于向用户态的进程返回进程信息,并发送诸如fork,exec,uid/gid/suid等id 变化信息以及退出状态等功能。目前只知道这是一个接口,而且有部分应用要求必须启用该选项。比如有个sourceforge项目叫ELSA,此外开源驱动 framebuffer也依赖于此项(但不依赖于其子选项)。

Block Devices

Loopback device support []

这 个选项的意思是说,可以将一个文件挂成一个文件系统。如果要烧光盘片的,那么您很有可能在把一个文件烧进去之前,看看这个文件是否符合IS09660的文 件系统的内容,是否符合您的需求。而且,可以对这个文件系统加以保护。不过,如果您 想做到这点的话,您必须有最新的mount程序。对于喜欢尝试新型文件系统的童鞋,可以把这个选项编成模块或编入内核,从而通过创建制定文件系统格式的文 件而方便地对该文件系统进行测试学习。

参见:http://www.zmemb.com/info/2/2010/0811/2374.html(这个页面有各种弹出广告~~)

SCSI Device support

SCSI disk support [*]

Asynchronous SCSI scanning []

SCSI Transports  --->

OSD-Initiator library (NEW) <>

如 果/boot在SATA硬盘上,第一个自然要直接编入内核;第二个则貌似可以提高数据读取(磁盘扫描)的并行性,help上说是可以显著提高(启动时的) 性能的,但同时也提到该选项用于“SCSI Subsystem”,虽然SATA仿真为SCSI,但我也不知道是否能连SCSI的“异步扫描”的能耐也仿真上,结果还是暂时没选,日后再提;第三个据说不必关心,倒不是不需要,而是内核会把需要的选项自动勾选。

第 四个涉及OSD(对象存储设备/对象存储系统,个人设备上不常用,但-据“参见”的链接说-非常适合于分布式文件系统)的选项,是一个OSD启动器。一个 OSD FS(如exofs) 通过一个本地 OSD 启动器与对象存储系统通信。OSD 启动器实现 OSD标准 SCSI 命令集。基本上这项是不必选择的,但是由于目前Linux内核已经可以支持EXOFS,而该文件系统依赖于此启动器,因此考虑尝试EXOFS的票友们还是 要考虑将其选上。

参见:http://www.ibm.com/developerworks/cn/linux/l-nilfs-exofs/#exofs

I2O device support [ ]

IO处理器支持。平民PC上是木有滴,不要迷信于自己的机器了,悲剧地disable吧!我反正没选(人help上都说if unsure, say N了)。

Network device support

PHY device support and infrastructure --> []

数据链路层芯片简称为MAC控制器,物理层芯片简称之为PHY;两者通过MII(Media Independence Interface)通信。通常的网卡把MAC和PHY的功能做到了一颗芯片中,但也有一些仅含PHY的”软网卡“。我是没有这种东东。

具体知识参见:有关MAC、PHY和MII

Ethernet (1000 Mbit) --> [*] 现在基本都是千兆以太网卡了

>New SysKonnet GigaEthernet support []

>SysKonnect Yukon2 support [M] 这里一定要选择正确,不然找不到网卡的

此 项的任何选项仅视自己的硬件或网络环境配置即可。如大家都要选择自己的网卡型号(wired or wireless);拨号上网的童鞋要选择PPP;在虚拟机里安装linux的童鞋要启用VMXNET3等等……如上是我的选择:我只有有线网卡,且不必 拨号,因此只选择自己的网卡型号就好了。

我的网卡型号是Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller (rev 14)。

至于为神马选择SysKonnect Yukon2 support而不是New SysKonnet GigaEthernet support,我也木有任何头绪。(事实上,前者的help里描述的支持硬件型号有个8055,更接近我的型号。可能是这个原因吧)

结果我这台08年入手、装有”先进“千兆板载网卡(MAC+PHY, Marvell 88E8056)、自己个儿不用拨号(直联or用路由器拨号)、只用ethernet协议的机子,最终只在这一节里配了个网卡支持~~

Character Devices

参见:http://hi.baidu.com/jolinzhe/blog/item/a7ab70353eb19cbed1a2d349.html

Watchdog Cards
能 让系统在出现致命故障后自动重启,如果没有硬件Watchdog,建议使用Hangcheck timer(参见Character Devices)而不是软件Watchdog。Hangcheck timer通常可以比Watchdog更好地解决可用性和可靠性问题。

Graphics support

Console display driver support -->

>/dev/agpgart (AGP Support)  [M]
>>Your_AGP_Chipset_Here [M]

>VGA text console [*]

>>Enable Scrollback Buffer in System RAM [*]

>>>Scrollback Buffer Size (in KB) (64) 

我 目前用的是闭源驱动,因此此节中的绝大部分都可以直接disable掉。唯一需要开启的是如上几项。第一项保证我们进入控制台模式(文本界面,也即尚未开 启x server时的控制台)时至少可以显示文本界面,不选这一项的话,对于默认进入纯文本界面的童鞋,会出现一个黑乎乎、只有个可怜的小光标的屏幕,杯具 了~(如果已经设置了默认启动xdm/gdm/kdm以直接进入X,可能也就不需要这个了,不过我也不确定。)

第二项是子项目,启用缓存以回滚(启用了,但没试过),第三项顾名思义。

这一部分可以参见:http://wiki.cchtml.com/index.php/Gentoo_Installation_Guide

*******辩解下,是在不是鄙人革命不彻底,开源驱动毕竟还是有点太凑合。我还是随时翘首盼望的。********

Sound Card support

Advanced Linux Sound Architecture -->

>Generic sound devices--> []

>PCI sound devices --> [*]

>>Intel HD Audio --> [M]

>>>Build Analog Device HD-audio codec support [*]

>>>Enable generic HD-audio codec parser[*]

>>>Aggressive power-saving on HD-audio [*]

>USB sound devices --> []

>ALSA for SoC audio support --> <>

声 卡设置比较简单,但也有一点点需要注意的地方。这一节下面东西不多,最后一项OSS是过时的声音系统;第一项(Preclaim OSS device numbers)貌似用于硬件检测and so forth~感觉用不上,去掉了发现从头到脚也没啥问题;第二项就是ALSA了,它下面的几项很明确,Generic sound devices用于无法指定类型设备的通用驱动;PCI、USB分别用于对应类型的声卡,可视实际情况而定;ALSA for SoC貌似主要用于移动设备,用以节电,没选。

进入PCI sound devices之后,可以选择自己声卡对应的型号。对于Intel HD Audio系列(我的:)),可以将Intel HD Audio设为编成模块,并选择如上三个子项目。其中第一个为编解码器;第二个貌似是编码转换器,不清楚,但一定要选上,不然声卡不吱声的;第三个貌似是个“积极/主动的”节电特性,我给编上了,尚未试用。

ALSA下面的其它选项都用默认了。

声卡型号查看:lspci | grep -i audio

USB support

Support for Host-side USB
>USB runtime power management (autosuspend) and wakeup [*]
>>OTG support[*]
两个都是是udisk所依赖的选项之一(另一个是CONFIG_IDE=n)。这个选项又依赖于PM_RUNTIME(参见电源管理一节)。

其它参见:http://hi.baidu.com/sophie198384/blog/item/a7d41afd3d32fd1309244d0d.html/cmtid/5732dccf52c18833f8dc6140

 USB控制器型号查看:lspci | grep -i usb

Real Time Clock ?


Firmware Drivers

Export DMI identification via sysfs to userspace [*]

将BIOS里的DMI区信息导出到用户空间,部分系统管理工具可能会用到


后续:http://blog.chinaunix.net/u2/69136/showart_1006713.html

不错的参考:http://lamp.linux.gov.cn/Linux/kernel_options.html

转载于:https://www.cnblogs.com/nvd11/archive/2013/04/02/2996872.html

你可能感兴趣的:([转]inux Kernel部分选项意义)