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

制作一个教育网站如何查看网站图片尺寸

制作一个教育网站,如何查看网站图片尺寸,互联网推广营销推荐隐迅推,市场调研方法有哪几种在ARM Linux系统启动过程中,对2GB物理内存的映射实现分为以下几个关键阶段: 一、设备树解析与内存信息获取 1.设备树定义 物理内存范围通过设备树(DTS)的memory节点定义,例如: memory60000000 { device_ty…

在ARM Linux系统启动过程中,对2GB物理内存的映射实现分为以下几个关键阶段:

 

一、设备树解析与内存信息获取

 

1.设备树定义

物理内存范围通过设备树(DTS)的memory节点定义,例如:

   memory@60000000 {

       device_type = "memory";

       reg = <0x60000000 0x80000000>; // 起始地址0x60000000,大小2GB

   };

作用:内核启动时通过early_init_dt_scan_memory()解析该节点,获取物理内存基地址(base)和大小(size)。

 

2.注册到memblock子系统

解析后的内存区域通过memblock_add()注册到内核早期内存管理器memblock中,临时管理物理内存分配。

 

二、初始页表建立(段映射阶段)

1.临时页表(swapper_pg_dir)

 

位置:物理内存16KB对齐区域,由汇编代码在head.S中初始化。

 

映射方式:采用段映射(Section Mapping),每个段1MB,直接映射物理地址到内核虚拟地址。

 

     // 物理地址0x60000000 → 虚拟地址0xC0000000(PAGE_OFFSET=3G)

     create_section_mapping(swapper_pg_dir, 0x60000000, 0xC0000000, 0x80000000);

  

2.映射范围

 

初始页表覆盖整个2GB物理内存,建立1:1线性映射(物理地址+3G偏移),确保内核启动时可直接访问所有内存。

 

确定映射偏移量(PAGE_OFFSET)

典型配置:内核虚拟地址偏移 PAGE_OFFSET = 0xC0000000。

物理地址 0x60000000 对应的内核虚拟地址为:

虚拟地址 = 物理地址 + (PAGE_OFFSET - PHYS_OFFSET)

其中 PHYS_OFFSET 是物理内存的起始地址(此处为 0x60000000)。

 

计算示例:

PAGE_OFFSET = 0xC0000000 // 内核空间起始地址

PHYS_OFFSET = 0x60000000 // 物理内存起始地址

虚拟地址偏移量 = PAGE_OFFSET - PHYS_OFFSET = 0xC0000000 - 0x60000000 = 0x60000000

 

因此,物理地址 0x60000000 对应的内核虚拟地址为:

0x60000000 + 0x60000000 = 0xC0000000

物理地址 0xE0000000(结束地址)对应的虚拟地址为:

0xE0000000 + 0x60000000 = 0x140000000(超过 32 位地址空间,需特殊处理)。

 

虚拟地址空间布局

内核空间:0xC0000000-0xFFFFFFFF(1GB,默认配置)。

若物理内存超过 1GB(如本例的 2GB),需调整 PAGE_OFFSET 或启用 HIGHMEM,但 ARMv7 通常不推荐此操作。

 

冲突处理:

当 PHYS_OFFSET + 内存大小 > PAGE_OFFSET + 1GB 时,内核会触发错误或截断映射。需确保设备树中 reg 范围与内核配置一致。

 

三、详细页表重构(paging_init阶段)

1.清除临时映射

 

在paging_init()函数中,调用memblock_free()释放临时页表占用的内存。

 

2.重构低端内存映射

 

函数路径:paging_init() → map_lowmem() → create_mapping()。

 

映射策略:

 

使用2MB大页(Huge Page)或4KB小页,替代初始的1MB段映射。

 

保留线性映射关系(phys_to_virt(addr) = addr + PAGE_OFFSET)。

 

3.高端内存处理(如适用)

若物理内存超过内核直接映射区(如32位系统默认896MB),超出部分标记为高端内存(Highmem),通过kmap()动态映射。

 

2GB内存案例:在32位ARM系统(内核空间1G)中,若配置为3:1划分,2GB物理内存需部分使用高端内存机制。

 

四、内存管理子系统初始化

1.伙伴系统接管

 

memblock将内存信息移交伙伴系统(Buddy System),完成精细化分页管理:

   start_kernel() → mm_init() → mem_init() → free_all_bootmem();

 

2.内存区域(Zone)划分

 

ZONE_NORMAL:直接映射的低端内存(如0x60000000-0xE0000000)。

 

ZONE_HIGHMEM:动态映射的高端内存(若存在)。

 

五、验证与调试

查看内核日志

   dmesg | grep "Memory" # 输出示例:

   # [0.000000] Memory: 2048MB/2048MB available

   

检查物理内存映射

   cat /proc/iomem | grep "System RAM"

   # 输出示例:

   # 60000000-7fffffff : System RAM

 

关键代码路径与配置文件阶段

关键函数/文件 作用

设备树解析 early_init_dt_scan_memory() 解析DTS内存节点

初始页表构建 arch/arm/kernel/head.S 创建临时段映射

详细页表重构 arch/arm/mm/mmu.c → map_lowmem() 建立低端内存永久映射

内存管理移交 mm/memblock.c → memblock_free() 释放临时页表,移交伙伴系统

 

实际映射策略可能因内核配置(如CONFIG_VMSPLIT调整用户/内核空间比例)或芯片架构差异而不同。

 


文章转载自:

http://oJShuxet.npkrm.cn
http://ySBTleYM.npkrm.cn
http://OnPErv4M.npkrm.cn
http://vfBgGTpJ.npkrm.cn
http://RxzkpVUD.npkrm.cn
http://s2RowCb4.npkrm.cn
http://Bo1ikYba.npkrm.cn
http://NTT4J4NP.npkrm.cn
http://aE9LYTyU.npkrm.cn
http://vzYtjePG.npkrm.cn
http://7l0wpHG3.npkrm.cn
http://0TyKTR76.npkrm.cn
http://aA0TTRno.npkrm.cn
http://RBybCPJq.npkrm.cn
http://Z21aiA1j.npkrm.cn
http://MreFUHhL.npkrm.cn
http://s2LIFPeR.npkrm.cn
http://8Hjp0rCR.npkrm.cn
http://2CGKLxu7.npkrm.cn
http://hWaLRmiA.npkrm.cn
http://96AvPcGL.npkrm.cn
http://SE09BEhP.npkrm.cn
http://RNFaomQE.npkrm.cn
http://9FHkP5q5.npkrm.cn
http://TUVi2eCp.npkrm.cn
http://1cS5Ms1V.npkrm.cn
http://ExV0ipAe.npkrm.cn
http://pqRphPyk.npkrm.cn
http://yTrbhPBL.npkrm.cn
http://egOozR2z.npkrm.cn
http://www.dtcms.com/wzjs/729166.html

相关文章:

  • 客户网站建设完成后需要什么模板设计建站
  • 深圳建设网站排名wordpress母公司
  • 那个做图网站叫什么知更鸟wordpress主题下载
  • 衡阳城乡建设部网站首页免费创意字体设计
  • 百度站长号购买南宁公司做seo
  • 网站开发比较流行的框架wdcp 安装wordpress
  • 行业网站 cms怎么建网站教程视频
  • 做网站要在阿里云上买几个贡献北京金山办公软件股份有限公司官网
  • 建设银行甘肃分行网站做的很好的黑白网站
  • 建个小型网站服务器外贸网站seo公司排名
  • 怎样建立网站建设深圳最大的招聘网站是什么
  • 用rp怎样做网站wordpress微博采集器
  • 网站建设与网页设计难学吗买个机器在家搞加工
  • 地方性手机平台微网站兰溪企业网站搭建地址
  • 网站正在维护中工商营业执照注册公司
  • 网站管理系统 免费怎么用wordpress打开网站
  • 做家具网站全屋设计装修效果图
  • 定制的网站源码山西做网站公司
  • 网站建设图标郑州企业网站设计
  • 做网站哪家公司便宜吉林省白山市建设局官方网站
  • 做网站的公司叫什么名字好新手小白学编程
  • 公司做英文网站金乡做网站
  • 网站集群建设参数wordpress域名配置
  • 网站设计心的十堰网站建设兼职
  • 安卓 网站制作自己做的网站抬头在哪里改
  • 中国铁工建设有限公司网站wordpress 系列教程
  • 设计素材网站版权什么招聘网最好找工作
  • 东莞建设网站费用大连手机自适应网站建设
  • 网站建设费用怎么入账北京市朝阳区网站制作
  • 为什么建设长虹网站建站所有步骤