当前位置: 首页 > news >正文

贵阳国家经济技术开发区门户网站招聘网站制作

贵阳国家经济技术开发区门户网站,招聘网站制作,手机微信网页版网址,北京设计网站的公司一. bootz启动Linux uboot 启动Linux内核使用bootz命令。当然还有其它的启动命令,例如,bootm命令等等。 本文只分析 bootz命令启动 Linux内核的过程。 本文具体分析 bootz启动 Linux内核过程涉及的一个重要的全局变量 images。 二. bootz 启动 Linux…

一.  bootz启动Linux

uboot 启动Linux内核使用bootz命令。当然还有其它的启动命令,例如,bootm命令等等。

本文只分析 bootz命令启动 Linux内核的过程。

本文具体分析 bootz启动 Linux内核过程涉及的一个重要的全局变量 images。

二.  bootz 启动 Linux 内核过程

1.  images 全局变量

不管是 bootz 还是 bootm 命令,在启动 Linux 内核的时候都会用到一个重要的全局变量:
images , images保存Linux内核镜像的信息。
images 在文件 cmd/bootm.c 中有如下定义:
bootm_headers_t images;		/* pointers to os/initrd/fdt images */
images bootm_headers_t 类型的全局变量, bootm_headers_t 是个 boot 头结构体,在文件
include/image.h 中的定义如下 ( 删除了一些条件编译代码 )
typedef struct bootm_headers {/** Legacy os image header, if it is a multi component image* then boot_get_ramdisk() and get_fdt() will attempt to get* data from second and third component accordingly.*/image_header_t	*legacy_hdr_os;		/* image header pointer */image_header_t	legacy_hdr_os_copy;	/* header copy */ulong		legacy_hdr_valid;
.......
#ifndef USE_HOSTCCimage_info_t	os;		/* os image info */ulong		ep;		/* entry point of OS */ulong		rd_start, rd_end;/* ramdisk start/end */char		*ft_addr;	/* flat dev tree address */ulong		ft_len;		/* length of flat device tree */ulong		initrd_start;ulong		initrd_end;ulong		cmdline_start;ulong		cmdline_end;bd_t		*kbd;
#endifint		verify;		/* getenv("verify")[0] != 'n' */#define	BOOTM_STATE_START	(0x00000001)
#define	BOOTM_STATE_FINDOS	(0x00000002)
#define	BOOTM_STATE_FINDOTHER	(0x00000004)
#define	BOOTM_STATE_LOADOS	(0x00000008)
#define	BOOTM_STATE_RAMDISK	(0x00000010)
#define	BOOTM_STATE_FDT		(0x00000020)
#define	BOOTM_STATE_OS_CMDLINE	(0x00000040)
#define	BOOTM_STATE_OS_BD_T	(0x00000080)
#define	BOOTM_STATE_OS_PREP	(0x00000100)
#define	BOOTM_STATE_OS_FAKE_GO	(0x00000200)	/* 'Almost' run the OS */
#define	BOOTM_STATE_OS_GO	(0x00000400)int		state;#ifdef CONFIG_LMBstruct lmb	lmb;		/* for memory mgmt */
#endif
} bootm_headers_t;

12 行的 os 成员变量,是 image_info_t 类型的,为系统镜像信息。

成员变量 epLinx内核镜像存放的起始地址。

29~39 行这些宏, 表示 BOOT 的不同阶段。

接下来看一下结构体 image_info_t ,也就是系统镜像信息结构体,此结构体在文件 include/image.h 中的定义如下:
typedef struct image_info {ulong		start, end;		/* start/end of blob */ulong		image_start, image_len; /* start of image within blob, len of image */ulong		load;			/* load addr for the image */uint8_t		comp, type, os;		/* compression, type of image, os type */uint8_t		arch;			/* CPU architecture */
} image_info_t;

全局变量 images 会在 bootz 命令的执行中频繁使用到,相当于 Linux 内核启动的“灵魂”。

http://www.yayakq.cn/news/727848/

相关文章:

  • 国内做网站哪家好什么是论坛推广
  • 制作公司网站的步骤上海建站宝盒
  • 产品商城网站建设wordpress转移至typecho
  • 湖北企业网站建设徐州市网站建设
  • 北京网站设计优刻wordpress还是帝国cms对比
  • 网站栏目做树形结构图河北省建设工程信息网招标公告
  • 一个域名做多个网站公司网页制作哪家比较好
  • 关于申请网站建设的报告珠海网站开发定制
  • 网站不要了该如何处理网站后台上传图片显示运行错误为什么
  • 建设网站需要大学动漫制作专业就业自我介绍
  • 哪个网站做任务可以赚钱站长工具seo综合查询引流
  • 网站开发者的设计构想上海网站建设上海
  • 有的网站用流量打不开商业街网站建设方案
  • 网站素材模板旅游WordPress排版美化
  • 做盗版音乐网站有哪些好的响应式网站
  • 深圳建网站服务商这个网站做海外推广
  • 购物商城类网站备案网站代码怎么改
  • 音乐网站的音乐怎么做jsp网站 值班
  • 网站怎么做seo排名上海网络营销软件
  • 网站搭建合同范本小米商城网站建设分析
  • 部门网站建设自查报告网站建设开票项目是什么意思
  • 微网站内容页模板电子毕业设计代做网站
  • 建设网站时seo标题郑州网络公司推荐
  • 网站建设报价分析wordpress 无法粘贴
  • 网站seo啥意思怎么做辽宁建设工程信息网审核
  • 保定网站排名优化网站域名实名证明
  • 网站信息安全建设方案私人承接软件开发定制
  • 网站开发任务清单房地产网站设计
  • 昆明网站建设费用青岛正一品网站建设
  • 深圳做网站建设开发网站开发公司怎么做账