基于x86的Lnx异待代吗分胡 小站和作业 Linux操作系统分析 2基于x86的Linux启动代码分析 陈香兰(xlanchen@ustc.edu.cn) 计算机应用教研室@计算机学院 嵌入式系统实验室@苏州研究院 中国科学技术大学 Fall 2010 4日卡+021元克000 陈香兰(xlanchen@ustc.edu.cn) Linux操作系统分新
. . . . . . 基于x86的Linux启动代码分析 小结和作业 . . .. . . . Linux操作系统分析 2 基于x86的Linux启动代码分析 陈香兰(xlanchen@ustc.edu.cn) 计算机应用教研室@计算机学院 嵌入式系统实验室@苏州研究院 中国科学技术大学 Fall 2010 陈香兰(xlanchen@ustc.edu.cn) Linux操作系统分析
基于x86的Lnx异待代吗分胡 小站和作业 Outline ①基于x86的Linux启动代码分析 ② 小结和作业 4口4021元000 陈香兰(xlanchen(@ustc.edu.cn) Linux操作系统分新
. . . . . . 基于x86的Linux启动代码分析 小结和作业 . Outline . . .1 基于x86的Linux启动代码分析 . . .2 小结和作业 陈香兰(xlanchen@ustc.edu.cn) Linux操作系统分析
基于x86的Linux启动代码分析 小结和作业 源代码来源 。内核版本:2.6.26 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.gz 。解压缩后,成功编译一次 。建立Source Insight.工程 Windows+Source Insight Wine+Source Insight 安装wine:sudo apt--get install wine 在wine中安装Sourcelnsight:wine XXX.exe 4口卡4回子4元电月风0 陈香兰(xlanchen(@ustc.edu.cn) Linux操作系统分新
. . . . . . 基于x86的Linux启动代码分析 小结和作业 . 源代码来源 内核版本:2.6.26 ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.tar.gz 解压缩后,成功编译一次 建立Source Insight工程 Windows+Source Insight Wine+Source Insight 安装wine:sudo apt-get install wine 在wine中安装SourceInsight:wine XXX.exe 陈香兰(xlanchen@ustc.edu.cn) Linux操作系统分析
基于x86的Linux启动代码分折析 小和作 基于x86的Linux.启动代码分析 。了解linux的源码组织 。看目录结构 。了解linux的内核代码结构 。看Makefile ●了解基于x86的linux的boot image的结构 。看Makefile文件和链接描述文件 ●掌握x86的启动流程 ●阅读启动源码文件 4日4回2元电月风0 陈香兰(xlanchen(@ustc.edu.cn) Linux操作系统分新
. . . . . . 基于x86的Linux启动代码分析 小结和作业 . 基于x86的Linux启动代码分析 了解linux的源码组织 看目录结构 了解linux的内核代码结构 看Makefile 了解基于x86的linux的boot image的结构 看Makefile文件和链接描述文件 掌握x86的启动流程 阅读启动源码文件 陈香兰(xlanchen@ustc.edu.cn) Linux操作系统分析
基于x86的Linux启动代码分折析 小结和作业 Linux-2.6.26 ●阅读linux目录下的README 。关于Linux的介绍(WHAT IS LINUX?) 。该版本内核支持的体系结构(ON WHAT HARDWARE DOES IT RUN?) 。Linux源代码目录中的文档目录(DOCUMENTATION)》 。如何配置、编译、安装 INSTALLING the kernel BUILD directory for the kernel CONFIGURING the kernel COMPILING the kernel 。等等 4日卡4024元电月只0 陈香兰(xanchen@ustc.edu.cn) Linux操作系统分新
. . . . . . 基于x86的Linux启动代码分析 小结和作业 . Linux-2.6.26 阅读linux目录下的README 关于Linux的介绍(WHAT IS LINUX? ) 该版本内核支持的体系结构(ON WHAT HARDWARE DOES IT RUN?) Linux源代码目录中的文档目录(DOCUMENTATION) 如何配置、编译、安装 INSTALLING the kernel BUILD directory for the kernel CONFIGURING the kernel COMPILING the kernel 等等 陈香兰(xlanchen@ustc.edu.cn) Linux操作系统分析
基于x86的Linux启动代码分折析 小和件 Linux内核源代码中的主要子目录1 ·Documentation内核方面的相关文档。 。arch与体系结构相关的代码。 对应于每个支持的体系结构,有一个相应的目录如x86、 arm~alpha等。每个体系结构子目录下包含几个主要的子目 录: 。kernel与体系结构相关的核心代码 。mm与体系结构相关的内存管理代码 。b与体系结构相关的库代码 。include内核头文件o 对每种支持的体系结构有相应的子目录,如asm-x86、 asm-arm、asm-alpha等o 符号链接asm,如“asm->asm-x86”。 实际上,“#include‘asm/xxxx.h'”? 4口卡4回子4元电月风0 陈香兰(xanchen@ustc.edu.cn】 Linux操作系统分新
. . . . . . 基于x86的Linux启动代码分析 小结和作业 . Linux内核源代码中的主要子目录 I Documentation 内核方面的相关文档。 arch 与体系结构相关的代码。 对应于每个支持的体系结构,有一个相应的目录如x86、 arm、alpha等。每个体系结构子目录下包含几个主要的子目 录: kernel 与体系结构相关的核心代码 mm 与体系结构相关的内存管理代码 lib 与体系结构相关的库代码 include 内核头文件。 对每种支持的体系结构有相应的子目录,如asm-x86、 asm-arm、asm-alpha等。 符号链接asm,如“asm -> asm-x86”。 实际上,“#include ‘asm/xxxx.h’”? 陈香兰(xlanchen@ustc.edu.cn) Linux操作系统分析
基于x86的Linux启动代码分析 小和作北 Linux内核源代码中的主要子目录I川 ●init内核初始化代码。提供main.c,包含start_kernel函数。 ●kernel内核管理代码。 ●mm内存管理代码。 ●ipc进程间通讯代码。 ●net网络部分代码。 ●b与体系结构无关的内核库代码。 ●drivers设备驱动代码。每类设备有相应的子目录,如char、 block、net等 。fs文件系统代码。每个支持文件系统有相应的子目录, 如eXt2、proc等。 ●modules可动态加载的模块。 ●Scripts配置核心的脚本文件。 ·等等 4口卡4回子4元电月风0 陈香兰(xlanchen(@ustc.edu.cn) Linux操作系统分新
. . . . . . 基于x86的Linux启动代码分析 小结和作业 . Linux内核源代码中的主要子目录 II init 内核初始化代码。提供main.c,包含start kernel函数。 kernel 内核管理代码。 mm 内存管理代码。 ipc 进程间通讯代码。 net 网络部分代码。 lib 与体系结构无关的内核库代码。 drivers 设备驱动代码。每类设备有相应的子目录,如char、 block、net等 fs 文件系统代码。每个支持文件系统有相应的子目录, 如ext2、proc等。 modules 可动态加载的模块。 Scripts 配置核心的脚本文件。 等等 陈香兰(xlanchen@ustc.edu.cn) Linux操作系统分析
基于x86的Linux启动代码分析 考虑Arch为386考察如下目录 。观察Linux源码的根目录 ●观察arch目录 ●观察arch下的x86目录 ·arch/x86/boot arch/x86/boot/compressed 。arch/x86/kernel 。观察Linux的init目录 4日卡4回21元电月00 陈香兰(xlanchen@ustc.edu.cn) Linux操作养统分新
. . . . . . 基于x86的Linux启动代码分析 小结和作业 . 考虑Arch为i386 考察如下目录 观察Linux源码的根目录 观察arch目录 观察arch下的x86目录 arch/x86/boot arch/x86/boot/compressed arch/x86/kernel 观察Linux的init目录 陈香兰(xlanchen@ustc.edu.cn) Linux操作系统分析
基于x86的Linux动代码分折 小和件出 阅读documentation/i386/boot.txtl 。由于一些历史的原因,基于x86的Liux的启动比较复杂 。这个文档(THE LINUX/I386 BOOT PROTOCOL)包含如 下内容 ©Linux/i386的启动协议(若千个)】 ©内存布局图 (MEMORY LAYOUT ⊙实模式下的内核头结构及细节 (THE REAL-MODE KERNEL HEADER 0内核的命令行 (THE KERNEL COMMAND LINE) O MEMORY LAYOUT OF THE REAL-MODE CODE ⊙启动配置示例 (SAMPLE BOOT CONFIGURATION) O装载Linux的剩余部分 (LOADING THE REST OF THE KERNEL) 4口卡4021元电月只0 陈香兰(xlanchen(@ustc.edu.cn) Linux操作系统分新
. . . . . . 基于x86的Linux启动代码分析 小结和作业 . 阅读documentation/i386/boot.txt I 由于一些历史的原因,基于x86的Linux的启动比较复杂 这个文档(THE LINUX/I386 BOOT PROTOCOL)包含如 下内容 . . .1 Linux/i386的启动协议(若干个) . . .2 内存布局图 (MEMORY LAYOUT ) . . .3 实模式下的内核头结构及细节 (THE REAL-MODE KERNEL HEADER ) . . .4 内核的命令行 (THE KERNEL COMMAND LINE) . . .5 MEMORY LAYOUT OF THE REAL-MODE CODE . . .6 启动配置示例 (SAMPLE BOOT CONFIGURATION) . . .7 装载Linux的剩余部分 (LOADING THE REST OF THE KERNEL) 陈香兰(xlanchen@ustc.edu.cn) Linux操作系统分析
基于x86的Linux启动代码分折析 小和作出 阅读documentation/i386/boot.txt l1 ⊙特殊的命令行参数 (SPECIAL COMMAND LINE OPTIONS ⑨运行内核 (RUNNING THE KERNEL) 四高级启动回调函数 (ADVANCED BOOT LOADER HOOKS 32-bit BOOT PROTOCOL 4日4021元电月00 陈香兰(xlanchen(@ustc.edu.cn) Linux操作系统分新
. . . . . . 基于x86的Linux启动代码分析 小结和作业 . 阅读documentation/i386/boot.txt II . . .8 特殊的命令行参数 (SPECIAL COMMAND LINE OPTIONS ) . . .9 运行内核 (RUNNING THE KERNEL) . . .10 高级启动回调函数 (ADVANCED BOOT LOADER HOOKS ) . . .11 32-bit BOOT PROTOCOL 陈香兰(xlanchen@ustc.edu.cn) Linux操作系统分析