




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Linux内核配置与启动,第6章,本章结构,Linux内核配置,Linux内核配置与启动,内核源码结构及Makefile分析,Linux内核配置选项,内核的Kconfig分析,Linux版本及特点,Linux内核启动流程分析,Linux内核启动过程概述,编译、烧写、启动内核,修改内核以支持S3C2440开发板,获取内核源,Unix有多遥远?,Unix诞生于失败的项目:Multics 1969年,Ken Thomspon在PDP-7上实现 1973年,Dennis Ritche实现了C语言版的Unix 1983年,AT&T推出System V 19791993年,3BSD,到最后一个4.4BSD
2、 商业的Unix版本: HP UX Sun solaris IBM AIX,Unix有多遥远?,1、1969年由Ken Thompson在AT& T贝尔实验室实现,运行在一台DEC PDP-7计算机上,后来Ken Thompson和Dennis Ritchie使用C语言对整个系统进行了再 加工和编写,使得Unix能够很容易的移植到其他硬件的计算机上。经C语言改版后分发给科研机构和大学。 2、 70年代末,到Unix V6版本时,AT&T认识到Unix的价值,成立了Unix系 统实验室,宣布对unix产品拥有所有权 3、加州大学伯克利分校计算机系统研究小组(CSRG)对Unix进行研究出BSD
3、Unix(ARPNET最新利用BSD实现TCP/IP) 4、AT&T吸收BSD Unix的优点,推出Unix System V版本,从此以后,BSD(Berkeley Software Distribution) 5、 Unix和Unix System V形成了当今Unix的两大主流,现代的Unix版本大部分都是这两个版本的衍生产品。,Unix有多遥远?,Unix操作系统的历史漫长而曲折,它的第一个版本是1969年由Ken Thompson在AT& T贝尔实验室实现的,运行在一台DEC PDP-7计算机上。这个系统非常粗糙,与现代Unix相差很远,它只具有操 作系统最基本的一些特性。后来Ken
4、 Thompson和Dennis Ritchie使用C语言对整个系统进行了再 加工和编写,使得Unix能够很容易的移植到其他硬件的计算机上。从那以后,Unix系统开始了令人瞩目的发展。 由于此时AT&T还没有把Unix作为它的正式商品,因此研究人员只是在实验室内部使用并完善它。正 是由于Unix是被作为研究项目,其他科研机构和大学的计算机研究人员也希望能得到这个系统,以便进行自己的研究。A T&T以分发许可证的方法,对Unix仅仅收取很少的费用,大学和研究机构就能获得Unix的源代码以进行研 究。Unix的源代码被散发到各个大学,一方面使得科研人员能够根据需要改进系统,或者将其移植到其他的硬件
5、环境中去 ,另一方面培养了懂得Unix使用和编程的大量的学生,这使得Unix的普及更为广泛。,Unix有多遥远?,由于操作系统的开发相当困难,只有少数的计算机厂商,如IBM、Digital等大型公司,才拥有自己的操作 系统,而其他众多生产计算机的硬件厂商则采用别人开发的操作系统。因为Unix不需要太多的花费,因此很多厂商就选择 了Unix作为他们生产的计算机使用的操作系统。他们把Unix移植到自己的硬件环境下,而不必从头开发一个操作系统 。 到了70年代末,在Unix发展到了版本6之后,AT&T认识到了Unix的价值,成立了Unix系 统实验室(Unix System Lab,USL)来继续发
6、展Unix。因此AT&T一方面继续发展内部使 用的Unix版本7,一方面由USL开发对外正式发行的Unix版本,同时AT&T也宣布对Unix产品拥有 所有权。几乎在同时,加州大学伯克利分校计算机系统研究小组(CSRG)使用Unix对操作系统进行研究,因此他们的 研究成果就反映在他们使用的Unix中。他们对Unix的改进相当多,增加了很多当时非常先进的特性,包括更好的内存 管理,快速且健壮的文件系统等,大部分原有的源代码都被重新写过,以支持这些新特性。很多其他Unix使用者,包括其 他大学和商业机构,都希望能得到CSRG改进的Unix系统。因此CSRG中的研究人员把他们的Unix组成一个完整 的
7、Unix系统BSD Unix(Berkeley Software Distribution),向外发行。,Unix有多遥远?,BSD Unix在Unix的历史发展中具有相当大的影响力,被很多商业厂家采用,成为很多商用Unix的基 础,而AT&T与其同时存在的Unix版本的影响就小得多。同时很多研究项目也是以BSD Unix为研究系 统,例如美国国防部的项目ARPANET,ARPANET今天发展成为了Internet,而BSD Unix中最 先实现了TCP/IP,使Internet和Unix紧密结合在一起。 而AT&T的Unix系统实验室,同时也在不断改进他们的商用Unix版本,直到他们吸收了B
8、SD Unix中已有的各种先进特性,并结合其本身的特点,推出了Unix System V版本之后,情况才有了改变。从 此以后,BSD Unix和Unix System V形成了当今Unix的两大主流,现代的Unix版本大部分都是 这两个版本的衍生产品。,Unix的优势,简洁,系统调用仅百余个 在Unix,所有的东西被当作文件看待 Unix的内核和相关的系统工具软件都是C开发的 惊人的移植能力 fork()迅速,追寻Linus的足迹,1991年,linus为intel 80386开发的unix操作系统 Linux内核遵循GPL,是Free software Linux 是unix-like的操作
9、系统内核 Linux系统的基础 内核 C库 GCC 系统的基本工具,Linux的发行版,Debian GNU/Linux Fedora Gentoo Linux Mandriva Linux Redhat Enterprise Linux(RHEL) Slackware Linux OpenSuSE SuSE Linux Enterprise Server Ubuntu,操作系统VS内核,一般理解的操作系统 完成最基本功能,和系统管理的那些部分 内核,驱动,启动引导程序,命令行shell以及其他的一些界面 现在理解的操作系统,指内核 内核才是操作系统的核心 负责响应中断服务程序 负责管理多个进
10、程从而分享处理器时间的调度程序 负责管理进程地址空间的内存管理程序 网络,和进程间通信 运行于系统态,以及受保护的内存空间,称之为内核空间,Linux内核 VS 传统UNIX的内核,都是单体内核,Linux支持动态加载模块 Linux内核支持preemptive Linux提供了面向对象的设备模型,hotplug等 虚拟文件系统 内核线程,安装内核源码,两种形式的压缩 GNU zip #tar xzvf linux-x.y.z.tar.gz Bzip2 #tar xvjf linux-x.y.z.tar.bz2,Linux的源代码结构,目录描述,Linux内核源码层次结构,arch/arm/的
11、目录,include/asm的头文件目录,1,asm是一个symbolic link, 因为众多的文件都需要包含asm-XXX/目录下的某个头文件,使用asm的链接之后,在不同的平台下指向不同的目录,这样,增加了软件的可移植性。,include/linux/头文件目录,与平台无关的头文件一般放在linux这个目录下 如linux/mtd/,Linux Makefile分析,Makefile的作用: 决定编译哪些文件。 怎样编译这些文件? 怎样连接这些文件,最重要的是它们的顺序如何?,Linux内核Makefile文件分类,Makefile的作用(1),决定编译哪些文件 1) 顶层Makefil
12、e决定内核根目录下哪些子目录将被编迸内核。 2) arch/$(ARCH)/Makefile决定arch/$(ARCH)目录下哪些文件、哪些目录将被编进内核。 3) 各级子目录下的Makefile决定所在目录下哪些文件将被编进内核,哪些文件将被编成模块(即驱动程序),进入哪些子目录继续调用它们的Makefile。,Makefile的作用(2),怎样编译这些文件 即编译选项、连接选项是什么 选项分3类: 全局的,适用于整个内核代码树; 局部的,仅适用于某个Makefile中的所有文件; 个体的,仅适用于某个文件,Makefile的作用(3),怎样连接这些文件,它们的顺序如何 arch/arm/M
13、akefile: 顶层Makefile: 顶层Makefile按照一定的顺序组织文件,根据连接脚本arc/$(ARCH)/ kernel/ vmlinux.lds生成内核映象文件vmlinux,对Makefile的总结,(1)配置文件.config中定义了一系列的变量,Makefile将结合它们釆决定哪些文件被编 进内核、哪些文件被编成模块、涉及哪些子目录。 (2)顶层Makefile和arch/$(ARCH)/Makefile决定根目录下哪些子目录,arc/$(ARCH) 目录下哪些文件和目录将被编迸内核。 (3)最后,各级子目录下的Makefile决定所在目录下哪些文件将被编进内核,哪些文
14、件 将被编成模块(即驱动程序),进入哪些目录继续调用它们的Makefile 。 ( 4)顶层Makefile和arch/$(ARCH)/Makefile设置了可以影响所有文件的编译、连接选 项:CFLAGS、MLAGS、LDFLAGS、ARFLAGS。 (5)各级子目录下的Makefile中可以设置能够影响当前目录下所有文件的编译、连接选 项:EXTRA_CFLAGS、EXTRA_AFLAGS、EXTRA_LDFLAGS、EXTRA_ARFLAGS;还可以设置可以影响某个文件的编译选项:CFLAGS_$,AFLAGS_$ 。 ( 6)顶层Makefile按照一定的顺序组织文件,根据连接脚本ar
15、c/$(ARCH)/ kernel/ vmlinux.lds生成内核映象文件vmlinux。,内核的Kconfig分析,所有配置工具都是通过读取arc/$(ARCH)/Kconfig文件来生成配置界面 这个文件是所有配置文件的总入口,它会包含其他目录的Kconfig文件。 make menuconfig,得到配置界面如下图所示:,内核的Kconfig分析,内核源码每个子目录中,都有一个Makefile文件和Kconfig文件 Kconfig用于配置内核,它就是各种配置界面的源文件。 内核的配置工具读取各 个Kconfig文件,生成配置界面供开发人员配置内核,最后生成配置文件.config。 内
16、核的配置界面以树状的菜单形式组织,主菜单下有若干个子菜单,子菜单下又有子菜 单或配置选项。每个子菜单或选项可以有依赖关系,这些依赖关系用来确定它们是否显示。 只有被依赖项的父项已经被选中,子项才会显示。,编译内核的步骤,Step1: 拷贝config_n35为文件.config #cp config_n35 .config Step2: 修改内核目录下的Makefile,修改CROSS_COMPILE ?= arm-linux- ARM ?= arm Step3: 执行make menuconfig,并保存,如果有问题,以root权限执行 #make menuconfig Step4: 编译内
17、核 #make zImage 编译完成后,zImage放在/arch/arm/boot/zImage,Linux内核配置选项,make menuconfig 配置界面主菜单的类别,配置界面主菜单的类别,“system Type”菜单:系统类型,“Device Drivers”菜单:设备驱动程序,Linux内核启动过程概述,Linux的启动过程可以分为两部分; 架构/开发板相关的引导过程 后续的通用启动过程,Linux内核启动过程概述,第一阶段:引导阶段 引导阶段通常使用汇编语言编写,它首先检查内核是否支持当前架构的处理器,然后检 查是否支持当前开发板。通过检查后,就为调用下一阶段的start_
18、kernel函数作准备了。这主要分如下两个步骤。 (1)连接内核时使用的虚拟地址,所以要设置页表、使能MMU。 (2)调用C函数start_kernel之前的常规工作,包括复制数据段、清除BSS段、调用start_kernel函数,Linux内核启动过程概述,start_kernel函数部分代码分析,第二阶段第一个C函数:start_kernel函数 定义在init/main.c中 U-Boot传给内核的参数有两类: 预先存在某个地址的tag列表 调用内 核时在r1寄存器中指定的机器类型ID 其中setup_arch函数 是重要初始化函数,setup_arch函数分析,在arch/arm/kernel/setup.c中定义,编译内核,解压内核 配置、编译内核,cd /home/student tar xvzf linux-2.6.29.tgz,cp config_mini2440_n35 .config make menuconfig make
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓储规划师岗位面试问题及答案
- 浙江省杭州七县区2025届化学高二下期末学业质量监测试题含解析
- 2025届宁夏银川市第六中学高一化学第二学期期末预测试题含解析
- 北京市清华大学附中2025年化学高二下期末综合测试试题含解析
- 江西省新余第四中学、上高第二中学2025届高一化学第二学期期末联考试题含解析
- 发票摇奖资金管理办法
- 园区企业梯队管理办法
- 江苏工地进度管理办法
- 佛教用品规范管理办法
- 农业公司战略管理办法
- 安保工作月度总结
- 开业美容项目活动方案
- 2025年技术玻璃制品行业市场调研报告
- 2025至2030高纯氯化钾行业产业运行态势及投资规划深度研究报告
- 2025年中国自由锻件行业发展运行现状及投资潜力预测报告
- 医学美容技术专业教学标准(高等职业教育专科)2025修订
- QGDW11970.7-2023输变电工程水土保持技术规程第7部分水土保持设施质量检验及评定
- 变电站创优工程汇报
- DB62T 4134-2020 高速公路服务区设计规范
- T/CACE 0129-2024竹编安全帽
- 2025全国农业(水产)行业职业技能大赛(水生物病害防治员)选拔赛试题库(含答案)
评论
0/150
提交评论