文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档> 内核中的符号

内核中的符号

时间:2006-09-02  来源:jiok

                         内核中的符号
得到这个文档从http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2001-July/004064.html
初始定义
----------
下面的符号定义依赖于你对__virt_to_phys()在你机器上的转化,这个宏转化虚拟地址到物理地
址,这是简单的:phys = virt - PAGE_OFFSET + PHYS_OFFSET
ZTEXTADDR 压缩文件的开始地址,这里没有必要来谈论虚拟和物理地址,因为在这里MMU会关闭
当你调用压缩代码.你从这个地址调用内核去启动.这不一定是在RAM中,也可以是FLASH、其它的
ZBSSADDR 压缩文件的0初始化区域开始地址,这个必须指向RAM,MMU是关闭的. ZRELADDR 这是压缩内核将被写甚至是执行的地址,下面的约束一定是有效的.
          __virt_to_phys(TEXTADDR) == ZRELADDR
        内核初始化部分的位置被小心的编码.
INITRD_PHYS 初始化RAM的物理地址.仅仅与你使用的BOOTIMAGE去填充相关.(这只是工作在老的
             param_struct上).
INITRD_VIRT  初始化RAM的虚拟地址.下面的约束一定是有效的.
             __virt_to_phys(INITRD_VIRT) == INITRD_PHYS
PARAMS_PHYS  param_struct or 标签列表的物理地址,得到内核的变量参数关于它的执行环境.   KERNEL SYMBOLS//内核中的符号
--------------------
PHYS_OFFSET  第一个RAM块的开始地址.
PAGE_OFFSET  第一个RAM块的开始的虚拟地址.当内核启动阶段,这个地址会被映象到              PHYS_OFFSET上,附上其它的你提供的映象.对于TASK_SIZE的值是相同的. TASK_SIZE     用户进程的最大的大小(字节).由于用户空间常常从0开始,用户进程的最空间
              是能访问的地址+1.用的堆栈从这个地址向下长.
              任何在TASK_SIZE下的虚拟地址都被认为是用户空间,因此动态的管理.我叫这
              是用户段.
              在TASK_SIZE上的是共用的对所有的进程,我叫这是内核段.
              (换句话说,你不能把IO映象到TASK_SIZE以下,和PAGE_OFFSET之前).
TEXTADDR      内核的开始的虚拟地址,一般为PAGE_OFFSET+0X8000.这是内核映象的结束点,
              随着内核的发展,这里定位32768(字节)至128M的区域,以前的内核放置受到256M
              的约束.
DATAADDR     内核数据段的虚拟地址.当使用压缩内核是禁止定义. VMALLOC_START
VMALLOC_END  虚拟的vmalloc()地址的范围,禁止任何静态的映象到这个区域.vmalloc将覆盖它             们.这个地址也必须在内核段中.
VMALLOC_OFFSET  一般设置为8M. Architecture Specific Macros//具体体系结构的宏.
----------------------------
BOOT_MEM(pram,pio,vio)
          pram指定RAM开始地址(物理地址),必须描述,并且与PHYS_OFFSET相同.
          pio是包含IO的8M区域的物理地址,arch/arm/kernel/debug-armv.S.
          vio不一个8M DEBUG区域的虚拟地址.
          debug区域将被重新寝初始化被随后的具体体系结构的代码.
BOOT_PARAMS
          与PARAMS_PHYS一样.
FIXUP(func)具体机器修正,在内存子系统初始化之前运行. INITIRQ(func) 初始化中断的具体机器函数.
相关阅读 更多 +
排行榜 更多 +
机械火车修理

机械火车修理

休闲益智 下载
坚持到顶

坚持到顶

休闲益智 下载
掷球冠军

掷球冠军

休闲益智 下载