26xx内核编译详解.docx
- 文档编号:8997655
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:40
- 大小:32.02KB
26xx内核编译详解.docx
《26xx内核编译详解.docx》由会员分享,可在线阅读,更多相关《26xx内核编译详解.docx(40页珍藏版)》请在冰点文库上搜索。
26xx内核编译详解
2.6.xx内核编译详解
做一件事情,首先要知道自己在干什么,而不是盲目得升级内核,现在升级内核有点泛滥,sigh
首先让我们先了解一下2.6内核的新特性
一、01.模块子系统(ModuleSubsystem)、统一设备模型(UnifiedDeviceModel)和PnP支持
模块子系统发生了重大变化。
02.稳定性有所提高
为了彻底避免内核加载或者导出正在被使用的内核模块,或者至少为了减少加载或者卸载模块的同时使用该模块的可能性
(这有时会导致系统崩溃),内核加载和导出内核模块的过程都得到了改进。
03.统一设备模型
统一设备模型的创建是2.6内核最重要的变化之一。
它促进了模块接口的标准化,其目的是更好地控制和管理设备,例如:
更准确地确定系统设备。
电源管理和设备电源状态。
改进的系统总线结构管理。
04.即插即用(PnP)支持
1.1.1和1.1.2小节中提及的变化使得运行2.6内核的Linux成为一个真正即插即用的OS。
例如,对ISAPnP扩展、遗留MCA和EISA总线以及热插拔设备的PnP支持。
05.内核基础设施的变化
为了区别以.o为扩展名的常规对象文件,内核模块现在使用的扩展名是.ko。
创建了新的sysfs文件系统,当内核发现设备树时就会描述它。
内存支持,NUMA支持
支持更大数量的RAM
2.6内核支持更大数量的RAM,在分页模式下最高可达64GB。
06.NUMA
对非一致内核访问(Non-UniformMemoryAccess-NUMA)系统的支持是2.6内核中新出现的。
07.线程模型,NPTL
相对于v2.4的LinuxThreads,在版本2.6中新出现的是NPTL(NativePOSIXThreadingLibrary)。
NPTL为Linux带来了企业级线程支持,提供的性能远远超过了LinuxThreads。
它所基于的用户与内核线程的比率是1:
1。
在2003年10月,GNUC程序库glibc中融入了NPTL支持,RedHat率先在RedHatLinux9和
RedHatEnterpriseLinux中使用定制的v2.4内核实现了NPTL。
08.性能改进
新的调度器算法
2.6Linux内核引入了新的O
(1)算法。
在高负载情况下它运行得特别好。
新的调度器基于每个CPU来分布时间片,
这样就消除了全局同步和重新分配循环,从而提高了性能。
内核抢占(KernelPreemption)
新的2.6内核是抢占式的。
这将显著地提高交互式和多媒体应用程序的性能。
I/O性能改进
Linux的I/O子系统也发生了重大的变化,通过修改I/O调度器来确保不会有进程驻留在队列中过长时间等待进行输入/输出操作,
这样就使得I/O操作的响应更为迅速。
快速用户空间互斥(FastUser-SpaceMutexes)
“futexes”(快速用户空间互斥)可以使线程串行化以避免竞态条件,引入它也提高了响应速度。
通过在内核空间中部分实现“futexes”以允许基于竞争设置等待任务的优先级而实现改进。
09.扩展性改进
处理器数目更多
Linux内核2.6最多可以支持64个CPU。
支持更大的内存,归功于PAE(物理地址扩展,PhysicalAddressExtensions),在32-位系统上分页模式下所支持的内存增加到了64GB。
用户和组
惟一用户和组的数量从65,000增至40多亿,也就是从16-位增加到了32-位。
PID的数量
PID的最大数量从32,000增至10亿。
打开文件描述符的数量
打开文件描述符的数量没有增加,但是不再需要事先设置该参数,它将自行调节。
10.支持更多的设备
在Linux内核2.6之前,内核中有可以约束大型系统的限制,比如每条链256个设备。
v2.6内核彻底地打破了这些限制,
不但可以支持更多类型的设备,而且支持更多同类型的设备。
在Linux2.6系统中,可以支持4095种主要的设备类型,
每一个单独的类型可以有超过一百万个子设备。
文件系统大小
Linux内核2.6所允许的可寻址文件系统大小最大为16TB。
11.文件系统
ext2、ext3和ReiserFS等传统Linux文件系统得到了显著的改进。
最值得注意的改进是扩展属性(或文件元数据)的引入。
最重要的是POSIXACL的实现,这是对普通UNIX权限的扩展,可以支持更细化的用户访问控制。
12.除了对传统Linux文件系统的改进支持以外,新的内核完全支持在Linux中相对较新的XFS文件系统。
Linux2.6内核现在还引入了对NTFS文件系统的改进的支持,现在允许以读/写模式安装NTFS文件系统。
基于以上2.6的新特性,我决定用2.6的内核,我的系统为RedHatEnterpriseLinuxASrelease3(TaroonUpdate3)
硬件环境为DELL2850
一、下载解压并打上内核补丁
我以2.6.10为例子,patche以bk4的例子,目的只是让大家知道怎么打patch,
其实本人用的是2.6.6的内核,因为在AS3.0上升级到2.6.9以上的内核,
mount大的nfs网络硬盘时,df显示不正确,明明是800G的盘变成4.2G,
不过还是能正常用,我升级过nfs和mount的包都没用,/var/log/message里
提示是kernel:
nfswarning:
mountversionolderthankernel,
还望知道的告知一声,谢:
)BTW:
2.6.8的内核没用过
内核源代码:
http:
//www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.bz2
最新内核补丁:
http:
//www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.10-bk4.bz2
cd/usr/src
rm-rflinux
tarjxf/download/linux-2.6.10.tar.bz2
ln-slinux-2.6.10linux
cdlinux
bunzip2-dv/download/patch-2.6.10-bk4.bz2|patch-p1
如果在/usr/src目录下就用patch-p0
二、修改内核源代码(升级2.6就是为了优化,干脆连源代码也改了吧)
1.修改/usr/src/linux/include/linux/posix_types.h
设置fd_set支持的最大数量
#define__FD_SETSIZE1024--->65536
2.修改/usr/src/linux/include/linux/fs.h
设置最大打开文件数量(TCP连接数量)
#defineINR_OPEN1024--->65536
#defineNR_FILE8192--->65536
#defineNR_RESERVED_FILES10--->128
3.修改/usr/src/linux/include/net/tcp.h
设置TIMEOUT的时间为1秒
#defineTCP_TIMEWAIT_LEN(60*HZ)60--->1*HZ
设置在backlog队列里的半连接的重试次数,每次都会花相应的时间,本质上也是减少重试时间
#defineTCP_SYNACK_RETRIES5--->3
针对RHEL-AS3本来就是稳定+优化的,不过就算你用RHEL-AS3自己的内核,那也要修改一下上面的参数才好呀:
)
三、安装必要的工具
1.下载module-init-tools-3.1.tar.bz2
http:
//www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.1.tar.bz2
代码:
./configure--prefix=/
makemoveold
makeallinstall
./generate-modprobe.conf/etc/modprobe.conf
2.下载新的mkinitrd
ftp:
//195.220.108.108/linux/6/fedora/core/3/i386/os/Fedora/RPMS/mkinitrd-4.1.18-2.i386.rpm
它需要lvm2device-mapper
ftp:
//195.220.108.108/linux/6/fedora/core/3/i386/os/Fedora/RPMS/device-mapper-1.00.19-2.i386.rpm
ftp:
//195.220.108.108/linux/6/fedora/core/3/i386/os/Fedora/RPMS/lvm2-2.00.25-1.01.i386.rpm
如果不更新这个包在makeinstall时会提示以下错误:
代码:
Nomodulemptbasefoundforkernel2.6.10-bk4,aborting.
mkinitrdfailed
make[1]:
***[install]Error1
make:
***[install]Error2
安装lvm2-2.00.25-1.01.i386.rpm时请用rpm-ivh--nodepspackagename
四、makemenuconfig
代码:
01.Codematurityleveloptions --->
∙Promptfordevelopmentand/orincompletecode/drivers
∙ Selectonlydriversexpectedtocompilecleanly
02.Generalsetup --->
∙Supportforpagingofanonymousmemory(swap)
∙SystemVIPC
∙POSIXMessageQueues
[]BSDProcessAccounting
∙Sysctlsupport
[]Auditingsupport
[]Supportforhot-pluggabledevices
∙KernelUserspaceEvents
[]Kernel.configsupport
∙Configurestandardkernelfeatures(forsmallsystems) --->
∙ Loadallsymbolsfordebugging/kksymoops
[] Doanextrakallsymspass
∙ Enablefutexsupport
∙ Enableeventpollsupport
[] Optimizeforsize
∙ Usefullshmemfilesystem
03.Loadablemodulesupport --->
∙Enableloadablemodulesupport
∙ Moduleunloading
[] Forcedmoduleunloading
[] Moduleversioningsupport(EXPERIMENTAL)
[] Sourcechecksumforallmodules
∙ Automatickernelmoduleloading
04.Processortypeandfeatures --->
SubarchitectureType(PC-compatible) --->
Processorfamily(Pentium-4/Celeron(P4-based)/Pentium-4M/Xeon) --->
∙Genericx86support
[]HPETTimerSupport
∙Symmetricmulti-processingsupport 多CPU
(8) MaximumnumberofCPUs(2-255)
∙ SMT(Hyperthreading)schedulersupport
∙PreemptibleKernel 抢占式内核,请选上它
[]MachineCheckException
ToshibaLaptopsupport
Delllaptopsupport
/dev/cpu/microcode-IntelIA32CPUmicrocodesupport
/dev/cpu/*/msr-Model-specificregistersupport
/dev/cpu/*/cpuid-CPUinformationsupport
FirmwareDrivers --->
HighMemorySupport(4GB) ---> 高内存
[]Allocate3rd-levelpagetablesfromhighmem
[]Mathemulation
∙MTRR(MemoryTypeRangeRegister)support
∙Enablekernelirqbalancing
[]Useregisterarguments(EXPERIMENTAL)
05.Powermanagementoptions(ACPI,APM) ---> 电源管理自定(偶没选)
06.Busoptions(PCI,PCMCIA,EISA,MCA,ISA) --->板卡支持 自定
∙PCIsupport
PCIaccessmode(Any) --->
[]MessageSignaledInterrupts(MSIandMSI-X)
∙Legacy/proc/pciinterface
∙PCIdevicenamedatabase
[]ISAsupport
[]MCAsupport
NatSemiSCx200support
07.Executablefileformats --->
∙KernelsupportforELFbinaries
Kernelsupportfora.outandECOFFbinaries
KernelsupportforMISCbinaries
08.DeviceDrivers ---> 设备驱动及网络支持
GenericDriverOptions ---> 默认
∙Selectonlydriversthatdon'tneedcompile-timeexternalfirmware
∙Preventfirmwarefrombeingbuilt
MemoryTechnologyDevices(MTD) ---> 不选
Parallelportsupport ---> 并行端口 自定(偶没选)
PlugandPlaysupport ---> 支持热插拔自定(偶没选)
Blockdevices --->
Normalfloppydisksupport
CompaqSMART2support
CompaqSmartArray5xxxsupport
MylexDAC960/DAC1100PCIRAIDControllersupport
MicroMemoryMM5415BatteryBackedRAMsupport(EXPERIMENTAL)
Loopbackdevicesupport
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 26 xx 内核 编译 详解