文档详情

第部分 配置编译Linux 内核.ppt

发布:2017-06-18约1.21万字共39页下载文档
文本预览下载声明
5.1 Linux内核特点 5.1.1 Linux内核版本介绍 Linux内核的版本号分为主版本号、次版本号和扩展版本号等。根据稳定版本、测试版本和开发版本定义不同版本序列。 稳定片本的主版本号用偶数表示,如:2.4、2.6。 次版本号不分奇偶数,顺序递增,如:2.6.15。 升级版本号不分奇偶数,顺序递增,如:2.6.14.5。 测试版本,如:2.6.12-rc1。 开发版本用奇数表示,如:2.3、2.5。也有次版本号。 5.1.2 Linux内核特点 (1)Linux内核的重要特点 可移植性(Portability),支持硬件平台广泛,在大多数体系结构上都可以运行。 (2)Linux内核支持的处理器体系结构 (3)Linux内核遵守GPL的软件许可 (4)开放源码驱动程序的优点 5.1.3 Linux 2.6内核新特性 Linux 2.6内核重要的新特性体现在如下方面: (1)新的调度器:O(1)调度器算法。 (2)内核抢占:2.4以前的版本不是抢占式的。 (3)新的线程模型:支持NPTL线程库。 (4)文件系统:支持EXT2/EXT3/EXT4和NTFS等。 (5)声音:支持USB音频和MIDI设备等。 (6)总线:IDE/ATA、SCSI、PCI和USB等。 (7)电源管理:支持高级电源配置管理界面。 (8)网络:支持IPv6和VLAN,并且很成熟。 (9)用户界面层 (10)统一的设备模型 5.2 配置编译内核源码 为了正确、合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面4个考虑。 (1)尺寸小。自己定制内核可以使代码尺寸减小,运行将会更快。 (2)节省内存。由于内核部分代码永远占用物理内存,定制内核可以使系统拥有更多的可用物理内存。 (3)减少漏洞。不需要的功能编译进入内核可能会增加被系统攻击者利用的机会。 (4)动态加载模块。根据需要动态地加载或者卸载模块,可以节省系统内存。但是,将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些。 5.2.1 内核源码结构 5.2.2 内核配置系统 Linux内核配置系统可以生成内核配置菜单,方便内核配置。 配置系统主要包含Makefile、Kconfig和配置工具,可以生成配置界面。 配置界面是通过工具来生成的,工具通过Makefile编译执行,选项则是通过各级目录的Kconfig文件定义。 Linux内核配置命令有: make config make menuconfig make xconfig 分别是字符界面、ncurses光标菜单和X-window图形窗口的配置界面。 5.2.2 内核配置系统 1.Makefile 在顶层的Makefile中,有如下几行定义的规则: config: scripts_basic outputmakefile FORCE $(Q)mkdir -p include/linux include/config $(Q)$(MAKE) $(build)=scripts/kconfig $@ %config: scripts_basic outputmakefile FORCE $(Q)mkdir -p include/linux include/config $(Q)$(MAKE) $(build)=scripts/kconfig $@ 这就是生成内核配置界面的命令规则。相当于: make -C scripts/kconfig/ config make -C scripts/kconfig/ %config 上面命令执行的结果是到scripts/kconfig/目录中,找该目录中的Makefile文件,并在顶层产生.config文件。 5.2.2 内核配置系统 1.Makefile 目录scripts/kconfig/中的Makefile文件部分内容为: ifdef KBUILD_KCONFIG Kconfig := $(KBUILD_KCONFIG) else Kconfig := arch/$(SRCARCH)/Kconfig endif xconfig: $(obj)/qconf $ $(Kconfig) gconfig: $(obj)/gconf $ $(Kconfig)
显示全部
相似文档