数学建模社区-数学中国

标题: linux-2.6内核升级文档(全) [打印本页]

作者: 韩冰    时间: 2005-1-20 14:35
标题: linux-2.6内核升级文档(全)
<FONT color=#f70909>作者:killua   来源:http://www.chinaunix.net/</FONT>
: }0 m, q2 l( s2 \9 F<>序 % ?& n0 k( s5 r, ]% d
做一件事情,首先要知道自己在干什么,而不是盲目得升级内核,现在升级内核有点泛滥,sigh 0 u( T, z6 w  |- b7 t: p' @
首先让我们先了解一下2.6内核的新特性 </P>; j7 H& P3 K! |
<>一、01.模块子系统(Module Subsystem)、统一设备模型(Unified Device Model)和 PnP 支持
+ h* D; T( `  E. |4 h+ d3 p0 L. \模块子系统发生了重大变化。 </P>7 P* q3 x/ X# p: m, U/ P8 A4 R" R
<>02.稳定性有所提高
8 Z1 C/ i, |' G4 l  E为了彻底避免内核加载或者导出正在被使用的内核模块,或者至少为了减少加载或者卸载模块的同时使用该模块的可能性
" S% X' U* h1 L: a2 ^(这有时会导致系统崩溃),内核加载和导出内核模块的过程都得到了改进。 </P>
. Z7 h% Z* _" c# g) Y: o5 K' G<>03.统一设备模型 * i1 v9 m8 m% B% W0 ?
统一设备模型的创建是 2.6 内核最重要的变化之一。它促进了模块接口的标准化,其目的是更好地控制和管理设备,例如: </P>
2 ?1 x- {+ m, t* }# }<>更准确地确定系统设备。
4 L  f1 s4 Q* T5 x3 a+ m6 I电源管理和设备电源状态。 " y* @) {; t1 e& x0 E( K
改进的系统总线结构管理。 </P>- Q: A8 f# v9 F9 o0 ^& _0 z3 t
<>04.即插即用(PnP)支持   t3 b7 ]2 y/ ]+ Z
1.1.1 和 1.1.2 小节中提及的变化使得运行 2.6 内核的 Linux 成为一个真正即插即用的 OS。
0 m9 i  w' J+ y例如,对 ISA PnP 扩展、遗留 MCA 和 EISA 总线以及热插拔设备的 PnP 支持。 </P>
6 b+ C  v3 y1 F% d( Z<>05.内核基础设施的变化
0 e( [/ M: k, ?6 B" h, E, H为了区别以 .o 为扩展名的常规对象文件,内核模块现在使用的扩展名是 .ko。 " z7 X( I4 Q7 o* ^8 _" q/ B
创建了新的 sysfs 文件系统,当内核发现设备树时就会描述它。 5 ~' j) I8 P: w7 X" Q
内存支持,NUMA 支持
8 P5 h/ J$ c0 s3 v支持更大数量的 RAM
- H4 \) k7 Z% G( A3 e' @  z: l( p2.6 内核支持更大数量的 RAM,在分页模式下最高可达 64GB。 </P>! `9 G6 `. @/ a6 [
<>06.NUMA * f. O# k, i2 m2 `/ ]
对非一致内核访问(Non-Uniform Memory Access - NUMA)系统的支持是 2.6 内核中新出现的。 </P>% n; ^. M. r# l- z: a
<>07.线程模型,NPTL " v/ ]# f/ I& H& O
相对于 v2.4 的 LinuxThreads,在版本 2.6 中新出现的是 NPTL(Native POSIX Threading Library)。
4 d3 X0 n5 t# B9 w  w3 uNPTL 为 Linux 带来了<a href="http://hackbase.com/job" target="_blank" >企业</A>级线程支持,提供的性能远远超过了 LinuxThreads。它所基于的用户与内核线程的比率是 1:1。 </P>) I. i2 V: q1 r* M
<>在 2003 年 10 月,GNU C 程序库 glibc 中融入了 NPTL 支持,Red Hat 率先在 Red Hat Linux 9 和
9 V; M6 f% }7 P. a/ ~8 u& Y- u# t2 k1 c0 KRed Hat Enterprise Linux 中使用定制的 v2.4 内核实现了 NPTL。 </P>
% X5 C2 i( r8 ?# W" q) s$ m$ l<>08.性能改进
' n) P% A9 L+ ]6 @, i2 J+ ~新的调度器算法 . [& h2 E4 E8 }6 d& c' c) Q  M
2.6 Linux 内核引入了新的 O(1) 算法。在高负载情况下它运行得特别好。新的调度器基于每个 CPU 来分布时间片,
: b# g( d5 k  f; K) p这样就消除了全局同步和重新分配循环,从而提高了性能。 </P>
3 c. e8 `& h  K1 O" \. [  w; N" K<>内核抢占(Kernel Preemption) 7 B$ h5 C) {5 M, ]* y. d0 E' _
新的 2.6 内核是抢占式的。这将显著地提高交互式和多媒体应用程序的性能。 </P>- v& b" x: [( h
<>I/O 性能改进
2 _$ F$ G# P3 |8 ALinux 的 I/O 子系统也发生了重大的变化,通过修改 I/O 调度器来确保不会有进程驻留在队列中过长时间等待进行输入/输出操作,
+ ]' {( ?" _/ l) I4 z这样就使得 I/O 操作的响应更为迅速。 </P>8 m% u/ n1 k/ n
<>快速用户空间互斥(Fast User-Space Mutexes)
3 H; Z0 s. k' E% u  X1 f“futexes”(快速用户空间互斥)可以使线程串行化以避免竞态条件,引入它也提高了响应速度。
5 R; ~8 g2 e3 l  L- X- u  @通过在内核空间中部分实现“futexes”以允许基于竞争设置等待任务的优先级而实现改进。 </P>- z1 Q  J# B. v1 }
<>09.扩展性改进 % r/ b# ^3 F  H& K' u  X- E
处理器数目更多
$ R4 C/ j) U; Y6 I! }Linux 内核 2.6 最多可以支持 64 个 CPU。支持更大的内存,归功于 PAE(物理地址扩展,Physical Address Extensions),在 32-位系统上分页模式下所支持的内存增加到了 64GB。 </P>
8 r( ~+ s% p& y# }+ t: w: B9 w# X3 ]<>用户和组 % g5 @2 s- _3 h: g
惟一用户和组的数量从 65,000 增至 40 多亿,也就是从 16-位增加到了 32-位。 </P>
! u" }5 ^5 Q" E8 M& u7 l<>ID 的数量
% z( b0 B" ^/ y7 X: wPID 的最大数量从 32,000 增至 10 亿。 </P>
7 S8 D" l  S5 C, d<>打开文件描述符的数量 5 D$ G3 R5 X9 }- B) U
打开文件描述符的数量没有增加,但是不再需要事先设置该参数,它将自行调节。 </P>! z4 @" Y- S% k3 ~7 s+ p
<>10.支持更多的设备
& H+ D: D" a: K/ P4 G  D; [  j4 ?在 Linux 内核 2.6 之前,内核中有可以约束大型系统的限制,比如每条链 256 个设备。v2.6 内核彻底地打破了这些限制,
7 b) X" E  I7 H. L9 d# \2 P不但可以支持更多类型的设备,而且支持更多同类型的设备。在 Linux 2.6 系统中,可以支持 4095 种主要的设备类型,
$ ]0 i' \8 h1 D每一个单独的类型可以有超过一百万个子设备。 3 ]9 |  l7 U" m* @, A& F  p
文件系统大小
' ]( d, O# K- c9 b' D7 f; XLinux 内核 2.6 所允许的可寻址文件系统大小最大为 16 TB。 </P>
( \6 B9 {' J! `<>11.文件系统
( z6 b0 b7 n0 K8 _7 _1 p8 F: _, eext2、ext3 和 ReiserFS 等传统 Linux 文件系统得到了显著的改进。最值得注意的改进是扩展属性(或文件元数据)的引入。
  u. S9 f# c2 v# ^6 u最重要的是 POSIX ACL 的实现,这是对普通 UNIX 权限的扩展,可以支持更细化的用户访问控制。 </P>
& F+ R9 R, U- J! P6 r/ T<>12.除了对传统 Linux 文件系统的改进支持以外,新的内核完全支持在 Linux 中相对较新的 XFS 文件系统。 ! c* G' J% A9 T: n4 a! x
Linux 2.6 内核现在还引入了对 NTFS 文件系统的改进的支持,现在允许以读/写模式安装 NTFS 文件系统。 </P>3 o) Q2 y8 ?0 x8 y' ~; D
<>基于以上2.6的新特性,我决定用2.6的内核,我的系统为Red Hat Enterprise Linux AS release 3 (Taroon Update 3) 9 j6 Q! O) q) @6 J( ?+ J; R
硬件环境为DELL 2850 </P>
$ j6 v+ W  l- E3 d! @<>一、下载解压并打上内核补丁 0 e6 w& E& F$ [8 W; J" n0 H" a
我以2.6.10为例子,patche以bk4的例子,目的只是让大家知道怎么打patch,
1 k( E% Y- @1 N( N& N1 W9 F其实本人用的是2.6.6的内核,因为在AS3.0上升级到2.6.9以上的内核, " c5 s3 {- s0 I  M% A2 d" ]
mount大的nfs网络硬盘时,df 显示不正确,明明是800G的盘变成4.2G, ! T; k/ v) `4 I9 ?" s) P+ O5 b3 P
不过还是能正常用,我升级过nfs和mount的包都没用,/var/log/message里
# z6 S' r8 S! P$ ~提示是kernel: nfs warning: mount version older than kernel, $ @. G3 M2 p& h: R8 {# e% V
还望知道的 告知一声,谢 BTW:2.6.8的内核没用过 </P># P7 U# t  F# X
<>内核源<a href="http://hackbase.com/hacker" target="_blank" >代码</A>:<a href="http://www.kernel.org/pub/<a%20href=" target="_blank" >linux</A>/kernel/v2.6/<a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>-2.6.10.tar.bz2"&gt;http://www.kernel.org/pub/<a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>/kernel/v2.6/<a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>-2.6.10.tar.bz2</A>
% f3 J& m. o. ]$ [9 a最新内核补丁:<a href="http://www.kernel.org/pub/<a%20href=" target="_blank" >linux</A>/kernel/v2.6/snapshots/patch-2.6.10-bk4.bz2"&gt;http://www.kernel.org/pub/<a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>/kernel/v2.6/snapshots/patch-2.6.10-bk4.bz2</A> </P>2 I, F4 L, `0 T7 @: H" q9 m
<>cd /usr/src
/ N  U1 t1 F1 y& Z; S# |7 brm -rf <a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>
5 z2 u9 B2 [6 k/ ftar jxf /download/<a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>-2.6.10.tar.bz2 5 M' h0 _0 P5 F$ \6 ^$ T# `
ln -s <a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>-2.6.10 <a href="http://hackbase.com/skill/linux" target="_blank" >linux</A> & @: _; m/ O) z* F/ ^+ _/ c0 y
cd <a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>
' Z  Q$ W1 |' x2 v$ x) J5 `bunzip2 -dv /download/patch-2.6.10-bk4.bz2 |patch -p1 4 \3 [: |# f. _# A7 [7 v
如果在/usr/src目录下就用patch -p0 </P># J! A7 v+ B9 I( d( u5 ?# S
<>二、修改内核源<a href="http://hackbase.com/hacker" target="_blank" >代码</A> (升级2.6就是为了优化,干脆连源<a href="http://hackbase.com/hacker" target="_blank" >代码</A>也改了吧) </P>$ b( z: l" Q6 C' N
<>1.修改/usr/src/<a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>/include/<a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>/posix<a href="http://www1.hackbase.com/skill/linux/200501209624.htm#" target="_blank" >_</A>types.h
* g& H0 ^% {$ V: \. J( r0 B设置fd<a href="http://www1.hackbase.com/skill/linux/200501209624.htm#" target="_blank" >_</A>set支持的最大数量
9 A. }/ W4 X0 x6 Q1 O#define <a href="http://www1.hackbase.com/skill/linux/200501209624.htm#" target="_blank" >_</A><a href="http://www1.hackbase.com/skill/linux/200501209624.htm#" target="_blank" >_</A>FD<a href="http://www1.hackbase.com/skill/linux/200501209624.htm#" target="_blank" >_</A>SETSIZE 1024 ---&gt; 65536 </P>2 r4 }( ^& i3 |4 ]: a" b' }- I( ]
<>2.修改/usr/src/<a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>/include/<a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>/fs.h 9 X1 W# f$ \! \* B
设置最大打开文件数量(TCP连接数量)
5 }6 V& W, P, p5 C$ }) D2 w#define INR<a href="http://www1.hackbase.com/skill/linux/200501209624.htm#" target="_blank" >_</A>OPEN 1024 ---&gt; 65536 & R! a7 A5 [/ k5 D$ |
#define NR<a href="http://www1.hackbase.com/skill/linux/200501209624.htm#" target="_blank" >_</A>FILE 8192 ---&gt; 65536 " E# ~. j7 A9 J, ]
#define NR<a href="http://www1.hackbase.com/skill/linux/200501209624.htm#" target="_blank" >_</A>RESERVED<a href="http://www1.hackbase.com/skill/linux/200501209624.htm#" target="_blank" >_</A>FILES 10 ---&gt; 128 </P>5 Y* T' Q+ c' b% b! Z, T
<>3.修改/usr/src/<a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>/include/net/tcp.h & C/ b: a. f. B+ L( ]$ u
设置TIMEOUT的时间为1秒
2 I# {4 U7 [5 z) i1 F  U#define TCP<a href="http://www1.hackbase.com/skill/linux/200501209624.htm#" target="_blank" >_</A>TIMEWAIT<a href="http://www1.hackbase.com/skill/linux/200501209624.htm#" target="_blank" >_</A>LEN (60*HZ) 60 ---&gt; 1*HZ
; t( L0 p& p& Q设置在backlog队列里的半连接的重试次数,每次都会花相应的时间,本质上 也是减少重试时间
% v$ N* x; d7 i#define TCP<a href="http://www1.hackbase.com/skill/linux/200501209624.htm#" target="_blank" >_</A>SYNACK<a href="http://www1.hackbase.com/skill/linux/200501209624.htm#" target="_blank" >_</A>RETRIES 5 ---&gt; 3 </P>4 J8 V! R9 I% F7 L8 g
<P>针对RHEL-AS3本来就是稳定+优化的,不过就算你用 RHEL-AS3 自己的内核,那也要修改一下上面的参数才好呀 </P>; u& `" y' F9 U% O0 u
<P>三、安装必要的<a href="http://hackbase.com/hacker/tool" target="_blank" >工具</A> </P>4 q4 h3 _9 K: ?. y  V5 _( a
<P>1.下载module-init-tools-3.1.tar.bz2
& s5 E1 K5 Z" M, a# t  K# e<a href="http://www.kernel.org/pub/<a%20href=" target="_blank" >linux</A>/utils/kernel/module-init-tools/module-init-tools-3.1.tar.bz2"&gt;http://www.kernel.org/pub/<a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>/utils/kernel/module-init-tools/module-init-tools-3.1.tar.bz2</A>
$ N. A- s% @. B0 C% k<a href="http://hackbase.com/hacker" target="_blank" >代码</A>:
, G: ]3 F# W" @) C& k5 `! E" E        ./configure --prefix=/
' }+ r9 S1 T# t: P        make moveold
1 ]: r. Q- ^0 c& q        make all install * H7 D2 R- S* @& z( C
        ./generate-modprobe.conf /etc/modprobe.conf </P>5 t4 _* U, X$ J7 R9 F$ u0 x. L
<P>2.下载新的mkinitrd % k4 R7 v: G7 {5 Z8 C$ h
<a href="ftp://195.220.108.108/<a%20href=" target="_blank" >linux</A>/6/fedora/core/3/i386/os/Fedora/RPMS/mkinitrd-4.1.18-2.i386.rpm"&gt;ftp://195.220.108.108/<a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>/6/fedora/core/3/i386/os/Fedora/RPMS/mkinitrd-4.1.18-2.i386.rpm</A>
8 J3 h3 _. ?6 U0 I  j3 F它需要lvm2 device-mapper
/ L; k6 L" a, I<a href="ftp://195.220.108.108/<a%20href=" target="_blank" >linux</A>/6/fedora/core/3/i386/os/Fedora/RPMS/device-mapper-1.00.19-2.i386.rpm"&gt;ftp://195.220.108.108/<a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>/6/fedora/core/3/i386/os/Fedora/RPMS/device-mapper-1.00.19-2.i386.rpm</A> - H3 K( c% h4 p- d& L( u! _9 `
<a href="ftp://195.220.108.108/<a%20href=" target="_blank" >linux</A>/6/fedora/core/3/i386/os/Fedora/RPMS/lvm2-2.00.25-1.01.i386.rpm"&gt;ftp://195.220.108.108/<a href="http://hackbase.com/skill/linux" target="_blank" >linux</A>/6/fedora/core/3/i386/os/Fedora/RPMS/lvm2-2.00.25-1.01.i386.rpm</A>
  X( o! P# O. y: l: D1 \6 M) X如果不更新这个包在make install时会提示以下错误:
" p, i8 v3 N, V$ y, l4 f<a href="http://hackbase.com/hacker" target="_blank" >代码</A>:
1 ~- W" }: }1 V3 l- @( ~/ Y: D        No module mptbase found for kernel 2.6.10-bk4, aborting. ( W* k- w  h" c$ |1 V
        mkinitrd failed
  k: N* J8 t' H: B  L% L2 Q        make[1]: *** [install] Error 1
$ s' V% X- T) e1 ~& Z) {        make: *** [install] Error 2 </P>
3 O" J1 Q+ i. n<P>安装lvm2-2.00.25-1.01.i386.rpm时请用rpm -ivh --nodeps package name </P>
$ x8 d0 o2 t0 L' D# a: i$ |<P>四、make menuconfig 4 o1 t# Y$ P. D* l$ q4 J0 h) e" T/ H
<a href="http://hackbase.com/hacker" target="_blank" >代码</A>: ; V# W  U$ h8 B& Z* R/ s% z
01.Code maturity level options    ---&gt; % X: `5 |4 x0 E( |( u3 _" |& f
        
  • Prompt for development and/or incomplete code/drivers                  # s4 t8 }4 p% Z7 w  z. r( ~
            
  •    Select only drivers expected to compile cleanly                            ! ^  X3 p6 U% n0 }5 O6 m+ G+ Z
        02.General setup  ---&gt; 5 R9 \4 f  j! F) G6 x' F
            
  • Support for paging of anonymous memory (swap)                      5 C7 P- u% B8 W' N* ^5 J
            
  • System V IPC                                                                  
    9 e+ @" ?6 \2 F+ H        
  • POSIX Message Queues                                                         
    . j1 ]2 H/ d& F        [ ] BSD Process Accounting                                                      / u! M6 ~- S9 X6 k. @; r
            
  • Sysctl support                                                                  
    * p; y0 n9 D/ X7 D4 D7 X* T4 U, E% W        [ ] Auditing support                                                                1 i( W7 \: H3 e  t, U$ }; D
            [ ] Support for hot-pluggable devices                                                
      h  N  R0 m3 R        
  • Kernel Userspace Events                                                        8 |. M/ @3 b5 J) C
            [ ] Kernel .config support                                                          ) f# N  {; S3 W/ |) d
            
  • Configure standard kernel features (for small systems)  ---&gt;   
    8 w! `6 \6 ~. O( I% a* ^         
  •    Load all symbols for debugging/kksymoops                                       
    9 P; M% {) J2 J, b) d              [ ]     Do an extra kallsyms pass                                                      
    1 _# ]! B# w7 U1 i5 |: {$ r              
  •    Enable futex support                                                            
    ' d/ ^* y8 w' j4 |: g+ n1 ]1 F, ?              
  •    Enable eventpoll support                                                        
    8 x  `" A$ D% W2 L( C# K( A6 K              [ ]   Optimize for size                                                               
    1 e4 X* i3 y& h0 {0 K( W3 Y              
  •    Use full shmem filesystem
    , G0 v9 G" c" p( [    03.Loadable module support  ---&gt;         
    ) l* g  }/ l3 d# |/ s        
  • Enable loadable module support                                          
    0 x6 |2 [6 U1 ?2 ~+ c, t3 x        
  •    Module unloading                                                        
    1 K2 I, I6 q; s" b4 P+ U) [        [ ]     Forced module unloading                                              & i5 n$ L( J2 q8 V+ x, A
            [ ]   Module versioning support (E<a href="http://hackbase.com/skill/XP" target="_blank" >XP</A>ERIMENTAL)                                
    3 N6 A& j# R6 h% B+ m        [ ]   Source checksum for all modules                                       
    + ~. \; z* H- `* ]. R# @7 F        
  •    Automatic kernel module loading
    ! \# C1 P, q, M2 I* @0 }$ T    04.Processor type and features  ---&gt;  7 _5 y( t; ^7 q& g1 C& g) }
               Subarchitecture Type (PC-compatible)  ---&gt;   
    7 p+ R+ e8 x5 y+ f           Processor family (Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon)  ---&gt;   
    8 G3 Q" t7 e/ K3 F% j      
  • Generic x86 support                                    6 `1 B7 A0 u% U
           [ ] HPET Timer Support                                      
    * B4 a) E9 x2 Q8 ^      
  • Symmetric multi-processing support      多CPU               
    1 x; M/ m6 ^# \5 J  b% d       (8)   Maximum number of CPUs (2-255)                        
    1 `% J+ w0 O% @% ?5 K/ v      
  •    SMT (Hyperthreading) scheduler support                , @8 F: S( S; D" ~) U) n/ o1 j
          
  • Preemptible Kernel                     抢占式内核,请选上它   
    # N4 O& a9 [6 ]       [ ] Machine Check Exception                                9 E' J1 r6 \* u
           &lt; &gt; Toshiba Laptop support                                  4 }, j+ \; J: e; X2 p7 _
           &lt; &gt; Dell laptop support                                    
    + U$ V4 T; t" k, R9 g; v0 g       &lt; &gt; /dev/cpu/microcode - Intel IA32 CPU microcode support  * H1 Z# ]7 E& v2 M; [6 ~; \
           &lt; &gt; /dev/cpu/*/msr - Model-specific register support        
    5 y. f1 _% I( J, [. J# ]  y' Y" M       &lt; &gt; /dev/cpu/*/cpuid - CPU information support              9 D+ G7 W1 a( |" T, ^
               Firmware Drivers  ---&gt;                                 
    $ K. K2 r/ p1 H3 S; L           High Memory Support (4GB)  ---&gt;         高内存              
    . Y/ X' _( v2 o9 G- c0 Y       [ ] Allocate 3rd-level pagetables from highmem              : d  y0 l" H4 g% s5 s9 I
           [ ] Math emulation                                          
    9 b+ D. `% k$ S* G( l0 ]      
  • MTRR (Memory Type Range Register) support              
    * ], _" W4 F3 G/ e$ f4 |      
  • Enable kernel irq balancing                           
    / ?9 r7 b* k3 X+ R& D1 G2 b       [ ] Use register arguments (E<a href="http://hackbase.com/skill/XP" target="_blank" >XP</A>ERIMENTAL)        
    $ N6 x8 I+ z+ M) T+ Y& C    05.Power management options (ACPI, APM)  ---&gt;    电源管理 自定 (偶没选)
    $ @, P) ]0 V3 z/ y    06.Bus options (PCI, PCMCIA, EISA, MCA, ISA)  ---&gt; 板卡支持  自定 + N8 r9 q$ H% e* A& s  _. Y; K9 L
            
  • PCI support                                                                    4 ^* q6 n$ b' {3 x! P9 \1 q$ D3 v
            PCI access mode (Any)  ---&gt;                                                3 l, I: I' f$ y6 V5 Y% H" J1 s' k
            [ ] Message Signaled Interrupts (MSI and MSI-X)                                
    9 {5 e5 n  |% l7 D5 g8 t& Z        
  • Legacy /proc/pci interface                                                   
    , x4 X5 O1 w8 M6 L        
  • PCI device name database                                                      
    : p. A9 p/ V3 a9 C        [ ] ISA support                                                                    ; _7 M1 @' v5 R6 n( o3 U5 F: H
            [ ] MCA support                                                                    
    ! g5 O5 J' R/ o; v% s5 h        &lt; &gt; NatSemi SCx200 support
    2 [! J; t3 k$ B0 E    07.Executable file formats  ---&gt;
    & w2 V4 N  ^) T9 p        
  • Kernel support for ELF binaries                                                
    7 G( {* z& k8 P  w) T        &lt;M&gt; Kernel support for a.out and ECOFF binaries                                 
    / d' o( S/ j7 Q3 {2 O        &lt;M&gt; Kernel support for MISC binaries  </P>
    作者: 韩冰    时间: 2005-1-20 14:36
    08.Device Drivers  ---&gt;   设备驱动及网络支持 ) u6 s8 ?. M7 M. i: x, z7 V: j' b
             Generic Driver Options  ---&gt;  默认
    # ~4 }. g( t+ [            
  • Select only drivers that don't need compile-time external firmware                    
    2 `; A3 |; C& Y2 R0 w! G            
  • Prevent firmware from being built                                      
    # L1 D0 g. e! L! ^9 q        Memory Technology Devices (MTD)  ---&gt;  不选 + e% F- i1 h: i) X
             Parallel port support  ---&gt;    并行端口   自定(偶没选)        
    $ D+ G/ ?5 @0 Z$ `- T# E( \        Plug and Play support  ---&gt;    支持热插拔 自定(偶没选)
    9 M( T/ K- F) z4 _) d         Block devices  ---&gt; 2 r4 H! B( a/ ]& h4 y) F6 a
                &lt;*&gt; Normal floppy disk support                                      . f( m* @  J4 l5 A' R2 n% Z5 ]
                &lt; &gt; Compaq SMART2 support                                          0 n6 d: h! ^! z( n- u4 A
                &lt; &gt; Compaq Smart Array 5xxx support                                " b% }% W& K  L0 _; {1 O- S* x
                &lt; &gt; Mylex DAC960/DAC1100 PCI RAID Controller support                , F! x5 \. i+ K* z
                &lt; &gt; Micro Memory MM5415 Battery Backed RAM support (E<a href="http://hackbase.com/skill/XP" target="_blank" >XP</A>ERIMENTAL)  
    , B, a+ V* U6 a2 G& y& n            &lt;M&gt; Loopback device support                                        # j; p9 }( H3 _. H' h: v3 `
                &lt; &gt;   Cryptoloop Support                                            
    + u7 T$ ?- I- E" p) e            &lt;M&gt; Network block device support                                    " [, r- Y1 r) d4 h+ ?( [1 s
                &lt; &gt; Promise SATA SX8 support                                        5 `, ]! c' u9 a( @) R
                &lt;M&gt; RAM disk support                                                9 I1 P6 L% d: g3 Z" v
                (16)  Default number of RAM disks                                  : o: w3 n, X5 X$ |" V" B* F, j
                (4096) Default RAM disk size (kbytes)                              * F- F# X3 `" M
                ()  Source directory of cpio<a href="http://www1.hackbase.com/skill/linux/200501209624_1.htm#" target="_blank" >_</A>list                                  4 A' W1 Y& L( Q
                [ ] Support for Large Block Devices                                
    ' [, X- U% n1 l2 n, {& e            &lt; &gt; Packet writing on CD/DVD media                                  ' F: ^) H! y# W
                     IO Schedulers  ---&gt;   IO调度器,都选上吧 可以在grub.conf指定用IO调度哪种方式,后面会讲的                        
    0 i4 C8 ~8 c4 m% u4 B                     &lt;*&gt; Anticipatory I/O scheduler                              
    # C% B4 h% S, F5 o  N7 }. N; O                     &lt;*&gt; Deadline I/O scheduler                                 
    ( T- X4 w8 b) w% L2 C                     &lt;*&gt; CFQ I/O scheduler            
    3 a" R- a( v( d4 }3 |  B         ATA/ATAPI/MFM/RLL support  ---&gt;   ATA设备 自定 (偶没选) * i: B' G! f' {* c
             SCSI device support  ---&gt;       SCSI设备 自定我有scsi的设备所以有以下选项 - o: C7 k. V  A8 \2 u0 b
                &lt;*&gt; SCSI device support                                                                . l$ b$ k9 N$ w. z# p
                
  •    legacy /proc/scsi/ support                                                        / G: Y6 P( ^/ q) \
                ---   SCSI support type (disk, tape, CD-ROM)                                            5 W. R; ]) V! e) q: g+ |
                &lt;*&gt;   SCSI disk support                                " C  u8 X2 l+ \1 m1 l& v% e
             因为偶式MPT的SCSI,所以以下都没选,省略之
    . b% s/ ^) ^3 a$ a$ o% N+ @3 q: J         Multi-device support (RAID and LVM)  ---&gt;  支持RAID和LVM(逻辑卷)  自定 ! Q# Z; G# x# z& \1 ?2 ]- h
                
  • Multiple devices driver support (RAID and LVM)        % ]1 Y' {1 V# h) j/ A  k
                &lt;*&gt;   RAID support                                       
    5 j2 y) x- h" `            &lt; &gt;     Linear (append) mode                              ; y; y0 ~4 Z4 d) n4 l6 z
                &lt;*&gt;     RAID-0 (striping) mode                           
    6 I- ]/ d8 P4 }( Q            &lt; &gt;     RAID-1 (mirroring) mode                          + L' b/ V! k% c2 A3 {
                &lt; &gt;     RAID-10 (mirrored striping) mode (E<a href="http://hackbase.com/skill/XP" target="_blank" >XP</A>ERIMENTAL)  
    7 q% ^4 U$ N, r  }8 [            &lt;*&gt;     RAID-4/RAID-5 mode                                
    3 U) S* t# L/ l/ N# P8 o( b5 @* ~            &lt; &gt;     RAID-6 mode (E<a href="http://hackbase.com/skill/XP" target="_blank" >XP</A>ERIMENTAL)                        , d: P# k) N, d, t" S" S* D$ A
                &lt;*&gt;     Multipath I/O support                           
    & Q- P& J% p. W3 p7 c/ B; R            &lt; &gt;     Faulty test module for MD                        8 r& z3 H/ A: u5 `- ~' i% _& K& n
                &lt;*&gt;   Device mapper support                              
    + H( C) j! v" |3 S" _6 c% S            &lt; &gt;     Crypt target support                              
    3 L2 t  G" f' m- `2 `            &lt; &gt;     Snapshot target (E<a href="http://hackbase.com/skill/XP" target="_blank" >XP</A>ERIMENTAL)                    
    0 E" L$ f: r# K3 u1 {            &lt; &gt;     Mirror target (E<a href="http://hackbase.com/skill/XP" target="_blank" >XP</A>ERIMENTAL)                        R* L$ Z; A  l' I0 }( h, i
                &lt; &gt;     Zero target (E<a href="http://hackbase.com/skill/XP" target="_blank" >XP</A>ERIMENTAL)                  3 g) f' B! w/ K
             Fusion MPT device support  ---&gt;    偶的SCSI是这个,所以选了 还是自定                7 m" q1 d% |8 v/ }5 @. I
                      &lt;*&gt; Fusion MPT (base + ScsiHost) drivers                                 
    0 |/ g3 P) z2 G5 s            (40)  Maximum number of scatter gather entries                              9 ^0 k7 s* M6 `: s5 A
                &lt;*&gt;   Fusion MPT misc device (ioctl) driver    ( Y+ U8 r& k( X+ S
             IEEE 1394 (FireWire) support  ---&gt;  自定  (偶没选)
    9 o1 P. d; j) k1 V         I2O device support  ---&gt;     自定  (偶没选)
    ! P" u) [$ m, ^- U         Networking support  ---&gt;     网络选项 * H; l3 \: K+ T# m
                   
  • Networking support                                                                  
    : y' C% }- Y& Q  o( c                 Networking options  ---&gt;                                        ! B/ r$ _' J! W0 X$ j* L
                                  &lt;*&gt; Packet socket                                                                        # G( w9 N( G# C/ R* p" g# ^4 L
                         [ ]   Packet socket: mmapped IO                                                         
    1 F+ K6 L6 n( u- p* G: |$ |                     &lt; &gt; Netlink device emulation                                                            
    9 o& M& x% B7 ?1 @                     &lt;*&gt; Unix domain sockets        如果你有网络就选                                                         
    ) y% K; S" O9 l# S5 n* _                     &lt; &gt; PF<a href="http://www1.hackbase.com/skill/linux/200501209624_1.htm#" target="_blank" >_</A>KEY sockets                                                                     
    ( d7 D$ G+ m$ T3 p/ r: d  A# u$ h: l                     
  • <a href="http://hackbase.com/hacker" target="_blank" >TCP/IP</A> networking                                                                    0 t" L) ~" j5 W0 `* q5 h
                         [ ]   IP: multicasting                                                                  
    + M& I; z- o- j( z% w                     [ ]   IP: advanced router                                                                # I8 X5 e2 |5 ^( s
                         [ ]   IP: kernel level autoconfiguration                                                
    3 }  O& K, T: T4 T                     &lt; &gt;   IP: tunneling                                                                     
    , P/ {4 Q$ [+ y# E* Q' d4 k                     &lt; &gt;   IP: GRE tunnels over IP                                                            
    ! `3 z* z" u, T3 }4 x( I) f4 r                     [ ] IP: ARP daemon support (E<a href="http://hackbase.com/skill/XP" target="_blank" >XP</A>ERIMENTAL)                                                " [  }# P$ w1 r  L/ f. @% E
                         
  • IP: TCP syncookie support (disabled per default)     能防DOS<a href="http://hackbase.com/hacker" target="_blank" >攻击</A>,但会降低一点性能,总的说性价比不错                                $ `( U( J8 m5 G5 r, g# X8 ~
                         &lt; &gt; IP: AH transformation                                                               
    8 M2 n. Z% ~5 Y7 k1 d, ~                     &lt; &gt; IP: ESP transformation                                                              0 ^1 H0 O, H: ~, j/ e5 y
                         &lt; &gt; IP: IPComp transformation                                                            
    0 \( Q' U: M0 x7 G: X6 [( [/ `                     &lt; &gt; IP: tunnel transformation                                                            
    : \( W, V" J# t1 K                     &lt;*&gt; IP: TCP socket monitoring interface                                                  
      V$ K& a1 O7 z8 m3 d/ P                      IP: Virtual Server Configuration  ---&gt;                   lvs 支持                            - j* w6 {+ F3 {% i3 T. W: j
                         &lt; &gt; The IPv6 protocol (E<a href="http://hackbase.com/skill/XP" target="_blank" >XP</A>ERIMENTAL)                                                   
    ' I. e% ?* O! ]) N( s4 K: ?                     
  • Network packet filtering (replaces ipchains)  ---&gt;    包过滤省略(知道的自己选,不熟悉的都选上)              
    . M$ U$ T2 W6 S0 @* }; U% ^                                           以下都没选,省略
    ) a4 O8 \+ \( @5 I2 {. n! e                [ ] Amateur Radio support  ---&gt;                                                        8 i% \$ o6 x3 t6 M5 q8 F
                &lt; &gt; IrDA (infrared) subsystem support  ---&gt;                                &amp;n, bsp;             o. o# E1 P0 d8 b0 h% v4 [
                &lt; &gt; Bluetooth subsystem support  ---&gt;                                                  # O$ V$ j3 q4 A; c# M) t( m4 w
                
  • Network device support                                                              
    , v' t% L( r+ o            &lt; &gt;   Dummy net driver support                这个是nis<a href="http://vip.hackbase.com/" target="_blank" >服务</A>器的吧,不大清楚,没用过                                          ( X3 Y: H: K& |' s; g; Z
                &lt;*&gt;   Bonding driver support                  双网卡绑定的                                          
    $ i8 i. G5 `2 T' Y            &lt; &gt;   EQL (serial line load balancing) support                                          ; ?+ B: k" ?+ t  E
                &lt; &gt;   Universal TUN/TAP device driver support                     
    2 C. @  @! s9 q2 n) B1 r* J                 ARCnet devices  ---&gt;                                                              
    ( R8 k1 N6 ?" F1 e( |                 Ethernet (10 or 100Mbit)  ---&gt;                                                   
    8 t& E' y0 I; s1 t" T" {1 `5 R                 Ethernet (1000 Mbit)  ---&gt;                        % r4 Z  p8 }$ T6 e/ z
                         &lt; &gt; Alteon AceNIC/3Com 3C985/NetGear GA620 Gigabit support                                    # S, g* L/ \# I: b- s4 Q( m
                         &lt; &gt; D-Link DL2000-based Gigabit Ethernet support                                              9 S1 }7 m; k# e7 f6 ]
                         &lt; &gt; Intel(R) PRO/1000 Gigabit Ethernet support                                                1 H7 O, z! j9 `; p
                         &lt; &gt; National Semiconduct DP83820 support                                                      
    1 ~: E; k1 i. l+ I. Y# [                     &lt; &gt; Packet Engines Hamachi GNIC-II support                                                    1 v& [" W$ i1 F
                         &lt; &gt; Packet Engines Yellowfin Gigabit-NIC support (E<a href="http://hackbase.com/skill/XP" target="_blank" >XP</A>ERIMENTAL)                              
    8 M0 K: M/ U, }- i5 z8 u                     &lt; &gt; Realtek 8169 gigabit ethernet support                                                    ( Z* D' p2 `  @/ P
                         &lt; &gt; Marvell Yukon Chipset / SysKonnect SK-98xx Support                                       
    * B* w$ \( C* r& J/ `6 X                     &lt;*&gt; Broadcom Tigon3 support    9 i8 A( v. R# J) {* z+ u
                    以下都没选,省略   
    % ]! W3 v' \  y) q& I" {        ISDN subsystem  ---&gt;                                          
    : u! A& C/ i; F$ `        Telephony Support  ---&gt; + t5 [; K3 Z* \& @# r  |
            Input device support  ---&gt;                                          " F5 @$ {; P+ k3 t. n' {, ~. v) m
             Character devices  ---&gt;                                                5 U* j: T# J  v0 Z0 S5 f- G" b
            I2C support  ---&gt;              8 s2 H) f! ^- P0 C9 Z$ y
            Dallas's 1-wire bus  ---&gt;      4 S- K! ~- t1 S& w- d7 p. u( N/ ]
            Misc devices  ---&gt;              : c- r4 R: B; A6 j4 P) b3 a% {
            Multimedia devices  ---&gt;        % t; w& ?# m& F* `* h
            Graphics support  ---&gt;          ' `8 V* B0 G$ o( d* n, l
            Sound  ---&gt;                    
      G1 g, n5 ]3 b% k: Q# r0 ~        USB support  ---&gt;              5 J+ ]4 p) i. q* K
            MMC/SD Card support  ---&gt;    以上都没选,需要的自己选 8 b$ W  }2 u: [# i" _6 U0 E/ U8 m
        09.File systems  ---&gt;        文件系统      & w4 i  J) t8 J  p
            &lt; &gt; Second extended fs support                                                               
    ; _6 u+ \4 i7 x5 g6 i2 q- @5 y        &lt;*&gt; Ext3 journalling file system support                                                   
    1 P1 {" t4 F* U3 w# X* o        [ ]   Ext3 extended attributes                                                              
    2 Y, D- |2 G+ a" [$ l" F: u) }' H        
  • JBD (ext3) debugging support                                                            
    . M4 I/ u3 Y  n" _8 s& _  J3 y+ _7 B6 J        &lt; &gt; Reiserfs support                                                                        
    - [) G6 ]" T8 b. P: ?        &lt; &gt; JFS filesystem support                                                                  
    $ n7 N+ M: o6 K+ [! s7 c  [$ g        &lt; &gt; XFS filesystem support                                                                  
    * Q4 |5 q9 l! P& v7 x- q: v        &lt; &gt; Minix fs support                                                                        # [" v: C" w' |
            &lt; &gt; ROM file system support                                                                ; l: ^! n7 R3 W+ A) ~7 i0 B
            [ ] Quota support                                                                          : c/ t) p$ S" z9 ~
            &lt; &gt; Kernel automounter support                                                              ( q" x7 W2 N& ]) J. B5 F" p
            &lt;*&gt; Kernel automounter version 4 support (also supports v3)                                
      N8 Z  y% @8 Q! {1 a% ~            CD-ROM/DVD Filesystems  ---&gt;                                              8 M, I: [/ C; Q# F6 G  z
                    &lt;*&gt; ISO 9660 CDROM file system support                                              9 G0 Q$ H' Y% a. c" Q+ x
                    [ ]   Microsoft Joliet CDROM extensions                                            
    7 p" ?' X' w* R, v: s                [ ]   Transparent decompression extension                                          
    3 V6 O# K9 s0 f  ^% _                &lt; &gt; UDF file system support  , l& y, b% g! Q3 j9 j, ^+ e
                DOS/FAT/NT Filesystems  ---&gt;             floppy要用到的文件格式
    + B; n( H" K2 Q/ S3 z: d! Y                &lt;*&gt; MSDOS fs support                                                                                                                    
    * o( y& G9 w8 n# x9 W9 G7 r2 ?. k4 ?                &lt;*&gt; VFAT (Windows-95) fs support                                                    . C( p- Z$ O& C& y. k4 E
                    (437) Default codepage for FAT (NEW)                                                0 J  G! e& U$ `0 m
                    (iso8859-1) Default iocharset for FAT (NEW)                                        ! I# S' D& H; Z' I# o; c
                    &lt; &gt; NTFS file system support                                                         
    $ J9 [, L2 ~' j& K            Pseudo filesystems  ---&gt;
    & i$ E* j" R6 k/ j! V               
  • /proc file system support                             proc文件系统支持                              
    ' T5 p7 p" g$ m- ^3 i                [ ]   /proc/kcore support                                                               
    8 O2 D+ x5 j+ j( T+ p4 a/ C                [ ] /dev file system support (OBSOLETE)                                                  
    % ?0 H+ v- l) N                [ ] /dev/pts Extended Attributes                                                        
    : a, {' L  Z* T& L4 C. c9 l& ?               
  • Virtual memory file system support (former shm fs)     虚拟内存支持                              % c# ?8 Y; _! z) U2 T4 F
                    [ ]   tmpfs Extended Attributes                                                          ( H' H# w" u" X
                    [ ] HugeTLB file system support                                                              
    0 @5 G9 s" F/ T- v6 ~" T: g2 ?            Miscellaneous filesystems  ---&gt;                                      ) D% l1 d$ K; d5 b& N
                Network File Systems  ---&gt;                                                          # K$ Q2 ~7 i! T. d$ n/ a2 o9 x
                    &lt;*&gt; NFS file system support                      nfs客户端支持                                                              
    4 n4 T$ I( u6 h7 m7 Y               
  •    Provide NFSv3 client support                                                                            - P9 x; }) \1 c) A! K" ?: X$ H
                    [ ]   Provide NFSv4 client support (E<a href="http://hackbase.com/skill/XP" target="_blank" >XP</A>ERIMENTAL)                                                              ! B+ E( P9 o. Q
                    [ ]   Allow direct I/O on NFS files (E<a href="http://hackbase.com/skill/XP" target="_blank" >XP</A>ERIMENTAL)                                                            3 I4 y  D& U' c
                    &lt; &gt; NFS server support                           nfs<a href="http://vip.hackbase.com/" target="_blank" >服务</A>端支持                                                            
    8 U' `( ]% z0 v) L. c: {# f7 i                &lt; &gt; Secure RPC: Kerberos V mechanism (E<a href="http://hackbase.com/skill/XP" target="_blank" >XP</A>ERIMENTAL)                                                            
    % V) T3 A$ }7 v8 _* Q  h                &lt; &gt; Secure RPC: SPKM3 mechanism (E<a href="http://hackbase.com/skill/XP" target="_blank" >XP</A>ERIMENTAL)                                                                # v" Q: A, m0 O5 J
                    &lt; &gt; SMB file system support (to mount Windows shares etc.)       samba支持                                              8 F& o5 m9 W+ D; k
                    &lt; &gt; CIFS support (advanced network filesystem for Samba, Window and other CIFS compliant servers)              
    3 x5 L2 [& E" u                &lt; &gt; NCP file system support (to mount NetWare volumes)                                                        + X+ P: ]6 Y  U: U
                    &lt; &gt; Coda file system support (advanced network fs)                                                            : J6 _1 d3 m' ?% t$ q; @4 T4 [& l
                    &lt; &gt; Andrew File System support (AFS) (Experimental)                    
    ) a) \. D( x+ m; o. f            Partition Types  ---&gt;        
    $ I' e! G6 @4 e! y+ _( G            Native Language Support  ---&gt;                 自己选      8 o" h8 ]! K% L( n, H6 N
        10.Profiling support  ---&gt;                             没选                                             
    ! b9 J" y9 p% E; R& v6 V. \- V    11.Kernel hacking  ---&gt;                                没选                                                                                              + @' K2 c. }9 p/ H, p
        12.Security options  ---&gt;                              没选
    1 ?/ z: _$ J, ?' _- @    13.Cryptographic options  ---&gt;                         没选    . U) D4 m) a: o. R/ W+ |
        14.Library routines  ---&gt;                                        , P- R  k) d9 Z+ }, [% y1 r
             &lt; &gt; CRC-CCITT functions                                
    5 K+ v) d$ h: j& k         &lt;*&gt; CRC32 functions                                    
    4 {/ S8 s  t8 k. c2 N3 c         &lt;M&gt; CRC32c (Castagnoli, et al) Cyclic Redundancy-Check <>
    5 d$ X" t( q! y- `2 A五、编译安装
    . E4 E/ f4 ~+ y$ N6 L6 w2 P步骤:make -jn(n代表同时编译的进程,可以加快编译速度,n由你的配置决定,我的配置用15-25) 3 |! U9 V# g- U
    make modules<a href="http://www1.hackbase.com/skill/linux/200501209624_1.htm#" target="_blank" >_</A>install * _8 R) j% |# Y3 M: ], D- O. l! F
    make install </P><>六、grub的设置 # S2 B: L( u0 E. N( @# F9 v
    设置之前先介绍一下2.6的I/O调度器
    : r. B7 Z1 Z" Q7 U2.6包含的四个I/O调度器分别是No-op I/O scheduler、Anticipatory I/O scheduler、Deadline I/O scheduler与CFQ I/O scheduler。
    + J9 y$ b. \- d在后文中分别简称为ns、as、ds与cfq。 </P><>ns是一个简化的调度程序它只作最基本的合并与排序。与桌面系统的关系不是很大,主要用在一些特殊的<a href="http://down.hackbase.com/" target="_blank" >软件</A>
    & T* k- W5 i( d: U与硬件环境下,这些<a href="http://down.hackbase.com/" target="_blank" >软件</A>与硬件一般都拥有自己的调度机制对内核支持的要求很小,这很适合一些嵌入式系统环境。作为桌面用户我们一般不会选择它。 </P><>as是当前内核中默认的I/O调度器。它拥有非常好的性能,在2.5中它就相当引人注意。在与2.4内核进行的对比测试中,在2.4中多项以分钟为单位
    & ~4 E* _. M6 S% R完成的任务,它则是以秒为单位来完成的。正因为如此它成为目前2.6测试版中默认的I/O调度器。但它也存在着弱点,它本身是比较庞大与复杂的,
    ' A# T7 q# n0 d4 F2 k在一些特殊的情况下,特别是在数据吞吐量非常大的<a href="http://hackbase.com/hacker" target="_blank" >数据库</A>系统中它会变的比较缓慢。 </P><>ds就是针对as的缺点进行改善而来的,还处于测试阶段,但已经很稳定了。目前表现出的性能几乎与as一样好。加之比as更加小巧, 8 `: c) _4 r* y3 |
    是相当有前途的调度器,值得一试:) </P><>cfq为系统内的所有任务分配相同的带宽,提供一个公平的工作环境,它比较适合桌面环境。事实上在测试中它也有不错的表现, + _# F9 u0 I3 A, w5 e
    mplayer xmms等多媒体播放器与它配合的相当好,回放平滑几乎没有因访问磁盘而出现的跳帧现象。对于喜欢在Linux下听音乐看电影的朋友不妨尝试一下。 </P><>好了,下面说说怎么设置:参数的格式为elevator=调度器名 </P><>修改/boot/grub/grub.conf,在kernel那行后门加入elevator=deadline </P><>例如:kernel /boot/vmlinuz-2.6.10-bk4 ro root=/dev/你的根分区 elevator=deadline </P><>七、reboot</P>




    欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5