我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

1 Linux内核镜像格式

Linux内核有多种格式的镜像,包括,Image,,,,,等。

1.1

VM 是可启动、可压缩的内核镜像。Linux 支持虚拟内存,因此得名 VM。它由用户从内核源代码编译而来,本质上是一个 ELF 格式的文件。换句话说,它是最原始的编译好的内核文件,未经压缩,而且比较大。这种格式的镜像文件大多存储在 PC 上,大约 50MB 左右。

ELF,即 ,是UNIX实验室发布的一种应用程序二进制接口,扩展名为elf。可以简单认为在elf格式的文件中,除了二进制代码外,还包含了可执行文件的一些信息,比如符号表等。

1.2

是可启动的压缩内核。“vm”代表“ ”。是可执行的 Linux 内核,位于 /boot/ 中,通常是软链接。有两种创建方法:

1.3 图像

Image是处理过的内核代码,只包含二进制数据,不再是elf格式,但是该格式的内核镜像还没有经过压缩。

GNU 实用程序用于将一个目标文件的内容复制到另一个目标文件,即将一种格式的目标文件转换为另一种格式的目标文件。通过将其用作输出目标 (-o),可以生成原始二进制文件,本质上丢弃所有符号和重定位信息,仅留下二进制数据。

1.4 和

是ARM linux常用的压缩镜像文件,采用gzip压缩,并附加解压代码,命令格式为make,此格式的Linux镜像文件大多存储在NAND上。

bz 代表 big。其格式与 类似,但使用不同的压缩算法。请注意 比 压缩程度更高。它不是用 bzip2 压缩的。bz 代表“big”。中的“b”代表“big”。

() 和 () 都使用 gzip 压缩。它们不仅是压缩文件,而且在两个文件的开头都嵌入了 gzip 解压缩代码。因此您无法使用或 gzip -dc 解压缩它们。

内核文件包含一个微小的 gzip 文件,用于解压内核并启动它。两者的区别在于,旧版将内核解压到低内存(前 640K),而将解压后的内核解压到高内存(1M 以上)。如果内核较小,则可以使用其中一种或两种方式,并且系统在两种方式启动时运行相同。大内核使用和不能使用。

1.5

它是uboot的一个特殊的镜像文件,在前面增加了一个64B的头信息(tag),头信息描述了镜像文件的类型、加载位置、生成时间、大小等信息。也就是说,如果直接从0x40位置开始执行的话,是没有任何区别的,命令格式为make。这种格式的Linux镜像文件大多存储在NAND上。64字节的头结构如下:

typedef struct image_header 
{
    uint32_tih_magic;
    uint32_tih_hcrc;
    uint32_tih_time;
    uint32_tih_size;
    uint32_tih_load;
    uint32_tih_ep;
    uint32_tih_dcrc;
    uint8_tih_os;
    uint8_tih_arch;
    uint8_tih_type;
    uint8_tih_comp;
    uint8_tih_name[IH_NMLEN];
} image_header_t;

因此, 和 都是压缩的内核镜像,而是使用工具生成的,工具介绍如下: 使用u-boot中的工具生成(u-boot源码包/tools/.c )

命令:-l [文件名]

[] -f [映像树文件] [文件名]

[] -F [文件名]

[] ( 模式)

描述:命令用于创建与 U-Boot 引导加载程序一起使用的图像。这些图像可以包含 Linux 内核、设备树 blob、根文件系统图像、固件图像等,并且可以单独使用或组合使用。支持两种不同的格式:

选项说明

l [[u]图像文件名]

显示[]中的头信息

塑造传统形象

-A []

建立系统架构。

-O [操作系统]

设置操作系统。u-boot的bootm命令根据OS类型改变启动方式。

-T [图像类型]

设置镜像类型。

-C [ 类型 ]

设置压缩类型。

-a [加载]

设置十六进制加载地址

-e [入口点]

设置十六进制入口点

-n [图像名称]

设置图像名称

-d [图像数据文件]

使用镜像数据源

-x

二维码
扫一扫在手机端查看

本文链接:https://by928.com/5829.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线