收藏 分享(赏)

Linux内核配置.ppt

上传人:gnk289057 文档编号:8291435 上传时间:2019-06-18 格式:PPT 页数:19 大小:258KB
下载 相关 举报
Linux内核配置.ppt_第1页
第1页 / 共19页
Linux内核配置.ppt_第2页
第2页 / 共19页
Linux内核配置.ppt_第3页
第3页 / 共19页
Linux内核配置.ppt_第4页
第4页 / 共19页
Linux内核配置.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、第8章 配置编译内核,,2,本章介绍了Linux 2.6内核的特点和配置编译。通过学习本章,可以了解Linux 2.6内核的kbuild编译管理方式,掌握基本的配置编译过程。,7.1 Linux内核特点,7.1.1 Linux内核版本介绍 Linux内核的版本号分为主版本号、次版本号和扩展版本号等。根据稳定版本、测试版本和开发版本定义不同版本序列。,7.1.2 Linux内核特点,(1)Linux内核的重要特点 可移植性(Portability),支持硬件平台广泛,在大多数体系结构上都可以运行。 (2)Linux内核支持的处理器体系结构 (3)Linux内核遵守的软件许可 (4)开放源码驱动程

2、序的优点,7.1.3 Linux 2.6内核新特性,Linux 2.6内核重要的新特性体现在如下方面。 (1)新的调度器 (2)内核抢占 (3)新的线程模型 (4)文件系统 (5)声音 (6)总线 (7)电源管理 (8)网络 (9)用户界面层 (10)统一的设备模型,7.2 配置编译内核源码,为了正确、合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面4个考虑。 (1)尺寸小。自己定制内核可以使代码尺寸减小,运行将会更快。 (2)节省内存。由于内核部分代码永远占用物理内存,定制内核可以使系统拥有更多的可用物理内存。 (3)减少漏洞。不需要的功能编译进入内核可能会增加被系

3、统攻击者利用的机会。 (4)动态加载模块。根据需要动态地加载或者卸载模块,可以节省系统内存。但是,将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些。,7.2.1 内核源码结构,7.2.2 内核配置系统,Linux内核配置系统可以生成内核配置菜单,方便内核配置。配置系统主要包含Makefile、Kconfig和配置工具,可以生成配置界面。配置界面是通过工具来生成的,工具通过Makefile编译执行,选项则是通过各级目录的Kconfig文件定义。 Linux内核配置命令有:make config、make menuconfig和make xconfig。分别是字符界面、ncurses光标

4、菜单和X-window图形窗口的配置界面。,7.2.3 Kbuild Makefile,1Makefile的组织结构 Makefiles包含5个部分 Makefiles .config arch/$(ARCH)/Makefile scripts/Makefile.* kbuild Makefiles,2Makefile语言 内核Makefile是配合GNU make使用的。除了GNU make的文档中的特点,内核的Makefile还有一些GNU扩展的功能。 GNU make支持基本的链接表处理功能。内核Makefile使用新颖的编译列表格式,编译过程几乎可以不用if语句。 GNU make有多

5、种变量赋值操作符:“=”、“:=”、“?=”、“+=”。,3Kbuild变量 顶层Makefile输出下列变量。 (1)VERSION, PATCHLEVEL, SUBLEVEL, EXTRAVERSION定义了当前内核版本。 (2)KERNELRELEASE定义了内核发布的版本 (3)ARCH定义了目标板体系结构 (4)INSTALL_PATH为arch Makefile定义了安装驻留内存的内核映像和System.map文件。 (5)INSTALL_MOD_PATH和MODLIB。 4Kbuild Makefile的定义 (1)目标定义 (2)静态链接目标文件- obj-y (3)可加载模块

6、目标文件- obj-m (4)库目标文件lib-y (5)遍历子目录 (6)编译标志 (7)依赖跟踪 (8)特殊的规则,5体系结构相关的Makefile定义 (1)通过变量设置编译体系结构相关代码 (2)添加archprepare规则的依赖条件 (3)列出要遍历的子目录 (4)体系结构相关的映像 (5)编译非kbuild目标 (6)编译自引导映像有用的命令 (7)定制kbuild命令 (8)预处理链接脚本 (9)$(CC)支持的函数,7.2.4 内核编译,1编译命令 (1)用于清理生成文件的目标(Cleaning targets) (2)内核配置的目标(Configuration target

7、s) (3)其他通用目标(Other generic targets) (4)静态解析器(Static analysers) (5)内核打包(Kernel packaging) (6)文档目标(Documentation targets) (7)体系结构相关的目标(ARM)(Architecture specific targets (arm)),2编译链接内核映像 一般情况下,先编译链接生成顶层目录的vmlinux,再把vmlinux精简压缩成piggy.gz,然后加上自引导程序链接成arch/$(ARCH)/boot/zImage,这样就得到一个具备自启动能力的Linux内核映像。 (1)

8、编译链接vmlinux (2)生成vmlinux.lds链接脚本 (3)链接生成zImage 3编译内核模块,7.2.5 内核编译结果,相对于Linux 2.4内核,Linux 2.6内核配置编译过程要简单一些,不再需要make dep; make zImage; make modules的命令。配置好内核之后,只要执行make就可以编译内核映像和模块。 内核编译完成以后,将生成几个重要的文件。它们是vmlinux、vmlinuz和System. map。 (1)vmlinux vmlinux是在内核源码顶层目录生成的内核映像。 (2)vmlinuz vmlinuz是可引导的、压缩的内核映像,

9、也就是zImage。 (3)System.map System.map是一个特定内核的内核符号表,它包含内核全局变量和函数的地址信息。,7.3 内核配置选项,7.3.1 使用配置菜单 在各级子菜单项种,选择相应的配置时,有3种选择,它们代表的含义分别如下。 Y将该功能编译进内核。 N不将该功能编译进内核。 M将该功能编译成可以在需要时动态插入到内核中的模块。,7.3.2 基本配置选项,相对于Linux 2.4内核,2.6内核的配置菜单有了很大变化,而且随着版本的发展还有些调整。下面以Linux-2.6.14内核版本为例,介绍主菜单选项和常用的配置选项的功能。 (1)“Code maturity

10、 level options”菜单 (2)“General setup”菜单 (3)“Loadable module support”菜单 (4)“System Type”菜单 (5)“Bus support”菜单 (6)“Kernel Features”菜单 (7)“Boot options”菜单 (8)“Floating point emulation”菜单 (9)“Userspace binary formats”菜单 (10)“Power management options”菜单 (11)“Networking”菜单 (12)“Device Drivers”菜单 (13)“File

11、systems”菜单 (14)“Profiling support”菜单 (15)“Kernel hacking”菜单 (16)“Security options”菜单 (17)“Cryptographic options”菜单 (18)“Library routines”菜单,7.3.3 驱动程序配置选项,几乎所有Linux的设备驱动程序都在“Device Drivers”菜单下,它对设备驱动程序加以归类,放到子菜单下。下面解释常用的一些菜单项的内容。 (1)“Generic Driver Options”菜单对应drivers/base目录的配置选项,包含Linux驱动程序基本和通用的一些

12、配置选项。 (2)“Memory Technology Devices (MTD)”菜单对应drivers/mtd目录的配置选项,包含MTD设备驱动程序的配置选项。 (3)“Parallel port support”菜单对应drivers/parport目录的配置选项,包含并口设备驱动程序。 (4)“Plug and Play support”菜单对应drivers/pnp目录的配置选项,包含计算机外围设备的热拔插功能。 (5)“Block devices”菜单对应drivers/block目录的配置选项,包含软驱、RAMDISK等驱动程序。 (6)“ATA/ATAPI/MFM/RLL su

13、pport”菜单对应drivers/ide目录的配置选项,包含各类ATA/ATAPI接口设备驱动。 (7)“SCSI device support”菜单对应drivers/scsi目录的配置选项,包含各类SCSI接口的设备驱动。 (8)“Network device support”菜单对应drivers/net目录的配置选项,包含各类网络设备驱动程序。 (,9)“Input device support”菜单对应drivers/input目录的配置选项,包含USB键盘鼠标等输入设备通用接口驱动。 (10)“Character devices”菜单对应drivers/char目录的配置选项,包

14、含各种字符设备驱动程序。这个目录下的驱动程序很多。串口的配置选项也是从这个子菜单调用的,但是串口驱动所在的目录是drivers/serial。 (11)“I2C support”菜单对应drivers/i2c目录的配置选项,包含I2C总线的驱动。 (12)“Multimedia devices”菜单对应drivers/media目录的配置选项,包含视频/音频接收和摄像头的驱动程序。 (13)“Graphics support”菜单对应drivers/video目录的配置选项,包含Framebuffer驱动程序。 (14)“Sound”菜单对应sound目录的配置选项,包含各种音频处理芯片OSS和ALSA驱动程序。 (15)“USB support”菜单对应drivers/usb目录的配置选项,包含USB Host和Device的驱动程序。 (16)“MMC/SD Card support”菜单对应drivers/mmc目录的配置选项,包含MMC/SD卡的驱动程序。 对于特定的目标板,可以根据外围设备选择对应的驱动程序选项,然后才能在Linux系统下使用相应的设备。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报