ROMIMAGE工具解析(ARM平台)

本文详细解析了ROMIMAGE工具在Windows CE 6.0中的作用,包括其在OS编译过程中的位置、ce.bib文件的四大组成部分、处理过程以及NK.bin文件的结构。内容涵盖MEMORY section、CONFIG section、MODULES section、FILE section的定义,以及romimage.exe如何处理这些部分,生成最终的nk.bin文件。
摘要由CSDN通过智能技术生成

一.wince6 OS 编译大体过程

build (public code)->sysgen->build (BSP)->buildrel->makeimg, 其中makeimg 命令调用romimage.exe (运行该命令romimage.exe ce.bib )产生最终的nk.bin 。其中ce.bibmerge 了系统中所有bib 文件( 当然包括config.bibplatform.bib)

 

二.ce.bib 中的内容包含四大部分

1. MEMORY section 划分内存块

格式:Name        Start       Size        Type

Name :唯一名称

Start :每块内存base address

Size :划分大小

Type "rom_8" "rom_16" "romx8" "ram" "ramimage" "nandimage" "reserved" "fixupvar" "extension" "chain information" 详细解释请参考http://msdn.microsoft.com/en-us/library/ms923584.aspx

Romimage.exe 解析该部分内容,如果有一块内存区域没有指定type 并且Name“reserve”type 就被指定为reserve

2. CONFIG section 设置配置变量

    AUTOSIZE

格式:AUTOSIZE=OFF|ON

默认为OFFconfig.bib 中定义RAM 用于进程和存储对象内存区域,RAMIMAGE 用于保存image 。如果为ONRAMRAMIMAGE 合并成一个部分,从低地址开始预留RAMIMAGE 大小,其余大小作为RAM

 

BOOTJUMP

格式:BOOTJUMP =address|NONE

默认为NONE ,内核启动从OALstartup 地址执行。如果指定一个在RAMIMAGE 范围的值,那就从指定的地址开始执行

 

COMPRESSION

格式:COMPRESSION = OFF|ON

默认为ON ,对于文件,默认全部压缩,对于模块默认压缩可写部分。如果模块在.bib 中定义时具有C 属性(表明压缩模块所有部分),那么当前这个选项就忽略了

 

FSRAMPERCENT

格式:FSRAMPERCENT=number 






文件系统分配的内存的百分比。

例如number0xAABBCCDD, 那么文件系统分配的内存的百分比为(0xAA+0xBB+0xCC

+0xDD)/1024

 

KERNELFIXUPS



格式:KERNELFIXUPS=OFF|ON




默认值为ON 。如果为ONromimage.exe 具有Base Relocations

 

PROFILE

格式PROFILE =OFF|ON

默认为OFF

。如果为ON

,使用symbols

(文件map

信息)

3.MODULES section 定义OS 镜像包含哪些模块,并指定模块被加载到那块内存区域

   格式:Name      Path   Memory   Type

Name :模块名

Path :真实的模块地址

Memory :该模块被加载到那块内存区域,区域为MEMORY section 部分的name

Type 模块的存放属性

  • S :系统文件
  • H :隐藏文件
  • R 只压缩模块的资源部分(默认模块是不压缩的)
  • C :压缩模块所有部分
  • D :禁止调试
  • N :标志模块是非信任的
  • P :忽略CPU 类型
  • Q: 双模式,如果该模块为user mode ,这时会在kernel mode 上也对应一个K.+ 模块名
  • K :指定模块为kernel mode
  • Z like kernel mode
  • X :指定romimage.exe 对此模块验证签名
  • M :运行时加载整个模块,而不是按需分页

 

  4. FILE s

本次实验的目的是通过搭建基于bochs的linux虚拟机,掌握虚拟化技术的基本原理和实现方法,同时深入了解操作系统内核的工作原理和机制。本文将从实验的背景、实验过程、实验结果、实验总结、实验分析等方面进行介绍。 一、实验背景 随着计算机技术的不断发展和进步,虚拟化技术作为一种高效、灵活、可靠的计算机资源管理方式,越来越受到人们的关注和重视。而bochs作为一种开源的x86模拟器,可以模拟出完整的计算机硬件环境,是进行操作系统内核开发、测试和调试的重要工具之一。因此,本次实验选择使用bochs来搭建一个基于linux的虚拟机,以掌握虚拟化技术的基本原理和实现方法。 二、实验过程 1. 安装bochs 首先,在ubuntu系统中通过apt-get命令安装bochs: sudo apt-get install bochs 2. 下载linux镜像文件 在官网上下载一个适合bochs的linux镜像文件,然后将其解压缩即可。 3. 编写bochsrc配置文件 在bochs的安装目录下,创建一个名为bochsrc的文本文件,然后写入以下内容: ``` megs: 32 display_library: sdl romimage: file=$BXSHARE/BIOS-bochs-latest vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest ata0-master: type=disk, path="linux.img", mode=flat, cylinders=1024, heads=16, spt=63 boot: disk log: bochsout.txt mouse: enabled=0 ``` 其中,megs表示虚拟机的内存大小为32MB,display_library设置为sdl,romimage和vgaromimage分别指定BIOS和VGA BIOS的镜像文件。ata0-master指定虚拟机的硬盘文件路径、模式、磁头数、柱面数等信息。boot设置为disk,表示从硬盘启动。log指定日志文件的名称。mouse表示不启用鼠标。 4. 启动虚拟机 在bochs的安装目录下,执行以下命令启动虚拟机: bochs -f bochsrc 5. 进入linux系统 在启动虚拟机后,按照提示进入linux系统。 三、实验结果 通过以上步骤,我们成功地搭建了一个基于bochs的linux虚拟机,并成功进入了linux系统。 四、实验总结 通过本次实验,我们深入了解了虚拟化技术的基本原理和实现方法,掌握了bochs的基本使用方法,同时也进一步了解了操作系统内核的工作原理和机制。同时,通过实验,我们还学习到了如何编写bochsrc配置文件、如何选择linux镜像文件以及如何启动虚拟机等操作。 五、实验分析 虚拟化技术在计算机领域中有着广泛的应用,例如云计算、虚拟化服务器、虚拟化存储等。通过本次实验,我们不仅掌握了虚拟化技术的基本原理和实现方法,还深入了解了操作系统内核的工作原理和机制。因此,虚拟化技术和操作系统内核是计算机领域中非常重要的知识点,值得我们深入学习和研究。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值