mirror of
https://github.com/LCTT/TranslateProject.git
synced 2026-09-04 04:32:49 +08:00
Merge pull request #391 from geekpi/master
[Translated] 17 The Linux Kernel--Configuring the Kernel Part 13
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
戴文的Linux内核专题:17 配置内核 (13)
|
||||
================================================================================
|
||||

|
||||
|
||||
你好!这是Linux内核系列的下一篇,我们仍将配置ATA设备并将进入逻辑卷/存储。
|
||||
|
||||
"ATA SFF support (for legacy IDE and PATA)"应该启用,因为这扩展了ATA的能力。
|
||||
|
||||
为了支持Pacific Digital的ADMA控制器,应该启用"Pacific Digital ADMA support"。
|
||||
|
||||
"Pacific Digital Serial ATA QStor support"(串口ATA支持)在下一个驱动中支持
|
||||
|
||||
Promise的SATA SX4设备在内核中支持(Promise SATA SX4 support (Experimental))。
|
||||
|
||||
可以BMDMA的SFF ATA控制器需要这个驱动(ATA BMDMA support)。BMDMA代表总线主控直接内存访问(BMDMA stands for Bus-Master Direct Memory Access)。
|
||||
|
||||
下面,这个驱动对不同的SATA和PATA控制器提供支持Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support)。
|
||||
|
||||
这里有其他的特定设备驱动(Calxeda Highbank SATA support)、(Marvell SATA support)、(NVIDIA SATA support)、(Promise SATA TX2/TX4 support)、(Silicon Image SATA support)还有(SiS 964/965/966/180 SATA support)、(ServerWorks Frodo / Apple K2 SATA support)、(ULi Electronics SATA support)、(VIA SATA support)。。。由于有很多SATA/PATA控制器设计不同,一个通用驱动无法使用在这些设备上。
|
||||
|
||||
接下来,这个驱动支持PC卡上的ATA设备除非有特定设备管理硬件的驱动(PCMCIA PATA support)。
|
||||
|
||||
在这之后,有一个通用PATA驱动用于管理其他不被先前驱动支持的PATA设备 (Generic platform device PATA support)。
|
||||
|
||||
PATA设备的电源消耗由这个ACPI驱动管理(ACPI firmware driver for PATA)。强烈建议对系统上所有的硬件启用ACPI。虽然这会增加内核的大小,但是ACPI会增强性能。
|
||||
|
||||
"Generic ATA support"(通用ATA支持)由这个驱动提供。
|
||||
|
||||
古老的ISA、VLB和PCI总线PATA设备可以通过这个驱动支持(Legacy ISA PATA support (Experimental))。这个古老支持使用新的ATA层。
|
||||
|
||||
这组特性包含了许多对于RAID和LVM能力,可见下面的特性选项(Multiple devices driver support (RAID and LVM))。
|
||||
|
||||
有趣的事实:内核是由C和汇编写成的。
|
||||
|
||||
这个驱动允许RAID和LVM组合在一起。这用于使几个LVM卷使用RAID。分区被组合成逻辑块设备,然后形成RAID设备。
|
||||
|
||||
许多用户会希望RAID可以在启动时侦测到(Autodetect RAID arrays during kernel boot)。如果你没有RAID,那么不要启用这个特性。不然,启动处理会比原先希望的慢上几秒。
|
||||
|
||||
注意:当配置Linux内核时,最好按照"use it or lose it"(非用即失)的原则。那就是,如果你不用它,那就禁用这个特性。
|
||||
|
||||
硬盘分区可以通过这个驱动加在一起(Linear (append) mode)。
|
||||
|
||||
下面的驱动加入RAID-0支持带逻辑块设备中(RAID-0 (striping) mode)。接着还有 (RAID-1 (mirroring) mode)、(RAID-10 (mirrored striping) mode)和(RAID-4/RAID-5/RAID-6 mode)。
|
||||
|
||||
MD框架需要多路径支持(Multipath I/O support)。MD框架就是多设备(Multi Device)框架,它将多台设备作为一个单元管理。举例来说,将许多存储单元的分区组合起来可以使多个设备就像一个那样。多路径支持是用于使用处理虚拟的有多个地址的"单个设备"。因为单存储单元物理上有多件物理设备,所以它有多个硬件地址。
|
||||
|
||||
使用这个调试驱动,可以测试更大的多磁盘存储单元的bug(Faulty test module for MD)。
|
||||
|
||||
"Device mapper support"是一个用来映射逻辑扇区的卷管理器。LVM使用扇区映射。
|
||||
|
||||
如果启用的话,设备映射器可以有调试特性(Device mapper debugging support)。
|
||||
|
||||
如果需要,逻辑设备可以设置加密数据(Crypt target support)。这个特性允许用户将来加密那些存储设备。
|
||||
|
||||
只有启用了这个特性,才能使用逻辑存储单元的快照功能(Snapshot target)。
|
||||
|
||||
"Thin provisioning"(自动精简配置)允许逻辑卷设置成比组成逻辑卷的物理设备拥有更大的存储容量(Thin provisioning target)。这个特性同样为这类设备提供了快照功能。这额外的虚拟数据空间无法马上使用。这个特性的意义是允许用户在将来增加物理存储单元并且节约了配置逻辑块设备的时间。
|
||||
|
||||
用这个可以调试"Thin provisioning" (Keep stack trace of thin provisioning block lock holders)。
|
||||
|
||||
块设备性能的提升可以通过移动更多的常用数据到更快的存储单元中(Cache target (EXPERIMENTAL))。
|
||||
|
||||
卷管理器可以制成镜像逻辑卷(Mirror target)。
|
||||
|
||||
设备映射器(Device-mapper (dm))单元支持映射RAID1、RAID10、 RAID4、RAID5和RAID6(RAID 1/4/5/6/10 target)。
|
||||
|
||||
设备映射器(device-mapper)日志可以镜像到用户空间(Mirror userspace logging)。
|
||||
|
||||
"Zero target"是一个忽视写入并返回读取为零的设备。
|
||||
|
||||
接下来,卷管理器应该对硬件有多路径支持(Multipath target)。
|
||||
|
||||
这个驱动会发现最有效的到存储设备的路径来读取和写入(I/O Path Selector based on the number of in-flight I/Os)。
|
||||
|
||||
=下面的一个驱动和以上相同,但是会寻找最快路径(I/O Path Selector based on the service time)。
|
||||
|
||||
如果一个逻辑卷上的物理存储单元正忙,如果可能的话,这个特性会允许读取/写入到另一个物理卷上。
|
||||
|
||||
udev可以生成设备管理器操作事件DM uevents)。udev是/dev的设备管理器。
|
||||
|
||||
为了测试软件/硬件对偶尔失败的输入/输出任务的逻辑设备如何反映,启用这个调试特性(Flakey target)。
|
||||
|
||||
逻辑卷可以创建为一个用于验证另一个逻辑分区数据的只读存储单元(Verity target support)。
|
||||
|
||||
注意:如果你喜欢我的文章,并且如果你有Linux.org的账号,请在我的文章上点击"Like"。同样,再次分享这篇文章在Google、Twitter和/或者Facebook上。
|
||||
|
||||
ConfigFS和TCM存储引擎可以通过这个设置启用(Generic Target Core Mod (TCM) and ConfigFS Infrastructure)。ConfigFS是一个基于内存的文件系统。
|
||||
|
||||
有趣的事实:Linux内核没有"main()"函数。在程序中,main()被依赖于kernel的libc调用。内核没有main()函数是因为libc将无法启动内核。如果内核的确有main()函数,那么我们就有一个"鸡或者蛋"的问题-谁先来?另外,内核的入口点用汇编写成,这并不使用main()函数。
|
||||
|
||||
下面,"TCM/IBLOCK Subsystem Plugin for Linux/BLOCK"可以禁用或者启用。
|
||||
|
||||
接着"TCM/FILEIO Subsystem Plugin for Linux/VFS"可以启用/禁用。
|
||||
|
||||
再次,还有两个TCM特性 - (TCM/pSCSI Subsystem Plugin for Linux/SCSI) 和 (TCM Virtual SAS target and Linux/SCSI LDD fabric loopback module)
|
||||
|
||||
对于ConfigFS的"Linux-iSCSI.org iSCSI Target Mode Stack"在这个驱动中支持(Linux-iSCSI.org iSCSI Target Mode Stack)。
|
||||
|
||||
下一步,可以启用/禁用"FireWire SBP-2 fabric module"。这允许一台计算机作为一个硬盘连接到另一台计算机上。
|
||||
|
||||
在这之后,我们可以配置"Fusion Message Passing Technology (MPT) device support"。
|
||||
|
||||
在那个标题下的第一个选项是一个用于并口适配器的SCSI支持的驱动(Fusion MPT ScsiHost drivers for SPI)。
|
||||
|
||||
SCSI同样也可以支持光纤通道主机适配器(Fusion MPT ScsiHost drivers for FC)和/或SAS适配器(Fusion MPT ScsiHost drivers for SAS)。
|
||||
|
||||
下一步,用户可以设置"Maximum number of scatter gather entries"。一个低的数值可以减少每个控制器实例的内存消耗。
|
||||
|
||||
下一个驱动提供了ioctl系统调用来管理MPT适配器(Fusion MPT misc device (ioctl) driver)。
|
||||
|
||||
光纤通道端口可以用这个驱动支持IP LAN的流量(Fusion MPT LAN driver)。
|
||||
|
||||
我可以读到你们的想法-你们会想到对于这个还有另外一篇文章。是的,你们想对了。请继续关注这个系列的下一篇文章。
|
||||
|
||||
如果你喜欢这个系列,请在Linux.org和/或者Google+上发表评论告诉我你有多喜欢这个系列,并且告诉我你想在今后的文章中希望看到的方面。或者给我发邮件DevynCJohnson@Gmail.com)。谢谢!
|
||||
|
||||
想要更多地了解作者,请检查下面的签名栏中的链接(译注:原文所在论坛有)
|
||||
|
||||
如果你已经完整地阅读了这篇文章,那么你应该已经看到单词"Facebook"三次了。如果没有,你没有阅读全部文章。
|
||||
|
||||
单词"Facebook"在这段中,上一段,和一个注解中。我打赌你阅读了上面的段落而没有通读文章来试图寻找第三个单词实例。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-13.4714/
|
||||
|
||||
译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
@@ -0,0 +1,118 @@
|
||||
戴文的Linux内核专题:18 配置内核 (14)
|
||||
================================================================================
|
||||

|
||||
|
||||
你好! 准备好读另一篇很酷的Linux内核文章了么?
|
||||
|
||||
接下来,在我们的长期追求中,我们可以启用/禁用"Fusion MPT logging facility"。MPT代表"Message Passing Technology"(消息传递技术)。Fusion驱动是由LSI Logic公司开发。MPT一种进程间使用的特定消息策略。这个技术是同步的意味着进程将会等待所需的消息。
|
||||
|
||||
在这之后,如果计算机处理拥有火线端口就应该启用"FireWire driver stack"。如果没有,那么就没有必要去启动一个不会使用到的火线驱动。火线很像USB。不过在协议、速度、物理形状和端口布局上不同。通常上,苹果设备使用火线和USB。一些PC有火线端口,但是不像USB口那样普及。
|
||||
|
||||
一些火线控制器使用OHCI-1394规范(OHCI-1394 controllers)。如果是这样,启用这个驱动。
|
||||
|
||||
为了使用火线存储设备,启用下一个驱动(Storage devices (SBP-2 protocol))。这个驱动提供了火线存储单元与火线总线通信的协议(the card with the attached FireWire ports)。一些火线扫描仪同样需要这个驱动。
|
||||
|
||||
IPv4可以用在火线端口(IP networking over 1394)。IEEE 1394或者简单的"1394"就是火线。使用IPv4在火线多播有局限。
|
||||
|
||||
"Nosy"是"FireWire PCILynx"卡上的流量监控(Nosy - a FireWire traffic sniffer for PCILynx cards)。
|
||||
|
||||
下一步,可以支持I2O设备(I2O device support)。"Intelligent Input/Output (I2O)"(智能输入/输出)总线使用硬件和操作系统层的驱动。硬件驱动(hardware drivers (HDM))并不特定与任何操作系统而OS驱动(OS drivers (OSM))必须在目标操作系统上使用。OSM可以与任何HDM通信。I2O卡/总线有一个IOP- 输入/输出处理器(Input/Output Processor)。由于主CPU处理更少的数据,所以加速了系统。
|
||||
|
||||
只在缺乏SUN I2O控制器的系统上启用"Enable LCT notification"。I2C SUN固件不支持LCT通知。
|
||||
如果目标是RAID,Adaptec I2O控制器需要下一个驱动(Enable Adaptec extensions)。
|
||||
|
||||
64位的直接内存访问可以在Adaptec I2O控制器上启用(Enable 64-bit DMA)。
|
||||
|
||||
如果允许,可以配置I2O设备(I2O Configuration support)。这个特性主要用在RAID设定中。
|
||||
|
||||
可以为I2O启用支持老的输入/输出控制(Enable ioctls (OBSOLETE))。
|
||||
|
||||
可以启用I2O总线适配器的OSM软件(I2O Bus Adapter OSM)。这组OSM被用来寻找新的在其他适配器末端的I2O设备。
|
||||
|
||||
下面,可以启用I2O块设备上的OSM(I2O Block OSM)。I2O硬件上的RAID控制器需要这个OSM。
|
||||
|
||||
下面的OSM用于I2O控制器上的SCSI或者光纤通道设备。
|
||||
|
||||
如果启用了(I2O /proc support),可以通过/proc读取I2O设备的信息。
|
||||
|
||||
在启用/禁用了I2O特性,我们可以继续其他的内核特性。下面,我们看到"Macintosh device drivers"。这只对苹果设备有用。PC的Linux内核不应该有任何这些驱动启用。然而,正如许多说法都有例外一样。一些PC用户可能会使用苹果鼠标、键盘和/或者一些其他的苹果设备。再说一次,最好彻底地理解需求和正在开发的内核。
|
||||
|
||||
下一步,我们有一个用于网络的驱动(Network device support)。X11和其他的Linux软件不依赖于这个驱动,所以如果内核不会连接到另一台计算机、因特网、内联网或者网络,那么这个特性可以安全地禁用。
|
||||
|
||||
下面的驱动就像上面,但是特定于核心驱动(Network core driver support)。
|
||||
|
||||
这个驱动支持Etherchannel(Bonding driver support)。"bonding"是两条或者更多的以太网通道的融合。这也成为中继。
|
||||
|
||||
使用这个驱动(Dummy net driver support),可以在Linux中设置一个虚拟网络。虚拟网络(dummy network)就像网络中的/dev/null。任何发送给虚拟网络的数据都会永久消失,因为它会发往/dev/null。IP地址没有设置。用户可以定义他们的网络相当于/dev/null。
|
||||
|
||||
下一步,可以支持和EQL(EQL (serial line load balancing) support)。这允许两台计算机使用SLIP或者PPP协议在两条串行连接上通信。
|
||||
|
||||
光纤通道是一种用于连接存储设备到计算机的快速串行协议(Fibre Channel driver support)。
|
||||
|
||||
TMII收发器需要这个驱动(Generic Media Independent Interface device support)。MII是一种用于最高速度为100Mbit/s以太网的接口。以太网线缆用于连接到PHYceiver,这是一种以太网收发器。
|
||||
|
||||
为了通过虚拟接口组织许多以太网设备,需要"Ethernet team driver support"。
|
||||
|
||||
"MAC-VLAN support"允许用户在特定的MAC地址和某个接口上映射数据包。
|
||||
|
||||
TAP字符设备可以由MAC-VLAN接口生成(MAC-VLAN based tap driver)。TAP设备从内核中获取数据包,这样它们就可以被送往其他地方。
|
||||
|
||||
下一个特性允许虚拟vxvlan接口在3层网络上创建2层网络(Virtual eXtensible Local Area Network (VXLAN))。这通常用于隧道虚拟网络。
|
||||
|
||||
内核发送给网络的消息可任意通过这个特性记录下来(Network console logging support)。除非记录网络信息对你很重要时才启用它。禁用这个特性会增强性能。
|
||||
|
||||
这个特性允许不同参数被改变(Dynamic reconfiguration of logging targets)。这些参数包括端口号、MAC地址、IP地址和其他一些设定。
|
||||
|
||||
如果用户空间程序希望使用TAP设备,那么启用这个特性可以允许这样的活动(Universal TUN/TAP device driver support)。
|
||||
|
||||
这个驱动用于本地以太网隧道(Virtual ethernet pair device)。
|
||||
|
||||
"Virtio network driver"用于QEMU、Xen、KVM和其他虚拟机。
|
||||
|
||||
下一步,可以启用"ARCnet support"。ARCnet是一种类似令牌环本地局域网络(Local-Area-Network (LAN)协议。ARCnet代表"Attached Resource Computer Network"(附加资源计算器网络)。
|
||||
|
||||
现在,我们进入到"ATM drivers"。ATM代表"Asynchronous Transfer Mode"(异步传输模式)。ATM用于电信。
|
||||
|
||||
Marevell以太网交换机芯片需要这个驱动(Marvell 88E6060 ethernet switch chip support)。同样,这类交换机的芯片同样需要依赖模型(Marvell 88E6085/6095/6095F/6131 ethernet switch chip support)和(Marvell 88E6123/6161/6165 ethernet switch chip support)。
|
||||
|
||||
现在,我们可以学习关于"Ethernet driver support"。
|
||||
|
||||
首先我们可以启用/禁用"3Com devices"。接下来允许内核开发者选择支持哪些3Com设备。
|
||||
|
||||
下一组选项是对于不同的"Adaptec devices"和接下来的"Alteon devices"。
|
||||
|
||||
这些只是特定设备/供应商驱动。通常地,这些驱动被作为模块加入。
|
||||
|
||||
在设置了这两组选项后,接下来还有"AMD devices"和"Atheros devices"。
|
||||
|
||||
注意:请记住内核会运行在哪类硬件上。对于大量不同的设备,或许最好把它们作为模块加入
|
||||
|
||||
这里有不同特定供货商的设备驱动-"Cadence devices"、"Broadcom devices"、"Brocade devices"、"Chelsio devices"、"Cisco devices"、"Digital Equipment devices"。一些其他的特定设备/供应商驱动遵循它们。
|
||||
|
||||
接下来的驱动并不是特定设备/供应商的 "SLIP (serial line) support"。这个驱动支持SLIP和CSLIP。SLIP(Serial Line Internet Protocol)是一种用于调制解调器和串口的因特网驱动。PPP现在用来代替SLIP。CSLIP是压缩的SLIP。
|
||||
|
||||
下面,"CSLIP compressed headers"可以启用用来压缩TCP/IP头。CSLIP快于SLIP,但是想要启用CSLIP,传输和接收的计算机都必须理解CSLIP。
|
||||
|
||||
当在恶劣的模拟线路上使用SLIP时,最好启用"Keepalive and linefill",这会帮助保持连接。
|
||||
|
||||
对于质量差的网络或者7bit网络中运行IP而言,最好启用"Six bit SLIP encapsulation"。
|
||||
|
||||
现在我们可以进入流行的USB系统,但是这些是用于网络的USB驱动。
|
||||
|
||||
第一个启用/禁用的USB网络设备是"USB CATC NetMate-based Ethernet device support"。这是用于10Mbps的USB以太网EL1210A芯片设备。USB设备将会扮演和成为一个以太网设备即使硬件是USB。
|
||||
|
||||
接下来,除了设备是KLSI KL5KUSB101B芯片组(USB KLSI KL5USB101-based ethernet device support),其他与上面的驱动一样。
|
||||
|
||||
Pegasus USB是USB转以太网的适配器/转换器(USB Pegasus/Pegasus-II based ethernet device support)。
|
||||
|
||||
接下来是另外一个USB转以太网驱动(USB RTL8150 based ethernet device support)。
|
||||
|
||||
下一篇文章中,我们将继续配置USB网络系统。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-14.4765/
|
||||
|
||||
译者:[geekpi](https://github.com/geekpi) 校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
|
||||
Reference in New Issue
Block a user