数学建模社区-数学中国

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

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