基于x86的Linux的启动ppt课件.ppt

基于x86的Linux的启动ppt课件.ppt

ID:59323928

大小:837.00 KB

页数:49页

时间:2020-09-20

基于x86的Linux的启动ppt课件.ppt_第1页
基于x86的Linux的启动ppt课件.ppt_第2页
基于x86的Linux的启动ppt课件.ppt_第3页
基于x86的Linux的启动ppt课件.ppt_第4页
基于x86的Linux的启动ppt课件.ppt_第5页
资源描述:

《基于x86的Linux的启动ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Linux操作系统分析中国科学技术大学计算机系陈香兰(0512-87161316)Autumn2009上次课内容回顾Linux简介Linux内核分析的一些基础知识操作系统基本概念堆栈用户态/内核态虚拟内存分析和实验验证环境VMwareSourceInsight基于i386体系结构的 Linux启动代码分析主要内容源代码简介启动代码简介Linux内核代码组成分析Linux的启动层次Linux的启动分析需要的技能:makefile阅读能力gcc;ld;nm;等源代码来源ULK3,采用Linux-2.6.26,有中文版下

2、载地址:ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.gz解压缩后,建立SourceInsight工程Linux-2.6.26阅读linux目录下的README关于Linux的介绍该版本内核支持的体系结构如何配置、编译、安装Linux内核源代码中的主要子目录Documentation内核方面的相关文档。arch与体系结构相关的代码。对应于每个支持的体系结构,有一个相应的目录如i386、arm、alpha等。每个体系结构子目录下包含几个主要的子

3、目录:kernel与体系结构相关的核心代码mm与体系结构相关的内存管理代码lib与体系结构相关的库代码include内核头文件。对每种支持的体系结构有相应的子目录。init内核初始化代码。kernel内核管理代码。mm内存管理代码。ipc进程间通讯代码。net网络部分代码。lib与体系结构无关的内核库代码。drivers设备驱动代码。每类设备有相应的子目录,如char、block、net等fs文件系统代码。每个支持文件系统有相应的子目录,如ext2、proc等。modules可动态加载的模块。Scripts配置核心

4、的脚本文件。考虑Arch为i386考察如下目录arch/i386arch/i386/bootarch/i386/kernelLinux的init目录阅读documentation/i386/boot.txt对于i386平台,由于一些历史的原因,因此Linux的启动比较复杂这个文档包含如下内容1、Linux/i386的启动协议(若干个)2、内存布局图3、实模式下的内核头结构4、内核的命令行(commandline)5、启动配置示例6、装载Linux的剩余部分7、特殊的命令行参数8、运行内核9、高级启动回调函数阅读顶层

5、目录下的Makefile阅读顶层目录下的Makefile找到all和vmlinux找到vmlinux所依赖的各个文件或者目标关于arch/x86/Makefile的引入可以看到vmlinux包含如下内容i386/kernel/head.S+init/main.c+init/version.o+CORE_FILES+DRIVERS+NETWORKS+LIBS若makeinstall在i386的Makefile中有install规则若makeboot/bzImage/zImage等等,则要找到对应的目标然后进行make

6、boot在顶层的Makefile中可以找到boot规则bzImage/zImage可以在i386的Makefile中找到相应规则其他的zXXX/bzXXX也都依赖于boot下的zImage/bzImage它们最终都找到i386/boot的Makefilei386/boot的Makefile看i386/boot的Makefilez代表压缩;b代表大内核可见compressed下的vmlinux为compressed/head.S+压缩后的顶层目录下的vmlinux下面根据在bzImage/zImage中的顺序,我们依

7、次看启动相关的源代码和相关概念arch/i386/boot/header.Sarch/i386/boot/main.carch/i386/boot/compressed/head_32.Sarch/i386/kernel/head_32.S最后进入kernel/main.CI386机器的启动层次BIOS(BasicI/OSystem)Bootloader软盘启动、硬盘启动LinuxkernelBIOS加电,RESET引脚初始化寄存器;CS:IP=0xfffffff0,inROMROMBIOSBIOS启动内容POS

8、T(上电自检)初始化硬件设备搜索一个操作系统来启动根据配置,操作系统可以在软盘/硬盘/CD_ROM上把对应设备的第一个扇区的内容(bootloader或部分)拷贝到RAM(0x7c00)处跳转到0x7c00处执行CPU加电后,将会初始化程序指针到某个约定好的地址上取指令运行,在这个地指处,往往安排了启动相关的代码,例如BIOS或者reset向量处理入口Boo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。