电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

简析linux内核的内核执行流程

简析linux内核的内核执行流程_第1页
1/10
简析linux内核的内核执行流程_第2页
2/10
简析linux内核的内核执行流程_第3页
3/10
下载后可任意编辑简析 linux 内核的执行流程----从 bootsect.s 到 main.c(内核版本 0.11)Linux 启动的第一阶段(从开机到 main.c)3 个任务:A、启动 BIOS,准备实模式下的中断向量表和中断服务程序。B、从启动盘加载操作系统程序到内存。C、为执行 32 的 main 函数做过渡准备。内存变化如下:① 、0xFE000 到 0xFFFFF 是 BIOS 启动块,其中上电后第一条指令在 0xFFFF0。② 、而后 0x00000 到 0x003FF 总共 1KB 存放中断向量表,而接下去的地址到 0x004FF 共 256B 存放 BIOS 数据,从 0x0E05B 开始的约 8KB 的内存中存放中断服务程序。③ 、利用 BIOS 中断 0x19h 把硬盘的第一扇区 bootsect.s 的代码加载到内存中,即 0x07c00 处,后转到该处执行。④ 、将 bootsect.s 的代码复制到 0x90000 处。⑤ 、利用中断 0x13h 将 setup.s 程序加载到内存 0x90200 处。⑥ 、再将剩余的约 240 个扇区的内容加载到 0x10000~0x2EFFF处。⑦ 、开始转到 setup.s 处执行,第一件事就利用 BIOS 提供的中断服务程序从设备上猎取内核运行的所需系统数据并存在 0x90000的地址处,这时将原来 bootsect.s 的代码覆盖得只剩 2Byte 的空间。⑧ 、关中断并将系统代码复制到 0x00000 处,将原来放在这里的中断向量表与 BIOS 数据区覆盖掉,地址范围是0x00000~0x1EFFF。同时制作两表与两寄存器。⑨ 开地址线 A20,寻址空间达到 4GB,后对 8259 重新编程,改变中断号。⑩ 、转到 head.s(大小是 25K+184B)执行,执行该程序完后是这样的:0x00000~0x04FFF:页目录与 4 个页表,每一项是 4KB,共 20KB;0x05000~0x05400:共 1KB 的空间是软盘缓冲区;0x05401~0x054b8:共 184B 没用;0x054b9~0x05cb8:共 2KB 的空间存中断描述符表;0x05cb9~0x064b8:共 2KB 的空间存全局描述符表;之后就是 main 函数的代码了!第二阶段、从 main.c 函数到系统准备完毕阶段。第一步:创建进程 0,并让进程 0 具备在 32 位保护模式下载主机中的运算能力。流程是:复制根设备和硬盘参数表 (main.c 中的 102、110、111 行) 物理内存规划格局(main.c 的 112 行~126 行,其中有 rd_init 函数定义在 kernel/ramdisk.c 中,此函数用于虚拟盘初始化;而 mem_init 函数是用于内存管理结构下载后可任意编辑初始化,定义在 mem/memory.c 中,该函数页面使用 虚拟盘设置与...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

简析linux内核的内核执行流程

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部