Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1706973
  • 博文数量: 607
  • 博客积分: 10031
  • 博客等级: 上将
  • 技术积分: 6633
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-30 17:41
文章分类

全部博文(607)

文章存档

2011年(2)

2010年(15)

2009年(58)

2008年(172)

2007年(211)

2006年(149)

我的朋友

分类: LINUX

2007-09-05 11:24:33

by pascal4123(http://pascal4123.cublog.cn)

root Linux启动引导程序

电源打开后,80x86 CPU进入实模式,并从0xFFFF0处执行代码,这通常是BIOS的地址。
BIOS执行某些系统的检测,并在物理内存0处初始化中断向量。此后 把启动设备的MBR(磁盘第一个扇区,512字节)复制到0x7C00处,并跳转到这里。

1:实模式    寻址采用和8086相同的16位段和偏移量,最大寻址空间1MB,最大分段64KB。可以使用32位指令。32位的x86 CPU用做高速的8086。
3:保护模式   寻址采用32位段和偏移量,最大寻址空间4GB,最大分段4GB (Pentium Pre及以后为64GB)。在保护模式下CPU可以进入虚拟8086方式,这是在保护模式下的实模式程序运行环境。

linux最前面的部分boot/sect.s,被bios读入0x7c00处,它被执行时将自己移到0x90000处(?),并把启动设备后2k(setup.s)读入到0x90200,并把控制权移交给setup.s中的代码,内核其他部分(system模块)则被读入到0x10000处,随后移动到内存起始处0x0000,这样system模块代码地址也即物理地址,便于对内核代码和数据的操作。


阅读(747) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~