当前位置:
文档之家› 第十一讲____Linux内核定制及编译方法
第十一讲____Linux内核定制及编译方法
第2页
Linux内核系统模块组成及功能
Linux 以进程作为系统资源分配的基本单位, 并采用动态优先级的进程高级算法,保证 各个进程使用处理机的合理性。进程调度 模块主要是对进程使用的处理机进行管理 和控制。
2、内存管理模块 Linux的内存管理模块采用先进的虚拟存储机制,实 现对多进程的存储管理。它提供了十分可靠的存 储保护措施,对进程赋予不同的权限,用户不能 直接访问系统的程序和数据,保证了系统的安全 性。同时,为每个用户进程分配一个相互独立的 虚拟地址空间。
Designed By PTY 2013年7月6日星期六
第7页
2. General setup(常规设置)
1) Local version - append to kernel release 在内核版本后面加上自定义的版本标识(如直接输入:test)。 2) Automatically append version information to the version string 自动在版本字符串后面添加版本标识信息,编译时需要有 perl以及git仓库支持。 3) Support for paging of anonymous memory (swap) 内核使用交换分区或者交换文件作为虚拟内存。 4) System V IPC 支持System V的进程间通信(IPC),许多程序需要这个功能。
Designed By PTY 2013年7月6日星期六
第12页
5. Processor type and features(CPU类型及 特性) 1) Tickless System (Dynamic Ticks) 支持动态时钟。 2) High Resolution Timer Support 支持高解析度时钟。 3) Symmetric multi-processing support 对称多处理器支持,如多个CPU或者使用的 是多核CPU。 4) Subarchitecture Type 处理器的子体系结构类型。
Designed By PTY 2013年7月6日星期六
第14页
11)Machine Check Exception 让CPU检测到系统故障时通知内核。 12)Toshiba laptop support Toshiba笔记本模块支持。 13)Dell laptop support Dell笔记本模块支持。 14)Enable X86 board specific fixups for reboot 修正某些旧X86主板的bug。 15)/dev/cpu/microcode - Intel IA32 CPU microcode support 支持IA32微代码,仅对Intel的CPU有效。 16)/dev/cpu/*/msr - Model-specific register support 支持MSR (Model-Specific Register)寄存器。 17)/dev/cpu/*/cpuid - CPU information support 支持从/dev/cpu/x/cpuid获得CPU的唯一标识符(CPUID)。
Designed By PTY 2013年7月6日星期六
第16页
24) MTRR (Memory Type Range Register) support 提升PCI/AGP总线上的显卡2倍以上的速度。 25) Boot from EFI support EFI是一种可代替传统BIOS的技术。 26) Enable seccomp to safely compute untrusted bytecode 允许seccomp (快速计算)安全地运算非信任代码。 27) Timer frequency 内核时钟频率。 28) kexec system call kexec系统调用。 29) kernel crash dumps 产生内核崩溃转储。 30) Build a relocatable kernel(EXPERIMENTAL) 建立内核的重定位信息。 31) Compat VDSO support 对VDSO(Virtual Dynamically-linked Shared Object)提供支持。
Designed By PTY 2013年7月6日星期六
第8页
5) POSIX Message Queues POSIX消息队列。 6) BSD Process Accounting 将进程的统计信息写入文件的用户级系统调用,主要包括进 程的创建时间、创建者、指令名、内存占用情况等信息。 7) Export task/process statistics through netlink(EXPERIMENTAL) 通过netlink接口向用户空间导出任务/进程的统计信息。 8) UTS Namespaces 支持UTS名字空间。 9) Auditing support 审计支持,某些内核模块(例如SELinux)需要它,只有同时选 择其子项才能对系统调用进行审计。
Designed By PTY 2013年7月6日星期六
第4页
Linux内核的编译模式: 1、编译到内核:内核启动时可以支持相应
的功能,其优点是方便、速度快,系统启 动即可使用这部分功能;缺点是内核变得 很庞大。同时,系统安全性会降低。 2、编译成模块:内核启动后可以动态加载。 优点是不会使内核过分庞大,缺点是必须 由自己来调用这些模块。(主流)
Designed By PTY 2013年7月6日星期六
第18页
7. Bus options (PCI,PCMCIA,EISA,MCA,ISA)( 总线选项) 1) PCI support 支持PCI总线。 2) ISA support 支持ISA总线。 3) MCA support 支持微通道总线。 4) NatSemi SCx200 support AMD Geode处理器的机器功能支持。 5) PCCARD (PCMCIA/CardBus) support PCMCIA卡(主要用于笔记本)支持。 6) PCI Hotplug Support 支持PCI的热插拔。
Designed By PTY 2013年7月6日星期六
第9页
10) Kernel .config support 把内核的配置信息编译进内核中,以后可以通过 scripts/extract-ikconfig脚本来提取这些信息。 11) Create deprecated sysfs files 创建过时的sysfs文件系统 。 12) Kernel->user space relay support (formerly relayfs) 提供从内核空间向用户空间传递大量数据的接口。 13) Initial RAM filesystem and RAM disk (initramfs/initrd) support 支持内存文件系统(initramfs/initrd) 。 14) Optimize for size (Look out for broken compilers!) 编译时优化内核尺寸。 15) Configure standard kernel features (for small systems) 配置标准的内核特性(面向小型系统)。
Designed By PTY 2013年7月6日星期六
第15页
18)Firmware Drivers 固件驱动程序。 19)High Memory Support 支持最高内存。 20)Memory model 内存模式。 21)64 bit Memory and IO resources (EXPERIMENTAL) 使用64位的内存和IO资源。 22)Allocate 3rd-level pagetables from highmem 对内存大于4GB的机器,将用户空间的页表放到高位内存区, 以节约宝贵的低端内存。 23)Math emulation 数学协处理器仿真。
Designed By PTY 2013年7月6日星期六
1、进程调度模块
第3页
3、文件系统模块 Linux 的文件系统模块采用先进的虚拟文件系统(VFS)技术, 屏蔽了各种文件系统的差别,为处理各种不同的文件系 统提供了统一的接口,支持多种不同的物理文件系统达 90多种。同时,Linux把各种硬件设备看作一种特殊的 文件来处理,用管理文件的方法管理设备,非常方便、 有效。 4、 网络接口模块 Linux具有最强大的网络功能。网络接口模块通过套接字 (Socket)机制实现计算机之间的网络通信,并采用网络 层次模型提供对多种网络协议和网络硬件设备的支持。 5、进程间通信模块 进程间通信模块保证了Linux支持多种进程间通信机制,包括 最基本的信息和管道,同时支持信息队列、信号量和共 享内存等。
Linux内核定制及编译方法
• 目的、要求
了解Linux内核主要的模块组成,掌握内核的 定制或配置方法,重点掌握Linux内核的编 译过程及相关命令的使用方法。
Designed By PTY 2013年7月6日星期六
第1页
Linux内核系统模块组成
Designed By PTY 2013年7月6日星期六
Designed By PTY 2013年7月6日星期六
第11页
4. Block layer(块设备层) 1) Support for Large Block Devices 使用大于2TB的块设备时需要选择。 2) Support for tracing block io actions 块队列IO跟踪支持。 3) Support for Large Single Files 使用大于2TB的文件时需要。 4) IO Schedulers IO调度器。
Designed By PTY 2013年7月6日星期六
第5页
内核配置界面(#make menuconfig):
Designed By PTY 2013年7月6日星期六