Linux内核定制及编译方法_第1页
Linux内核定制及编译方法_第2页
Linux内核定制及编译方法_第3页
Linux内核定制及编译方法_第4页
Linux内核定制及编译方法_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux内核定制及编译方法,目的、要求了解Linux内核主要的模块组成,掌握内核的定制或配置方法,重点掌握Linux内核的编译过程及相关命令的使用方法。,Linux内核系统模块组成,1、进程调度模块Linux以进程作为系统资源分配的基本单位,并采用动态优先级的进程高级算法,保证各个进程使用处理机的合理性。进程调度模块主要是对进程使用的处理机进行管理和控制。2、内存管理模块Linux的内存管理模块采用先进的虚拟存储机制,实现对多进程的存储管理。它提供了十分可靠的存储保护措施,对进程赋予不同的权限,用户不能直接访问系统的程序和数据,保证了系统的安全性。同时,为每个用户进程分配一个相互独立的虚拟地址空间。,Linux内核系统模块组成及功能,3、文件系统模块Linux的文件系统模块采用先进的虚拟文件系统(VFS)技术,屏蔽了各种文件系统的差别,为处理各种不同的文件系统提供了统一的接口,支持多种不同的物理文件系统达90多种。同时,Linux把各种硬件设备看作一种特殊的文件来处理,用管理文件的方法管理设备,非常方便、有效。4、网络接口模块Linux具有最强大的网络功能。网络接口模块通过套接字(Socket)机制实现计算机之间的网络通信,并采用网络层次模型提供对多种网络协议和网络硬件设备的支持。5、进程间通信模块进程间通信模块保证了Linux支持多种进程间通信机制,包括最基本的信息和管道,同时支持信息队列、信号量和共享内存等。,Linux内核的编译模式:1、编译到内核:内核启动时可以支持相应的功能,其优点是方便、速度快,系统启动即可使用这部分功能;缺点是内核变得很庞大。同时,系统安全性会降低。2、编译成模块:内核启动后可以动态加载。优点是不会使内核过分庞大,缺点是必须由自己来调用这些模块。(主流),内核配置界面(#makemenuconfig):,内核配置主要选项及功能:1.Codematurityleveloptions(代码成熟度)Promptfordevelopmentand/orincompletecode/drivers使用尚在开发中或尚未完成的代码与驱动程序。,2.Generalsetup(常规设置)1)Localversion-appendtokernelrelease在内核版本后面加上自定义的版本标识(如直接输入:test)。2)Automaticallyappendversioninformationtotheversionstring自动在版本字符串后面添加版本标识信息,编译时需要有perl以及git仓库支持。3)Supportforpagingofanonymousmemory(swap)内核使用交换分区或者交换文件作为虚拟内存。4)SystemVIPC支持SystemV的进程间通信(IPC),许多程序需要这个功能。,5)POSIXMessageQueuesPOSIX消息队列。6)BSDProcessAccounting将进程的统计信息写入文件的用户级系统调用,主要包括进程的创建时间、创建者、指令名、内存占用情况等信息。7)Exporttask/processstatisticsthroughnetlink(EXPERIMENTAL)通过netlink接口向用户空间导出任务/进程的统计信息。8)UTSNamespaces支持UTS名字空间。9)Auditingsupport审计支持,某些内核模块(例如SELinux)需要它,只有同时选择其子项才能对系统调用进行审计。,10)Kernel.configsupport把内核的配置信息编译进内核中,以后可以通过scripts/extract-ikconfig脚本来提取这些信息。11)Createdeprecatedsysfsfiles创建过时的sysfs文件系统。12)Kernel-userspacerelaysupport(formerlyrelayfs)提供从内核空间向用户空间传递大量数据的接口。13)InitialRAMfilesystemandRAMdisk(initramfs/initrd)support支持内存文件系统(initramfs/initrd)。14)Optimizeforsize(Lookoutforbrokencompilers!)编译时优化内核尺寸。15)Configurestandardkernelfeatures(forsmallsystems)配置标准的内核特性(面向小型系统)。,3.Loadablemodulesupport(可加载模块支持)1)Enableloadablemodulesupport打开可加载模块支持,如果打开它则必须通过“makemodules_install”把内核模块安装在/lib/modules/目录下。2)Moduleunloading允许卸载已经加载的模块。3)Forcedmoduleunloading允许强制卸载正在使用中的模块。4)Moduleversioningsupport允许使用其他内核版本的模块。5)Sourcechecksumforallmodules为所有的模块校验源码。6)Automatickernelmoduleloading允许内核通过运行modprobe来自动加载所需要的模块。,4.Blocklayer(块设备层)1)SupportforLargeBlockDevices使用大于2TB的块设备时需要选择。2)Supportfortracingblockioactions块队列IO跟踪支持。3)SupportforLargeSingleFiles使用大于2TB的文件时需要。4)IOSchedulersIO调度器。,5.Processortypeandfeatures(CPU类型及特性)1)TicklessSystem(DynamicTicks)支持动态时钟。2)HighResolutionTimerSupport支持高解析度时钟。3)Symmetricmulti-processingsupport对称多处理器支持,如多个CPU或者使用的是多核CPU。4)SubarchitectureType处理器的子体系结构类型。,5)Paravirtualizationsupport(EXPERIMENTAL)支持同时运行双Linux系统。6)Processorfamily处理器系列,按照实际使用的CPU选择。7)Genericx86support通用x86支持。8)HPETTimerSupportHPET是替代8254芯片的新一代定时器。9)PreemptionModel内核抢占模式。10)LocalAPICsupportonuniprocessors支持多处理器APIC。,11)MachineCheckException让CPU检测到系统故障时通知内核。12)ToshibalaptopsupportToshiba笔记本模块支持。13)DelllaptopsupportDell笔记本模块支持。14)EnableX86boardspecificfixupsforreboot修正某些旧X86主板的bug。15)/dev/cpu/microcode-IntelIA32CPUmicrocodesupport支持IA32微代码,仅对Intel的CPU有效。16)/dev/cpu/*/msr-Model-specificregistersupport支持MSR(Model-SpecificRegister)寄存器。17)/dev/cpu/*/cpuid-CPUinformationsupport支持从/dev/cpu/x/cpuid获得CPU的唯一标识符(CPUID)。,18)FirmwareDrivers固件驱动程序。19)HighMemorySupport支持最高内存。20)Memorymodel内存模式。21)64bitMemoryandIOresources(EXPERIMENTAL)使用64位的内存和IO资源。22)Allocate3rd-levelpagetablesfromhighmem对内存大于4GB的机器,将用户空间的页表放到高位内存区,以节约宝贵的低端内存。23)Mathemulation数学协处理器仿真。,24)MTRR(MemoryTypeRangeRegister)support提升PCI/AGP总线上的显卡2倍以上的速度。25)BootfromEFIsupportEFI是一种可代替传统BIOS的技术。26)Enableseccomptosafelycomputeuntrustedbytecode允许seccomp(快速计算)安全地运算非信任代码。27)Timerfrequency内核时钟频率。28)kexecsystemcallkexec系统调用。29)kernelcrashdumps产生内核崩溃转储。30)Buildarelocatablekernel(EXPERIMENTAL)建立内核的重定位信息。31)CompatVDSOsupport对VDSO(VirtualDynamically-linkedSharedObject)提供支持。,6.Powermanagementoptions(电源管理选项)1)PowerManagementsupport支持电源管理,包括APM和ACPI两种标准。2)CPUFrequencyscaling允许动态改变CPU主频,达到省电和降温的目的。,7.Busoptions(PCI,PCMCIA,EISA,MCA,ISA)(总线选项)1)PCIsupport支持PCI总线。2)ISAsupport支持ISA总线。3)MCAsupport支持微通道总线。4)NatSemiSCx200supportAMDGeode处理器的机器功能支持。5)PCCARD(PCMCIA/CardBus)supportPCMCIA卡(主要用于笔记本)支持。6)PCIHotplugSupport支持PCI的热插拔。,8.Executablefileformats(可执行文件格式)1)KernelsupportforELFbinariesELF是开放平台下最常用的二进制文件格式,支持动态连接,支持不同的硬件平台。2)Kernelsupportfora.outandECOFFbinaries早期UNIX系统的可执行文件格式。3)KernelsupportforMISCbinaries允许插入二进制的封装层到内核中,使用Java、.NET、Python、Lisp等语言编写的程序时需要它。,9.Networking(网络)1)Networkingoptions网络选项。2)AmateurRadiosupport业余无线电支持。3)IrDA(infrared)subsystemsupport红外线支持,4)Bluetoothsubsystemsupport支持蓝牙技术5)GenericIEEE802.11NetworkingStack通用无线局域网(IEEE802.11系列协议)支持。,6)Enablefulldebuggingoutput支持全面的调试输出。7)IEEE802.11iCCMPsupport支持IEEE802.11iCCMP。8)IEEE802.11iTKIPencryption支持IEEE802.11iTKIP。9)SoftwareMACadd-ontotheIEEE802.11networkingstack支持MAC地址加入IEEE802.11网络堆栈。,10.DeviceDrivers(设备驱动程序)1)GenericDriverOptions通用驱动程序选项。2)Connector-unifieduserspacekernelspacelinker统一的用户空间和内核空间连接器。3)MemoryTechnologyDevices(MTD)支持特殊的存储技术装置,如常用于数码相机或嵌入式系统的闪存卡。4)Parallelportsupport打印机并口支持。5)PlugandPlaysupport即插即用支持。,6)Blockdevices支持块设备。7)Miscdevices支持其他杂项设备。8)ATA/ATAPI/MFM/RLLsupportIDE硬盘和ATAPI光驱。9)SCSIdevicesupport支持SCSI设备。10)SerialATAandParallelATAdrivers支持SATA与PATA磁盘设备。,11)Multi-devicesupport(RAIDandLVM)支持多磁盘设备(RAID和LVM)。12)FusionMPTdevicesupport支持FusionMPT设备。13)IEEE1394(FireWire)support支持IEEE1394。14)I2Odevicesupport支持I2O(智能IO)设备。,15)Macintoshdevicedrivers支持Macintosh系统设备。16)Networkdevicesupport支持网络设备。17)ISDNsubsystem支持综合业务数字网(ISDN,IntegratedServiceDigitalNetwork)。18)TelephonySupport支持VoIP。19)Inputdevicesupport支持输入设备。20)Characterdevices支持字符设备。21)I2Csupport支持I2C。可用于监控电压、风扇转速及温度等。22)SPIsupport串行外围接口(SPI)常用于微控制器(MCU)与外围设备之间的通信。,23)Dallass1-wirebus一线总线。24)HardwareMonitoringsupport支持硬件监测。25)Multifunctiondevicedrivers支持多功能设备驱动。26)Multimediadevices支持多媒体设备。27)Graphicssupport图形设备/显卡支持。28)Sound支持声卡。29)HIDDevices支持HID设备。30)USBsupport支持USB。,31)MMC/SDCardsupport支持MMC/SD卡设备。32)LEDdevices支持LED设备。33)InfiniBandsupport支持InfiniBand设备。34)EDAC-errordetectionandreporting(RAS)(EXPERIMENTAL)支持错误检测和报告。35)RealTimeClock支持实时时钟。36)DMAEnginesupport支持DMA引擎。37)AuxiliaryDisplaysupport支持高级显示。KS0108LCDController:支持KS0108LCD显示。38)Virtualization支持虚拟技术。,11.FileSystems(文件系统)1)Secondextendedfssupport支持Ext2文件系统。2)Ext3journallingfilesystemsupport支持Ext3文件系统。3)Ext4dev/ext4extendedfssupportdevelopment(EXPERIMENTAL)支持Ext4文件系统。4)ReiserFSextendedattributes支持ReiserFS文件系统。5)JFSfilesystemsupport支持JFS文件系统。6)XFSfilesystemsupport支持XFS文件系统。7)GFS2filesystemsupport支持GFS2文件系统。,8)OCFS2filesystemsupport支持OCFS2文件系统。9)minixfssupport支持minix文件系统。10)ROMfilesystemsupport支持ROM文件系统。11)Inotifyfilechangenotificationsupport支持Inotify文件系统。12)Quotasupport支持Quota磁盘定额文件系统。13)Kernelautomountersupport支持内核自动挂载。14)Kernelautomounterversion4support(alsosupportsv3)支持内核第四版本自动挂载。15)FilesysteminUserspacesupport支持文件系统的用户空间。,16)CDROM/DVDFilesystemsCDROM/DVD文件系统。17)DOS/FAT/NTFilesystems支持DOS/FAT/NT文件系统。18)PseudoFilesystems支持Pseudo文件系统。19)MiscellaneousFilesystems支持其它文件系统。20)NetworkFilesystems支持网络文件系统。21)PartitionTypes支持分区类型。22)NativeLanguageSupport支持多国语言。23)DistributedLockManager分布式上锁管理。,12.InstrumentationSupport(分析支持)1)Profilingsupport(EXPERIMENTAL)支持Profiling系统评测。2)Kprobes(EXPERIMENTAL)支持Kprobes探测。,13.KernelHacking(内核探测)Showtiminginformationonprintks使用printk函数时显示时间。Enable_must_checklogic使用“必须检查”的逻辑。3)MagicSysRqkey支持SysRq键。4)Enableunused/obsoleteexportedsymbols支持输出标志。5)DebugFilesystem支持调试文件系统。6)Runmakeheaders_checkwhenbuildingvmlinux编译内核时,支持makeheaders_check。7)Kerneldebugging支持内核调试。,14.SecurityOptions(安全选项)1)Enableaccesskeyretentionsupport支持accesskey。2)Enabledifferentsecuritymodels支持各种安全模式。,15.CryptographicOptions(加密选项)1)CryptographicAPI支持加密API(应用程序接口)。,16.libraryRoutines(库例程)1)CRC-CCITTfunctions支持CRC-CCITT功能。2)CRC16functions支持CRC16功能。3)CRC32c(Castagnoli,etal)CyclicRedundancy-Check支持CRC32c检测。,Linux内核编译方法,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论