数学建模社区-数学中国

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

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