Linu内核的裁剪与移植.ppt
- 文档编号:2643894
- 上传时间:2022-11-04
- 格式:PPT
- 页数:33
- 大小:685.50KB
Linu内核的裁剪与移植.ppt
《Linu内核的裁剪与移植.ppt》由会员分享,可在线阅读,更多相关《Linu内核的裁剪与移植.ppt(33页珍藏版)》请在冰豆网上搜索。
嵌入式操作系统嵌入式操作系统适用专业:
物联网工程任课教师:
兰方鹏联系方式:
13453194233E-mail:
QQ:
275392011TaiyuanUniversityofTechnology太原理工大学太原理工大学计算机科学与技术学院计算机科学与技术学院1Linux内核的裁剪与移植Linux内核简介Linux内核源码结构Linux进程通信Make工程管理器配置NFS服务器2Linux内核简介Linux体系结构图:
3Linux内核简介Linux系统两大部分构成:
vUserSpace:
用户空间用户空间用户空间用户空间vKernelSpace:
内核空间内核空间内核空间内核空间Linux系统为什么要划分为用户空间用户空间用户空间用户空间和内核空间内核空间内核空间内核空间呢?
X86系统下的CPU具有4个不同的运行级别:
Ring0-Ring3;Ring0下,可以执行特权指令,Ring3下则有很多限制。
Linux系统利用了CPU的这一特性,使用了两级来分别运行应用应用应用应用程序程序程序程序和LinuxLinux内核内核内核内核:
其目的是:
使得操作系统本身得到充分的使得操作系统本身得到充分的使得操作系统本身得到充分的使得操作系统本身得到充分的保护。
保护。
保护。
保护。
4Linux内核简介Linux内核空间与用户空间是程序执行的两种不同状态程序执行的两种不同状态程序执行的两种不同状态程序执行的两种不同状态,通过系统调用系统调用系统调用系统调用和硬件中断硬件中断硬件中断硬件中断能够完成从用户空间到内核空间的转移。
5Linux内核简介Linux内核架构:
6Linux内核简介SystemCallInterface(SCI)为用户提供了一套标准的系统调用函数标准的系统调用函数来访问Linux内核,搭建了用户空间到内核空间的桥梁。
ProcessManagement(PM)进程管理实现进程创建、调度、进程通信等MemoryManagement(MM)内存管理主要是控制多个进程安全地共享内存区域7Linux内核简介NetworkStack网络协议栈为Linux提供了丰富的网络协议实现DeviceDrivers(DD)Liunx内核中有大量代码都在设备驱动程序中,它们控制特定的硬件设备。
8Linux内核简介VirtualFileSystem(VFS)VFS隐藏各种文件系统的具体细节,为文件操作提供统一的接口。
9Linux内核源码结构目录结构目录结构Linux内核源代码采用树形结构进行组织,非常合理地把功能相把功能相关的文件都放在同一个子目录下关的文件都放在同一个子目录下,使得程序更具可读性。
10Linux内核源码结构内核代码下载地址内核代码下载地址:
www.kernel.org11Linux内核-目录结构varcharch是architecture的缩写。
内核所支持的每种CPU体系,在该目录下都有对应的子目录。
每个CPU的子目录,又进一步分解为boot(系统引导程序)、mm(内存管理)、lib(硬件相关工具函数)和kernel(系统调用)等子目录。
vblock部分块设备驱动程序vcrypto加密、压缩、CRC校验算法vdocumentation内核的文档12Linux内核-目录结构vdrivers设备驱动程序。
vinit内核初始化代码vipc进程间通信的实现代码vkernelLinux大多数关键的核心功能(进程控制、调度程序、模块化)都在这个目录实现vlib库文件代码13Linux内核-目录结构vsamples内核编程的范例vscripts配置内核的脚本vsecuritySElinux的模块vsound音频设备的驱动程序vvir内核虚拟机14Linux内核-目录结构vnet网络协议的是实现代码802appletalk8021qbridgeipv4ipv6bluetoothethernetwanrouter15Linux内核-目录结构vfs存放各种文件系统的实现代码,每个子目录对应一种文件系统的实现。
devpts/dev/pts虚拟文件系统ext2ext3fat/windows文件系统isofs/ISO9660光盘CDROM上的文件系统vfat/MS-DOS文件系统nfs/网络文件系统16vinclude存放内核所需要的头文件linux/存放和平台无关的头文件asm-i386/和平台相关的头文件netvideosoundscsiconfigasmLinux内核-目录结构17Linux内核-配置内核vLinux内核内核内核是操作系统的核心。
它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
v内核源代码公开内核源代码公开linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/kernels/xxxx下找到,大部分应用软件也都是遵循GPL而设计的。
18Linux内核-配置内核便于深入学习操作系统:
我们可以了解系统是如何工作的。
通过通读源代码,我们就可以了解系统的工作原理,这在Windows下简直是天方夜谭。
v内核源代码公开的意义内核源代码公开的意义修补漏洞的快速以及对最新软件技术的利用量体裁衣,定制适合自己的系统,这样就需要重新编译内核v为什么要重新编译内核?
为什么要重新编译内核?
自己定制编译的内核运行更快、更稳定(具有更少的代码)不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些更新的内核会支持更多的硬件,并且一般会修复老版本中发现的许多漏洞等19Linux内核-配置与编译vLinux内核版本号内核版本号Linux的源程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用,为了确保这些无序的开发过程能够有序地进行,Linux采用了双树系统。
一个树是稳定树(stabletree),另一个树是非稳定树(unstabletree)或者开发树(developmenttree)。
一些新特性、实验性改进等都将首先在开发树中进行。
如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同的改进。
一旦开发树经过了足够的发展,开发树就会成为新的稳定树。
开发数就体现在源程序的版本号中源程序版本号的形式为x.y.z:
对于稳定树来说,y是偶数;对于开发树来说,y比相应的稳定树大1(因此,是奇数)20Linux内核-配置与编译v下载最新内核下载最新内核:
linux-3.13.6.tar.xzwww.kernel.org#tarxvfxz-5.0.3.tar#cdxz-5.0.3#./configure#make#makeinstallv下载xz-5.0.3.tar.bz2解压工具,然后编译安装v解压linux-3.13.6.tar.xz文件#xz-dlinux-3.13.6.tar.xz#tarxvflinux-3.13.6.tar21Linux内核-定制步骤v内核定制步骤:
内核定制步骤:
makeclean1.清除临时文件、中间文件和配置文件removemostgeneratedfilesbutkeeptheconfigmakemrproperremoveallgeneratedfilesandconfigfilesmakedistcleanmrproper+removeeditorbackupandpathcfilesv注意:
注意:
以上命令的执行必须在linux-3.13.6目录下进行22v内核定制步骤:
内核定制步骤:
2.确定目标系统的软硬件配置情况:
CPU的类型、网卡型号、所需支持的协议等。
makeconfig:
基于文本模式的交互式配置makemenuconfig:
基于文本模式的菜单型配置(推荐使用)3.使用如下命令之一配置内核:
makeoldconfig:
使用已有的配置文件(.config),但是会询问新增的配置选项makexconfig:
图形化的配置(需要安装图形化系统)Linux内核-定制步骤23使用方向键在各个选项间移动使用“Enter”键进入下一层选项选项:
“空空”和“*”选项:
“空空”、“*”和“M”()选项:
在你所提供的几个选项中选一项y:
将这个项目编译进内核m:
将这个项目编译为模块n:
不选择空格:
在y、m、n中切换h:
显示选项的帮助信息两次ESC:
返回到上层选项vmakemenuconfig:
X86平台平台vmakemenuconfigARCH=armCROSS_COMPILE=arm-linux-ARM平台平台Linux内核-定制步骤24Y:
编译到内核中(build-in)N:
编译成模块(module),动态调用v内核编译模式内核编译模式Linux内核-定制步骤v编译策略的选择编译策略的选择编译到内核中,在内核启动时就可以自动支持相应部分的功能,这样的优点是方便、速度快,机器一启动,就可以使用这部分功能了;缺点是会使内核变得庞大起来,不管是否需要这部分功能,它都会存在,这就是Windows惯用的招数,建议经常使用的部分直接建议经常使用的部分直接编译到内核中,比如网卡编译到内核中,比如网卡。
编译成模块,就会生成对应的.o文件,在使用的时候可以动态加载,优点是不会使内核过分庞大,缺点是使用时需要调用这些模块。
25v配置菜单中配置项的选择:
配置菜单中配置项的选择:
内核配置通常在一个已有的配置文件基础上,通过修改得到新的配置文件Linux内核提供了一系列可供参考的内核配置文件,该文件位于:
arch/arm/configsv选择相应的配置文件拷贝过来:
选择相应的配置文件拷贝过来:
#cps3c6400_defconfig./././.config#cp/boot/config-2.6.18-53.el5.configv修改该配置文件修改该配置文件#makemenuconfigARCH=armCROSS_COMPILE=arm-linux-Linux内核-定制步骤#makemenuconfig264.编译内核:
makezImagemakebzImagemakeuImageARCH=armCROSS_COMPILE=XXXarm-linux-v在x86平台,zImage只能用于小于512K的内核v内核映像分为压缩的内核映像和未压缩的内核映像:
压缩的内核映像文件名为zImage或Image,位于:
arch/arm/boot/未压缩的内核映像文件名为vmlinux,位于源码树的根目录中v内核定制步骤:
内核定制步骤:
Linux内核-定制步骤27编译内核时可能出现的问题:
v编译环境:
VmWare的Linux+WindowsXP+vmhgfs文件共享v错误描述:
ln:
creatingsymboliclinkXXXXXX:
Operationnotsupportedv错误原因:
由于在编译的时候,要用ln去建立一些软链接,而这些文件是从Windows中通过VMWare虚拟机共享进Linux的,而虽然此种操作在Linux系统中很常见,但Windows不支持,所以编译会报错。
v解决方法:
把共享目录拷贝到linux系统中或者搭建samba服务器Linux内核-定制步骤285.编译内核模块:
makemodules安装过程可能较长v内核定制步骤:
内核定制步骤:
6.安装内核模块:
makemodules_install这个命令实际上是把编译好的内核模块从内核源代码目录拷贝到/lib/modules目录下Linux内核-定制步骤297.制作initramdisk:
mkinitrdi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linu 内核 裁剪 移植