Linux操作系统下关于引导和初始化的问题

http://tech.ddvip.com   2007年07月10日    社区交流

内容摘要:Linux操作系统下关于引导和初始化的问题

  序(Boot Loader).

  4.详细启动和初始化过程描述

  1)从软盘启动Linux

  从软盘启动时,存储在软盘第一扇区的指令将被加载并执行.这个指令然后就会把其余的内核复制到内存

  中.

  Linux内核可以装在1.44MB的软盘里,不过为了减少磁盘占用量,它们都进行了压缩.这个压缩过程是在

  编译时完成的,而解压缩的过程则由自举程序完成.

  从软盘启动Linux时,自举程序要做的工作非常简单.它是一个位于

  /usr/src/linux-2.4.2/arch/i386/boot/bootsect.S的汇编语言文件.当我们编译Linux内核源代码,或

  者获取一个新的内核时,这个可执行的汇编代码就会被放在内核程序的前端.由此可见,要制作一个可启

  动的Linux软盘其实很简单.我们只要从磁盘的第一个扇区拷贝Linux内核,就可以创建一个可启动软盘.

  当BIOS加载软盘的第一个扇区时,它实际上拷贝的是自举程序.自举程序由BIOS调用(跳到物理地址为

  0x00007c00的位置),然后执行以下的操作:

  (1)把自已从地址0x00007c00移动到0x00090000;

  (2)使用地址0x00003ff4,创建"实模式"栈;

  (3)设置磁盘参数表,这里使用的是BIOS提供的软盘驱动程序;

  通过调用BIOS程序显示"Loading"信息;

  (4)自举程序调用BIOS程序来加载软盘上内核的setup()函数,并把它放在起始地址为0x00090200的内

  存中;

  (5)接下来自举程序调用一个BIOS程序,这个程序从软盘加载剩余的内核程序,并将其放入起始地址为

  0x00010000(所谓的低地址)或者0x00100000(所谓的高地址);

  (6)然后,跳转到setup()函数.

  2)从硬盘启动Linux

  当系统从硬盘启动时,启动过程又有所不同.硬盘的第一个扇区(0头0道1扇区)叫做MBR(Master

责编:豆豆技术应用

正在加载评论...