Linux内核分析.pptx
《Linux内核分析.pptx》由会员分享,可在线阅读,更多相关《Linux内核分析.pptx(58页珍藏版)》请在咨信网上搜索。
1、 LinuxLinuxLinuxLinux内核分析内核分析内核分析内核分析第6章预习检查预习检查简单介绍下Linux版本和特点?Makefile的作用?Kconfig的作用?简述Linux内核的启动流程?Page 3/40本章目标本章目标了解Linux内核源码的组织结构掌握Linux内核的编译及启动本章结构本章结构Linux内核配置内核配置 Linux内核分析内核分析内核源码结构及内核源码结构及Makefile分析分析Linux内核配置选项内核配置选项内核的内核的Kconfig分析分析Linux版本及特点版本及特点Linux内核启动流程分析内核启动流程分析 Linux内核启动过程概述内核启动过
2、程概述编译、烧写、启动内核编译、烧写、启动内核修改内核以支持修改内核以支持S3C2440开发板开发板获取内核源获取内核源Unix有多遥远?有多遥远?Unix诞生于失败的项目:Multics1969年,Ken Thomspon在PDP-7上实现1973年,Dennis Ritche实现了C语言版的Unix1983年,AT&T推出System V19791993年,3BSD,到最后一个4.4BSD商业的Unix版本:HP UXSun solarisIBM AIXUnix的优势的优势简洁,系统调用仅百余个在Unix,所有的东西被当作文件看待Unix的内核和相关的系统工具软件都是C开发的惊人的移植能力
3、fork()迅速简单而又稳定的通信原语追寻追寻Linus的足迹的足迹1991年,linus为intel 80386开发的unix操作系统Linux内核遵循GPL,是Free softwareLinux 是unix-like的操作系统内核Linux系统的基础内核C库GCC系统的基本工具Linux的发行版的发行版Debian GNU/LinuxFedoraGentoo LinuxMandriva LinuxRedhat Enterprise Linux(RHEL)Slackware LinuxOpenSuSESuSE Linux Enterprise ServerUbuntu操作系统操作系统VS内
4、核内核一般理解的操作系统完成最基本功能,和系统管理的那些部分内核,驱动,启动引导程序,命令行shell以及其他的一些界面现在理解的操作系统,指内核内核才是操作系统的核心负责响应中断服务程序负责管理多个进程从而分享处理器时间的调度程序负责管理进程地址空间的内存管理程序网络,和进程间通信运行于系统态,以及受保护的内存空间,称之为内核空间处理器的上下文环境处理器的上下文环境运行于内核空间,处于进程上下文,代表某个进程执行运行于内核空间,处于中断上下文,与进程无关运行于用户空间,执行用户进程CPU空闲时。内核运行一个空进程,处于进程上下文,运行于内核空间Linux内核内核 VS 传统传统UNIX的内核
5、的内核都是单体内核,Linux支持动态加载模块Linux内核支持preemptiveLinux提供了面向对象的设备模型,hotplug等虚拟文件系统内核线程安装内核源码安装内核源码两种形式的压缩GNU zip#tar xzvf linux-x.y.z.tar.gzBzip2#tar xvjf linux-x.y.z.tar.bz2Linux的源代码结构的源代码结构目录描述目录描述目录目录描述描述arch特定体系结构的源码crytoCryto APIDocumentation内核源码文档Drivers设备驱动程序fsVFS和各种文件系统include内核头文件init内核引导和初始化ipc进程间
6、通信代码kernel调度子系统这样的核心子系统lib通用内核函数mm内存管理子系统与虚拟内存net网络子系统scripts编译内核所用的脚本securityLinux的安全模块sound语音子系统usr早期用户代码(initramfs)Linux内核源码层次结构内核源码层次结构arch/arm/的目录的目录目录目录说明说明boot平台相关的启动代码,一般包含head.Sconfigs预定义了此体系结构平台下的配置文件kernel与体系结构相关的内核代码lib与体系结构相关的内核函数库mm与体系结构相关的内存管理部分代码mach-xxx与某款特定CPU的平台代码include/asm的头文件目录
7、的头文件目录1asm是一个是一个symbolic link,因为众多的文件都需要包含因为众多的文件都需要包含asm-XXX/目录下的某目录下的某个头文件,使用个头文件,使用asm的链接之后,在不同的平台下指向不同的目录,这样,的链接之后,在不同的平台下指向不同的目录,这样,增加了软件的可移植性。增加了软件的可移植性。include/linux/头文件目录头文件目录与平台无关的头文件一般放在linux这个目录下如linux/mtd/Linux Makefile分析分析 Makefile的作用:决定编译哪些文件。怎样编译这些文件?怎样连接这些文件,最重要的是它们的顺序如何?Linux内核内核Mak
8、efile文件分类文件分类 Makefile的作用的作用 决定编译哪些文件决定编译哪些文件怎样编译这些文件怎样编译这些文件怎样连接这些文件,它们的顺序如何怎样连接这些文件,它们的顺序如何Makefile的作用(的作用(1)决定编译哪些文件决定编译哪些文件1)顶层Makefile决定内核根目录下哪些子目录将被编迸内核。2)arch/$(ARCH)/Makefile决定arch/$(ARCH)目录下哪些文件、哪些目录将被编进内核。3)各级子目录下的Makefile决定所在目录下哪些文件将被编进内核,哪些文件将被编成模块(即驱动程序),进入哪些子目录继续调用它们的Makefile。Makefile的
9、变量的变量 在在include/config/auto.conf文件中,变量的值主要有两文件中,变量的值主要有两类类:“y”和和“m”)。各级子目录的。各级子目录的 Makefile使用这些变量使用这些变量来决定哪些文件被编进内核中,哪些文件被编成模块来决定哪些文件被编进内核中,哪些文件被编成模块(即即驱动程序驱动程序),要进入哪些下一级子目录继续编译要进入哪些下一级子目录继续编译objy用来定义哪些文件被编进用来定义哪些文件被编进(built-in)内核内核obj-m用来定义哪些文件被编译成可加载模块用来定义哪些文件被编译成可加载模块(Loadable module)lib-y用来定义哪些文
10、件被编成库文件用来定义哪些文件被编成库文件obj-y、obj-m还可以用来指定要进入的下一层子目录还可以用来指定要进入的下一层子目录Makefile的作用(的作用(2)怎样编译这些文件怎样编译这些文件即编译选项、连接选项是什么选项分3类:全局的,适用于整个内核代码树;局部的,仅适用于某个Makefile中的所有文件;个体的,仅适用于某个文件Makefile的作用(的作用(3)怎样连接这些文件,它们的顺序如何怎样连接这些文件,它们的顺序如何arch/arm/Makefile:顶层Makefile:Makefile的作用(的作用(3)顶层Makefile中,再往下看:顶层Makefile按照一定的
11、顺序组织文件,根据连接脚本arc/$(ARCH)/kernel/vmlinux.lds生成内核映象文件vmlinux对对Makefile的总结的总结(1)配置文件.config中定义了一系列的变量,Makefile将结合它们釆决定哪些文件被编 进内核、哪些文件被编成模块、涉及哪些子目录。(2)顶层Makefile和arch/$(ARCH)/Makefile决定根目录下哪些子目录,arc/$(ARCH)目录下哪些文件和目录将被编迸内核。(3)最后,各级子目录下的Makefile决定所在目录下哪些文件将被编进内核,哪些文件 将被编成模块(即驱动程序),进入哪些目录继续调用它们的Makefile。(
12、4)顶层Makefile和arch/$(ARCH)/Makefile设置了可以影响所有文件的编译、连接选 项:CFLAGS、MLAGS、LDFLAGS、ARFLAGS。(5)各级子目录下的Makefile中可以设置能够影响当前目录下所有文件的编译、连接选 项:EXTRA_CFLAGS、EXTRA_AFLAGS、EXTRA_LDFLAGS、EXTRA_ARFLAGS;还可以设置可以影响某个文件的编译选项:CFLAGS_$,AFLAGS_$。(6)顶层Makefile按照一定的顺序组织文件,根据连接脚本arc/$(ARCH)/kernel/vmlinux.lds生成内核映象文件vmlinux。内核
13、的内核的Kconfig分析分析 所有配置工具都是通过读取所有配置工具都是通过读取arc/$(ARCH)/Kconfig文件来文件来生成配置界面生成配置界面这个文件是所有配置文件的总入口,它会包含其他目录的这个文件是所有配置文件的总入口,它会包含其他目录的Kconfig文件。文件。make menuconfig,得到配置界面如下图所示:得到配置界面如下图所示:内核的内核的Kconfig分析分析 内核源码每个子目录中,都有一个内核源码每个子目录中,都有一个Makefile文件和文件和Kconfig文件文件Kconfig用于配置内核,它就是各种配置界面的源文件。用于配置内核,它就是各种配置界面的源文
14、件。内核的配置工具读取各内核的配置工具读取各 个个Kconfig文件,生成配置界面供文件,生成配置界面供开发人员配置内核,最后生成配置文件开发人员配置内核,最后生成配置文件.config。内核的配置界面以树状的菜单形式组织,主菜单下有若干内核的配置界面以树状的菜单形式组织,主菜单下有若干个子菜单,子菜单下又有子菜个子菜单,子菜单下又有子菜 单或配置选项。每个子菜单或配置选项。每个子菜单或选项可以有依赖关系,这些依赖关系用来确定它们是单或选项可以有依赖关系,这些依赖关系用来确定它们是否显示。否显示。只有被依赖项的父项已经被选中,子项才会显只有被依赖项的父项已经被选中,子项才会显示。示。Kconf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 内核 分析
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。