基于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操作系统分析