- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch05内核及其配置
第5章 内核及其配置本章内容Linux内核体系结构内核引导与设置内核构建系统调用1. Linux内核体系结构2. 内核引导与启动BIOS/OF加电后处理器首先访问通常位于只读内存(一般是Flash ROM或仅仅是Flash)中的某一地址。BIOS(基本输入输出)是x86系统加电后最先运行的代码。引导系统并与硬件相关的系统初始化代码。Open Firmware是PPC(PowerPC)系统加电后最先运行的代码。BIOS功能自检及初始化程序;自检,对CPU,640K基本内存,1M以上的扩展内存,ROM,主板,CMOS存储器等进行测试。初始化,包括创建中断向量、设置寄存器等。 引导程序 ,引导DOS或Linux等操作系统。 硬件中断处理;系统在加电引导机器时,要读取CMOS信息,用来初始化机器各个部件的状态。程序服务请求;程序服务处理程序主要是为应用程序和操作系统服务,这些服务主要与输入输出设备有关,例如读磁盘、文件输出到打印机等。 引导装入程序(Boot Loaders)格式化磁盘时,会创建主引导记录(MBR),该记录存储在引导设备的第一个扇区(0扇区、0磁道、0磁头)。包含:一个小程序一张四入口点的分区表结束标识符(0XAA55),用来做MBR的有效性检测。 GRUB(Grand Unified Bootloader),基于x86的引导装入程序,用来加载Linux。LILO(Linux Loader)x86中Linux的加载程序。Yaboot是基于PowerPC及其OF的引导装入程序。LILOLILO (Linux Loader)已成为所有 Linux 发行版的标准组成部分。作为一个较老的Linux 引导加载程序,它那不断壮大的 Linux 社区支持使它能够随时间的推移而发展,并始终能够充当一个可用的现代引导加载程序。GNU GRUBGNU GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。GRUB允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。GRUB2GRUB2(GRand Unified Bootloader, Version 2)是GRUB的第二版。GRUB目前已经不再继续开发,只是修正存在的错误。官方的说法是GRUB的编码实在太烂,以至于没法进行维护升级了,所以重新从零开发了新的GRUB2,从此以后原来的GRUB就叫做GRUB Legacy了。GRUB2对GRUB2的接口进行了完整地重写,并且采用了清晰的架构和模块化的布局。目前大部分都采用GRUB2作为内核引导管理器。体系结构相关的内存初始化X86和PowerPC在硬件方面都具有支持实寻址和虚寻址的内存管理特征。Linux的内存管理依赖于底层的硬件结构。现在PPC和x86的代码都集中在init/main.c的start_kernel()中,位于与体系结构无关的代码段中,调用特定体系结构的历程来完成内存初始化。开始:start_kernel()Init/main.c中start-kernel(),执行进程0(即超级用户线程root thread),进程0又产生进程1(即init进程),然后进程0就编程CPU的空闲进程。Linux内核只提供了轻量进程的支持,限制了更高效的线程模型的实现。目前最流行的线程机制LinuxThreads所采用的就是线程-进程“一对一”模型,调度交给核心,而在用户级实现一个包括信号处理在内的线程管理机制。 3. 内核构建Linux集成套件包括多种内核,能够处理各种机器。通过编译内核,选择符合硬件类型的驱动等,可以调整Linux系统,使其更合理地安装到计算机中。重新编译内核以便实现一些新功能,如将Linux系统设置为一个临时路由器。使得全世界内核设计者提供的各种为改进性能而设计的内核得到充分利用。构建Linux内核Linux官方源代码发布网址:gzip压缩的.tar.gz包,bzip2压缩的.tar.bz2。Linux源代码分为:与系统结构相关的部分与系统结构无关的部分文档和工具Linux内核文件组织结构以内核长期维护的版本3.4.70为例。Linux内核文件说明arch:包含了所有和体系结构相关的核心代码,它的每一个子目录都代表一种被支持的体系结构。include:包含编译核心所需要的大部分头文件,与平台无关的头文件放在include/linux子目录中。init:包含核心的初始化代码。mm:包含所有独立于CPU体系结构的内存管理代码。kernel:主要的核心代码,实现大多数Linux系统的内核函数,包括进程调度、系统调用等。Linux内核文件说明(续)drivers:
您可能关注的文档
最近下载
- 让生命之花绽放光彩_“生命教育”主题班会.ppt
- XXWY-B-TY-HJ-013绿化药剂清单.docx VIP
- 1000MW超超临界火电机组关键技术及调试策划.pdf VIP
- XXWY-B-TY-HJ-002施药肥记录表.docx VIP
- 七年级信息技术上册教案:第一单元第一课电脑中的信息是如何表示的.pdf VIP
- Unit 5 Fun Clubs(Section A 1a-1d)课件 人教版2024英语七年级上册.pptx
- 2023年上海十六区高三英语一模汇编 —09.句子翻译(答案解析版).docx
- 小学生生命教育让生命之花绽放光彩主题班会PPT课件.pptx
- 高考英语概要写作专项训练10篇(含解析).docx VIP
- XXWY-B-TY-HJ-007年度绿化管理计划表.docx VIP
文档评论(0)