linux内核bootsect.S和setup.S流程
来源:互联网 发布:sql中delete是删除什么 编辑:程序博客网 时间:2024/04/29 01:23
linux内核bootsect.S和setup.S流程
bootsect.S和setup.S两个文件是为了完成将内核加载到内存,并跳转到内核执行而写的。bootsect.S是由BIOS加载到内存的,只有512个字节,无法完成跳转到内核执行的任务,所以写了setup.S文件,该文件有2KB大小,当然该文件可以更加的大。该文件完成进入32位模式并跳转到内核执行的任务,且该文件实现了通过BIOS中断获取硬件信息的任务,当然该任务也可以有内核完成。
bootsect.s流程
- 将0x07c00的代码移动到0x90000处并跳转到0x90000处继续执行。
(0x07c00的代码BOIS加载的引导扇区) - 跳转后重新设置寄存器(设置段寄存器为0x9000,sp为0x4000-12,代码段,数据段,堆栈段都设置完毕)
- 从内存0x00078复制原软驱参数表到0x94000-12处,然后修改表中的每磁道最大扇区数为18.
- 加载setuo模块(后面的4个扇区)到内存0x90200处。如果出错显示提示,重试。
- 加载system模块至0x10000处
- 确定根设备系统号
setup.s流程
- 使用中断获取所需信息
- 将0x100000处程序移动到0x01000处
- 加载暂时使用的ldt和gdt,gdt基地址为0x00000000
- 开始32为地址线
- 初始化中断控制器
- 开启32位保护模式并跳转到0x00001000处
0 0
- linux内核bootsect.S和setup.S流程
- linux内核bootsect.S和setup.S流程
- Linux 内核游记-bootsect.S
- 浅析Linux源码:bootsect.s,setup.s,head.s
- Linux 引导解析(使用bootsect.s+setup.s方式)
- bootsect.s setup.s head.s
- Linux内核——3个汇编程序bootsect、setup以及system(head.s)
- bootsect.S及setup.S两个档案
- bootsect.S及setup.S两个档案
- Linux 0.11内核bootsect.s和loader.s的移植为AT&T汇编
- 简析linux内核的执行流程(从bootsect.s到启动结束)
- Linux/boot/bootsect.S
- 系统启动bootsect.s linux
- Linux-bootsect.s
- /linux/boot/bootsect.s
- 系统启动bootsect.s linux
- linux源代码----bootsect.s
- Linux启动分析(2)— bootsect.S、setup.S、head.S分析
- linux环境变量
- Andriod Studio
- Python高效率编程的8条箴言
- 【HDU】5320 Fan Li【线段树】
- XHTML表单
- linux内核bootsect.S和setup.S流程
- hadoop入门理解
- 2015年7月28日的学习内容
- Linux下文件夹相关操作
- c语言中time函数的用法 http://blog.csdn.net/wangluojisuan/article/details/7045592
- OC设计模式之代理(委托)设计模式
- MySQL 1042错误 can‘t get hostname for your adress
- loadrunner 通过 cscript 获取js返回值的思路
- C语言之函数调用15—递归法求哥德巴赫猜想