2.6内核新特性
01.模块子系统(Module Subsystem)、统一设备模型(Unified Device Model)和 PnP 支持模块子系统发生了重大变化。
02.稳定性有所提高
为了彻底避免内核加载或者导出正在被使用的内核模块,或者至少为了减少加载或者卸载模块的同时使用该模块的可能性(这有时会导致系统崩溃),
内核加载和导出内核模块的过程都得到了改进。
03.统一设备模型
统一设备模型的创建是 2.6 内核最重要的变化之一。它促进了模块接口的标准化,其目的是更好地控制和管理设备,例如:
更准确地确定系统设备。
电源管理和设备电源状态。
改进的系统总线结构管理。
04.即插即用(PnP)支持
对 ISA PnP 扩展、遗留 MCA 和 EISA 总线以及热插拔设备的 PnP 支持。
05.内核基础设施的变化
为了区别以 .o 为扩展名的常规对象文件,内核模块现在使用的扩展名是 .ko。 创建了新的 sysfs 文件系统,当内核发现设备树时就会描述它。
内存支持,NUMA 支持支持更大数量的 RAM 2.6 内核支持更大数量的 RAM,在分页模式下最高可达 64GB。
06.NUMA
对非一致内核访问(Non-Uniform Memory Access - NUMA)系统的支持是 2.6 内核中新出现的。
07.线程模型,NPTL
相对于 v2.4 的 LinuxThreads,在版本 2.6 中新出现的是 NPTL(Native POSIX Threading Library)。 NPTL 为 Linux 带来了企业级线程支持,
提供的性能远远超过了 LinuxThreads。它所基于的用户与内核线程的比率是 1:1。
在 2003 年 10 月,GNU C 程序库 glibc 中融入了 NPTL 支持,Red Hat 率先在 Red Hat Linux 9 和 Red Hat Enterprise Linux 中使用定
制的 v2.4 内核实现了 NPTL。
08.性能改进
新的调度器算法2.6 Linux 内核引入了新的 O(1) 算法。在高负载情况下它运行得特别好。新的调度器基于每个 CPU 来分布时间片, 这样就消除了全局同步
和重新分配循环,从而提高了性能。
内核抢占(Kernel Preemption)
新的 2.6 内核是抢占式的。这将显著地提高交互式和多媒体应用程序的性能。
I/O 性能改进
Linux 的 I/O 子系统也发生了重大的变化,通过修改 I/O 调度器来确保不会有进程驻留在队列中过长时间等待进行输入/输出操作,
这样就使得 I/O 操作的响应更为迅速。
快速用户空间互斥(Fast User-Space Mutexes)
“futexes”(快速用户空间互斥)可以使线程串行化以避免竞态条件,引入它也提高了响应速度。
通过在内核空间中部分实现“futexes”以允许基于竞争设置等待任务的优先级而实现改进。
09.扩展性改进
处理器数目更多
Linux 内核 2.6 最多可以支持 64 个 CPU。支持更大的内存,归功于 PAE(物理地址扩展,Physical Address Extensions),在 32-位系统上分页模式下所
支持的内存增加到了 64GB。
用户和组
惟一用户和组的数量从 65,000 增至 40 多亿,也就是从 16-位增加到了 32-位。
PID 的数量
PID 的最大数量从 32,000 增至 10 亿。
打开文件描述符的数量
打开文件描述符的数量没有增加,但是不再需要事先设置该参数,它将自行调节。
10.支持更多的设备
在 Linux 内核 2.6 之前,内核中有可以约束大型系统的限制,比如每条链 256 个设备。v2.6 内核彻底地打破了这些限制,
不但可以支持更多类型的设备,而且支持更多同类型的设备。在 Linux 2.6 系统中,可以支持 4095 种主要的设备类型,
每一个单独的类型可以有超过一百万个子设备。
文件系统大小
Linux 内核 2.6 所允许的可寻址文件系统大小最大为 16 TB。
11.文件系统
ext2、ext3 和 ReiserFS 等传统 Linux 文件系统得到了显著的改进。最值得注意的改进是扩展属性(或文件元数据)的引入。
最重要的是 POSIX ACL 的实现,这是对普通 UNIX 权限的扩展,可以支持更细化的用户访问控制。
12.除了对传统 Linux 文件系统的改进支持以外,新的内核完全支持在 Linux 中相对较新的 XFS 文件系统。
Linux 2.6 内核现在还引入了对 NTFS 文件系统的改进的支持,现在允许以读/写模式安装 NTFS 文件系统。
基于以上2.6的新特性,我决定用2.6的内核,我的系统为Red Hat Enterprise Linux AS release 3 (Taroon Update 3) 硬件环境为DELL 2850
■内核升级手顺
【下核最新内核文件】
内核源代码:
最新内核补丁:
【解压相内核文件并安装补丁】
tar xvzf /tmp/linux-2.6.17.tar.gz
cd linux-2.6.17
bunzip2 -dv /tmp/patch-2.6.10-bk4.bz2 |patch -p1
【配置内核选项】
make menuconfig
【编译安装】
make -jn(n代表同时编译的进程,可以加快编译速度)
make modules_install
make install
reboot
■内核配置选项
Code maturity level options (代码成熟等级 )
Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
[*] Select only drivers expected to compile cleanly
prompt for development and/or incomplete code/drivers.
默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.你应该选择它,因为有许多设备可能必需选择这个选项才能进行配置,
实际上它是安全的。
General setup (普通属性设置 )
General setup --->
() Local version - append to kernel release
[*] Support for paging of anonymous memory (swap)
[*] System V IPC
[*] POSIX Message Queues
[*] BSD Process Accounting
[*] BSD Process Accounting version 3 file format
[*] Sysctl support
[ ] Auditing support
(15) Kernel log buffer size (16 => 64KB, 17 => 128KB)
[*] Support for hot-pluggable devices
[*] Kernel Userspace Events
[*] Kernel .config support
[*] Configure standard kernel features (for small systems) --->
Support for paging of anonymous memory (swap) (NEW)
这个选项将使你的内核支持虚拟内存,也就是让你的计算机好象拥有比实际内存更多 多的内存空 间用来执行很大的程序。默认是选择的。
System V IPC
为进程提供通信机制,这将使系统中各进程间有交换信息与保持同步的能力。有些程序只有在选Y的情况下才能运行,这里一定要选。
POSIX Message Queues
这是POSIX的消息队列,它同样是一种IPC。建议你最好将它选上。
BSD Process Accounting
这是充许用户进程访问内核将账户信息写入文件中的。这通常被认为是个好主意,
Sysctl support
这个选项能不重新编译内核修改内核的某些参数和变量,如果你也选择了支持/proc,将能从/proc/sys存取可以影响内核的参数或变量。建议你最好将它选上。
Auditing support
审记支持,用于和内核的某些子模块同时工作,例如SELinux。只有选择此项及它的子项,才能调用有关审记的系统调用。
Kernel log buffer size (16 => 64 KB 17 => 128 KB)
内核日志缓存的大小
Kernel Userspace Events
内核中分为系统区和用户区,这里系统区和用户区进行通讯的一种方式
Kernel .config support
将.config配置信息保存在内核中,选上它及它的子项使得其它用户能从/proc中得到内核的配置。
Configure standard kernel features (for small systems)
这是为了编译某些特殊的内核使用的,通常你可以不选择这一选项
Loadable module support (加载模块选项 )
Loadable module support --->
[*] Enable loadable module support
[*] Module unloading
[*] Module versioning support (EXPERIMENTAL)
[ ] Source checksum for all modules
[*] Automatic kernel module loading
Enable loadable module support
很多人喜欢将全部功能、硬件支持一股脑的编进内核,而不是使用模块的方式。使用模块支持,你的系统能具有更好的可扩充性。还有一个原因就是自己编写的功能
模块、设备驱动模块(假设编写的质量不高)以模块方式工作引起Kernel Panic的机率要远远低于不支持模块全部编进内核的方式。
Module unloading
不选这个功能,加载的模块就不能卸载。没什么需要多解释的,建议最好选上。
Module versioning support (EXPERIMENTAL)
这个功能可以让你使用其它版本的内核模块
Source checksum for all modules
这个功能是为了防止更改了内核模块的代码但忘记更改版本号而造成版本冲突.
Automatic kernel module loading
这个选项能让内核自动的加载部份模块,建议你最好选上。举个例子说明一下,如模块eth1394依赖于模块ieee1394。如果选择了这个选项,
可以直接加载模块eth1394;如果没有选择这个选项,必需先加载模块ieee1394,再加载模块eth1394,否则将出错。
Processor type and features (处理器内型及特性)
Subarchitecture Type (PC-compatible) --->
Processor family (386) --->
[ ] Generic x86 support
[*] HPET Timer Support
[*] Symmetric multi-processing support
[ ] Preemptible Kernel
[ ] local APIC support on uniprocessors
[ ] Machine Check Exception
[ ] Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium
<M> Toshiba Laptop support
<M> Dell laptop support
< > /dev/cpu/microcode - Intel IA32 CPU microcode support
< > /dev/cpu/*/msr - Model-specific register support
< > /dev/cpu/*/cpuid - CPU information support
Firmware Drivers --->
High Memory Support (off) --->
[ ] Math emulation
[*] MTRR (Memory Type Range Register) support
[ ] Use register arguments (EXPERIMENTAL)
Subarchitecture Type
这没什么好说的,如果用PC机的话都选这个。
Processor family (386)
这也没什么好说的,选择你机器对应的处理器即可。
Generic x86 support
这一选项针对x86系列的CPU使用更多的常规优化。如果你在上面一项选的是i386、i586之类的才选这个。
HPET Timer Support
HPET是替代8254芯片的下一代时钟处理器。这里你可以安全的选上这一选项。如果硬件不支持的话,将仍使用8254时钟处理器。
Symmetric multi-processing support
对称多处理器支持,在单CPU的机器上,不选这个选项会更快一些。由于超线程技术,看起来是两颗CPU,因些要选上这个选项。
Preemptible Kernel
这个选项能使应用程序即使内核在高负载时也很可靠,建议最好选上。
local APIC support on uniprocessors
Machine Check Exception
这个选项能让CPU检测到系统故障时通知内核
Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium
打开这个选项将会检查你机器上可能存在的问题,如果有一个非致命错误出现将会自动的修复并且记录,这可以帮助你查出程序出现问题的原因,是一个不错的选项.
Toshiba Laptop support
对Toshiba本本的支持
Dell laptop suppor
对Dell的支持
/dev/cpu/microcode - Intel IA32 CPU microcode support
这个选项是让你使用不随Linux内核发行的IA32 microcode,但是你必需有IA32 microcode的二进制文件。
/dev/cpu/*/msr - Model-specific register support
这个选项能让特权CPU访问x86的MSR寄存器。由于超线程并不是真正的多处理器环境,所以不要选择这个。
/dev/cpu/*/cpuid - CPU information support
这个选项能从/dev/cpu/x/cpuid获得CPU的唯一标识符
High Memory Support (off)
如果你有大容量的内存(超过4G)你要选它,以使内核可以使用这部分内存。偶是没这命啦这部分永远为OFF,如果你有你就ON吧。
Math emulation
估计现在没人有386或486SX的处理器了吧,那就不要选这个。
MTRR (Memory Type Range Register) support
在Intel p6家族的处理器中(Ppro、 PII和更新的)有一个内存类型范围寄存器,可用来控制处理器访问的内存范围。打开它一般可以提升显卡的显示性能
Power management options (ACPI, APM) (电源管理)
[*] Power Management support
[ ] Power Management Debug Support
[ ] Software Suspend (EXPERIMENTAL)
ACPI (Advanced Configuration and Power Interface) Support --->
APM (Advanced Power Management) BIOS Support --->
CPU Frequency scaling --->
Power Management support
电源管理没什么好说的,不想浪费电就选上。如果不选你可以跳过这部份。
Power Management Debug Support
电源管理的调试信息支持,如果不是要调试内核有关电源管理部份,请不要选择这项。
Software Suspend (EXPERIMENTAL)
休眠到硬盘。也就是将内存写入交换分区中,下次启动可以通过参数resume=/dev/swappartition(例如:resume= /dev/hda6)来恢复上次机器运行的状态。
这项功能对于系统引导时启动许多服务的机器来说很有用,可以节约启动时间。这项功能根据自己的需要选择吧,如果你选择这项功能,记得恢复休眠后重做交换分区。
ACPI (Advanced Configuration and Power Interface) Support --->
从这里进入ACPI电源管理的配置界面,要注意ACPI与APM不能同时使用,如果你同时配置了这两者,那么在系统启动时如果发现一个可工作的ACPI设备那么APM将被关闭,
ACPI会被加载
APM (Advanced Power Management) BIOS Support --->
高级电源管理的支持,一般来说笔记本应该选上,台式机可以不选。
CPU Frequency scaling --->
这一选项允许改变CPU的主频,使CPU在低负荷或使用电池时降低主频,达到省电的目的。
阅读(1134) | 评论(0) | 转发(0) |