MINIX3的BootLoader分析

原创 2007年09月22日 21:00:00

1. BIOS

当PC加电自检后,将根据BIOS中的设置,判断指定存储介质的主引导扇区的最后两个字节是否为0xAA55。如果是,则将该扇区载入到地址LOADOFF(0x7C00)处,并开始执行。这一步是由PC的BIOS自动完成的,与操作系统无关。

2. 主引导分区

masterboot.s的代码存放在主引导扇区中,会将自身拷贝到地址BUFFER处并跳转到那里开始执行。该段代码会通过搜索分区表查找出活动扇区,将其主引导扇区的代码拷贝到地址LOADOFF处并执行。

3. bootstrap

这段代码即为bootstrap(存放在bootblock.s文件中),会将boot monitor拷贝到地址BOOTSEG处,并跳转到BOOTSEG:BOOTOFF处执行。

4. boot monitor

boot monitor由boothead.s、boot.c、bootimage.c和rawfs.c四个文件组成,会载入Minix或其他系统。

4.1 boothead.s

boothead.s中的代码将首先被执行,会检测内存、CPU类型、视频模式等,最后调用boot.c中的boot函数。此外,boothead.s还提供了退出monitor、检测设备参数、标准I/O、实模式和保护模式转换等函数。

4.2 boot.c

boot.c提供了monitor的高级函数。boot函数会调用initialize函数来重定位monitor,以防止其被内核覆盖。initialize函数还会调用以下函数:

boot.c中的get_parameters函数,获取并设置环境变量;

rawfs.c中的r_super函数,确认系统使用的是Minix文件系统,并设置文件系统的相应参数。

在这两个函数返回后,boot monitor会执行用户输入的命令,其中最重要的是引导系统。

4.3 bootimage.c

最主要的函数是通过用户输入的命令来执行的bootminix函数,会调用select_image函数来查找需要的系统镜像,调用exec_image函数来加在系统镜像到内存中,以及boothead.s中minix函数将CPU切换到保护模式下执行,并将控制交递给内核执行。在Minix结束运行(如执行shutdown命令)后,bootminix函数才会返回。

4.4 rawfs.c

该文件提供了一个最简单的文件系统,以方便加载Minix内核。

s3c2410的Bootloader(Vivi)源代码分析

  • 2008年05月12日 12:45
  • 149KB
  • 下载

TI Cortex M3串口转以太网例程分析2-----bootloader

bootloader是TI串口转以太网代码的一小部分,位于Flash开始的4KB空间内。它的一个重要作用是在应用远程升级,可以通过串口、USB、IIC、以太网等通道进行远程固件升级。bootloade...

S3c2440 Uboot移植-BootLoader-Stage0代码分析

很多人会不理解Bootloader是什么?在Linux系统中作用是什么?如果大家之前研究过PC架构的话,会从PC的架构上获得一些启发。在我们给windows 装机过程中,不同的PC生产厂商会有不同的方...

基于S3C2440的bootloader详细分析(2)

第二阶段代码详细分析 void Main(void)         //第八个函数 { char *mode;       //定义一个指针变量mode,这个指针指向的内容为char型 ...

嵌入式Linux启动过程分析3-bootloader

选用u-boot作为系统的bootloader bootloader定义:是一段程序,能在系统上电时开始运行,初始化硬件设备,准备好软件环境,最后调用操作系统内核 使用bootloader的目...

minix3 开发环境搭建

准备工作:需要的下载的软件: Vmware workstation 10Minix3镜像(http://www.minix3.org/)PuttyWinSCP   1.  安装虚拟机:     ...

s3c2410 bootloader 第一部分启动代码分析

/* * vivi/arch/s3c2410/head.S:(启动代码第一部分 前200行左右) * Initialise hardware * * 芯片: ...

19、Bootloader(3) -- U-Boot第一阶段代码start.S分析

/******************************************************************** Bootloader第一阶段的功能:(运行在Flash当中...
  • mianyy
  • mianyy
  • 2011年08月23日 15:07
  • 346

S3C2440 BootLoader启动流程分析--startup

在基于ARM内核的嵌入式处理器的板级支持包中,BootLoader是系统在上电过程中要首先执行的第一段代码,虽然BootLoader不是系统在启动过程中所必需的,但是它的存在可以对嵌入式产品的开发和调...

MINIX3 - 安装+使用

MINIX3 - 安装+使用README 作者:邢万里 学校:重庆邮电大学 email:wlxing@yahoo.com 前期准备下载 点击MINIX - ISO官网可以看到如下两个选项,一个是3.3...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MINIX3的BootLoader分析
举报原因:
原因补充:

(最多只允许输入30个字)