详解Linux内核定义的常量.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【Word版本下载可任意编辑】 PAGE 1 - / NUMPAGES 1 详解Linux内核定义的常量 引言 操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“”。Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。今天我们要了解的是Linux内核定义的常量。希望能给大家带来帮助。 1 初始定义 定义了你的机器上的地址转换__virt_to_phys()。这个宏用于把虚拟地址转换为一个物理地址。通常情况下:phys = virt - PAGE_OFFSET PHYS_OFFSET 2 解压缩符号 l ZTEXTADDR 解压缩器的地址地址。由于当你调用解压缩器代码时,通常关闭MMU,因此这里并不讨论虚拟地址和物理地址的问题。通常你在这个地址处调用内核,开始引导内核。它不需要在RAM中,只需要位于FLASH或其他只读或读/写的可寻址的存储设备中。 l ZBSSADDR 解压缩器的初始化为0的工作区的起始地址。必须位于RAM中,解压缩器会替你把它初始化为0,此外,需要关闭MMU。 l ZRELADDR 解压缩内核将被写入的地址和终的执行地址。必须满足: __virt_to_phys(TEXTADDR) == ZRELADDR 内核的开始部分被编码为与位置无关的代码。 l INITRD_PHYS 放置初始RAM盘的物理地址。仅当你使用bootpImage时相关(这是一种非常老的param_struct构造) l INITRD_VIRT 初始RAM盘的虚拟地址。必须满足: __virt_to_phys(INITRD_VIRT) == INITRD_PHYS l PARAMS_PHYS param_struct 构造体或tag lis的物理地址,用于给定内核执行环境下的不同参数。 3 内核符号 l PHYS_OFFSET RAM个BANK的物理地址地址。 l PAGE_OFFSET RAM个BANK的虚拟地址地址。在内核引导阶段,虚拟地址PAGE_OFFSE将被映射为物理地址PHYS_OFFSET,它应该与TASK_SIZE具有相同的值。 l TASK_SIZE 一个用户进程的值,单位为byte。用户空间的堆栈从这个地址处向下增长。 任何一个低于TASK_SIZE的虚拟地址对用户进程来说都是不可见的,因此,内核通过进程偏移对每个开展开展动态的管理。我把这叫做用户段。任何高于TASK_SIZE的对所有进程都是相同的,称之为内核段。(换句话说,你不能把IO映射放在低于TASK_SIZE和PAGE_OFFSET的位置处。) l TEXTADDR 内核的虚拟起始地址,通常为PAGE_OFFSET 0x8000。内核映射必须在此结束。 l DATAADDR 内核数据段的虚拟地址,不能在使用解压缩器的情况下定义。 l VMALLOC_START l VMALLOC_END 用于限制vmalloc( )区域的虚拟地址。此地址必须位于内核段。 通常,vmalloc( )区域在的虚拟RAM地址以上开始VMALLOC_OFFSET字节。 l VMALLOC_OFFSET Offset normally incorporated into VMALLOC_START to provide a hole between virtual RAM and the vmalloc area. We do this to allow out of bounds memory accesses (eg, something writing off the end of the mapped memory map) to be caught. Normally set to 8MB. 4 构架相关的宏 l BOOT_MEM(pram,pio,vio) pram—

文档评论(0)

183****3081 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档