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

Linux内核源码分析 (B.x)Linux页表的映射

Linux内核源码分析 (B.x)Linux页表的映射

文章目录

  • Linux内核源码分析 (B.x)Linux页表的映射
  • 一、ARM32页表
    • 1、页表术语
    • 2、虚拟地址到物理地址转换
    • 3、一级页表项
    • 4、二级页表项
  • 二、ARM64页表
    • 1、ARMv8-A架构
    • 2、4KB大小页+4级映射
  • 三、Linux内核中关于页表的函数和宏
    • 1、查询页表
    • 2、判断页表项的状态
    • 3、修改页表
  • 四、研究实例
  • 五、ARM32页表和Linux页表解惑
    • 1、ARM32页表和Linux页表
    • 2、ARM32的PTE页表项和Linux页表不一样
  • 六、其他实例问题

一、ARM32页表

1、页表术语

在这里插入图片描述

  • 在Linux内核源码中会用到PDG、PUD、PMF和PT等简称,但在ARM芯片手册上会使用L1、L2、L3等术语

2、虚拟地址到物理地址转换

在这里插入图片描述

  • 针对两级级页表而言,这里的L1索引和L2索引分别对应于PGD(全局目录)和PT(页表项)
  • ARM32中的一级页表项和二级页表项大小均为4个字节

3、一级页表项

在这里插入图片描述

  • 如果只需要支持超级大段和段映射,那么只需要一级页表即可。如果要支持4KB页面或64KB大页映射,那么需要用到二级页表。不同大小的映射,一级或二级页表中的页表项的内容也不一样
    在这里插入图片描述
    • 00:缺页,虚拟存储空间没有被映射到物理存储空间,因而访问该存储空间将产生缺页异常。
    • 01:包含了粗粒度的二级页表的物理地址,它可以实现以大页和小页为单位的地址映射
    • 10:段描述符(Section Descriptor),段描述符定义了对应的 1MB 的虚拟存储空间的地址映射关系
    • 11:包含了细粒度的二级页表的物理地址
  • 关于段映射,更多请看,其实段映射跟页表映射的流程是差不多的,博客里面的段内偏移地址可以类比于页表中的VPO(Virtual Page Offset),下面展示别的博客里的图。
    在这里插入图片描述

4、二级页表项

在这里插入图片描述

二、ARM64页表

1、ARMv8-A架构

在这里插入图片描述

  • 为什么不是64根地址线?
    • 因为48根地址线就已经足够了(2^48=256T),再增加地址线只会增加系统的复杂度

2、4KB大小页+4级映射

在这里插入图片描述

三、Linux内核中关于页表的函数和宏

1、查询页表

在这里插入图片描述

2、判断页表项的状态

在这里插入图片描述

3、修改页表

在这里插入图片描述

四、研究实例

在这里插入图片描述在这里插入图片描述

  • special mapping:特殊映射 Linux内核不希望页面参与页面管理的活动中

  • pgd指向第一级页表(页全局目录)的基址。

在这里插入图片描述- ARM32不是只有两级页表吗,为什么要需要遍历这么多?

在这里插入图片描述

在这里插入图片描述

  • ARM32的二级页表没有用到PTE_SPECIAL标志位,而ARM64的三级页表中用到了。

五、ARM32页表和Linux页表解惑

1、ARM32页表和Linux页表

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 实现了两套平行页表
    • HW(HardWare)页表 ,属于ARM32架构的页表
    • SW(SoftWare)页表,属于Linux内核的页表

在这里插入图片描述

2、ARM32的PTE页表项和Linux页表不一样

在这里插入图片描述

  • 缺页中断和页面回收的时候会讲

六、其他实例问题

在这里插入图片描述
在这里插入图片描述

相关文章:

Linux内核源码分析 (B.x)Linux页表的映射

Linux内核源码分析 (B.x)Linux页表的映射 文章目录 Linux内核源码分析 (B.x)Linux页表的映射一、ARM32页表1、页表术语2、虚拟地址到物理地址转换3、一级页表项4、二级页表项 二、ARM64页表1、ARMv8-A架构2、4KB大小页4级映射 三、Linux内核中关于页表的函数和宏1、查询页表2、…...

机器学习(15)---代价函数、损失函数和目标函数详解

文章目录 一、各自定义二、各自详解三、代价函数和损失函数区别四、例题理解 一、各自定义 1. 代价函数:代价函数(Cost Function)是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。它用于衡量模型在…...

计算机专业大学规划之双非

​ 亲爱的计算机专业大一学弟学妹们,欢迎来到充满挑战和机遇的大学校园!在经历了小半年的大学生活后,是否会对自己的未来感到一些迷茫,借着前几天给我大一的妹妹聊天的机会,我想发表一下关于我的建议(仅限个…...

2.策略模式

UML图 代码 main.cpp #include "Strategy.h" #include "Context.h"void test() {Context* pContext nullptr;/* StrategyA */pContext new Context(new StrategyA());pContext->contextInterface();/* StrategyB */pContext new Context(new Strat…...

算法通过村第七关-树(递归/二叉树遍历)黄金笔记|迭代遍历

文章目录 前言1. 迭代法实现前序遍历2. 迭代法实现中序遍历3. 迭代法实现后序遍历总结 前言 提示:在一个信息爆炸却多半无用的世界,清晰的见解就成了一种力量。 --尤瓦尔赫拉利《今日简史》 你是不是觉得上一关特别简单,代码少,背…...

MySQL数据库简介+库表管理操作+数据库用户管理

Mysql Part 1 一、数据库的基本概念1.1 使用数据库的必要性1.2 数据库基本概念1.2.1 数据(Data)1.2.2 表1.2.3 数据库1.2.4 数据库管理系统(DBMS)1.2.5 数据库系统 1.3 数据库的分类1.3.1 关系数据库 SQL1.3.2 非关系数据库 NoSQL…...

PyTorch实战:卷积神经网络详解+Python实现卷积神经网络Cifar10彩色图片分类

目录 前言 一、卷积神经网络概述 二、卷积神经网络特点 卷积运算 单通道,二维卷积运算示例 单通道,二维,带偏置的卷积示例 带填充的单通道,二维卷积运算示例 Valid卷积 Same卷积 多通道卷积计算 1.局部感知域 2.参数共…...

MapRdeuce工作原理

hadoop - (三)通俗易懂地理解MapReduce的工作原理 - 个人文章 - SegmentFault 思否 MapReduce架构 MapReduce执行过程 Map和Reduce工作流程 (input) ->map-> ->combine-> ->reduce-> (output) Map: Reduce...

完整指南:使用JavaScript从零开始构建中国象棋游戏

引言 中国象棋,又被称为国际象棋,是一款起源于中国的古老棋类游戏。本文旨在为大家提供一个简单明了的步骤,教你如何使用JavaScript从零开始构建这款经典的棋类游戏。 1. 游戏简介 在中国象棋中,两方各有一军队,包括…...

PG-DBA培训19:PostgreSQL高可用集群项目实战之Patroni

一、风哥PG-DBA培训19:PostgreSQL高可用集群项目实战之Patroni 课程目标: 本课程由风哥发布的基于PostgreSQL数据库的系列课程,本课程属于PostgreSQL主从复制与高可用集群阶段之PostgreSQL高可用集群项目实战之Patroni,学完本课…...

数据库管理-第105期 安装Database Valut组件(20230919)

数据库管理-第105期 安装Database Valut组件(20230919) 之前无论是是EXPDP还是PDB中遇到的一些问题,其实都跟数据库的DV(Database Valut)组件有关,因为目标库没有安装DV导致启动时会出现问题。 1 DV/OLS …...

企望制造ERP系统RCE漏洞 复现

文章目录 企望制造ERP系统RCE漏洞 复现0x01 前言0x02 漏洞描述0x03 影响平台0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 企望制造ERP系统RCE漏洞 复现 0x01 前言 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播…...

【unity小技巧】Unity 存储存档保存——PlayerPrefs、JsonUtility和MySQL数据库的使用

文章目录 前言PlayerPrefs一、基本介绍二、Demo三、优缺点 JsonUtility一、基本使用二、Demo三、优缺点 Mysql(扩展)完结 前言 游戏存档不言而喻,是游戏设计中的重要元素,可以提高游戏的可玩性,为玩家提供更多的自由和…...

2023-9-22 滑雪

题目链接&#xff1a;滑雪 #include <cstring> #include <algorithm> #include <iostream>using namespace std;const int N 310;int n, m; int h[N][N]; int f[N][N];int dx[4] {-1, 0, 1, 0}, dy[4] {0, 1, 0, -1};int dp(int x, int y) {int &v f…...

基于Yolov8的工业小目标缺陷检测(6):多检测头结合小缺陷到大缺陷一网打尽的轻量级目标检测器GiraffeDet,暴力提升工业小目标缺陷检测能力

💡💡💡本文改进:多头检测器结合大小缺陷一网打尽的GiraffeDet,进一步提升处理低分辨率图像和小物体等更困难的检测能力。 多头检测器+ GiraffeDet | 亲测在工业小目标缺陷涨点明显,原始mAP@0.5 0.679提升至0.734 收录专栏: 💡💡💡深度学习工业缺陷检测 :h…...

exe文件运行后无输出直接闪退如何找解决办法

一.搜索栏搜事件查看器 二.点开windows日志下的应用程序 三.找到错误处 四.搜索异常代码 点开有错误的详细信息&#xff0c;直接用搜索引擎搜索这个异常代码能大致判断是什么问题&#xff0c;给了一个解决思路&#xff0c;不至于不知道到底哪里出了问题...

OpenHarmony应用开发—ArkUI组件集合

介绍 本示例为ArkUI中组件、通用、动画、全局方法的集合。 效果预览 使用说明&#xff1a; 1.点击组件、通用、动画、全局方法四个按钮或左右滑动切换不同视图。 2.点击二级导航&#xff08;如通用属性、通用事件等&#xff09;&#xff0c;若存在三级导航则展开三级导航&#…...

Linux(CentOS)安装msf

目录 一、安装MSF 1.1 在线安装 1.2 离线安装 二、安装Postgresql数据库 一、安装MSF 1.1 在线安装 需要挂梯子&#xff01;挂完梯子需要reboot重启&#xff0c;多试几次就可以&#xff0c;国内网络我试了很久都不行。没条件没梯子的看1.2离线安装 cd /opt curl https://ra…...

工作几年还是悟不懂自动化测试的意义

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程&#xff0c;刷完面试就稳了&#xff0c;你也可以当高薪软件测试工程师&#xff08;自动化测试&#xff09; 有人问&#xff1a;自动化测试的成本高效果差&#xff0c;那么自动化测试的意义在哪呢&#xff1f; 我…...

Redis面试问题三什么是缓存雪崩怎么解决

定义 缓存雪崩是因为大量的key设置了同一过期时间的导致在同一时间类缓存同时过期&#xff0c;而这时因为请求过来已经没有缓存了&#xff0c;DB压力大数据库崩溃了。 解决方法 我可以在设置过期时间的时候加一个随机时间&#xff0c;在1-5分钟那样可以分散过期时间&#xf…...

【Unittest】自动化测试框架核心要素

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程&#xff0c;刷完面试就稳了&#xff0c;你也可以当高薪软件测试工程师&#xff08;自动化测试&#xff09; 1、什么是Unittest框架&#xff1f; python自带一种单元测试框架 2、为什么使用UnitTest框架&#xff1…...

Hyperloglog

一&#xff0c;前言 在互联网行业中存在两个比较重要的指标&#xff1a;PV&#xff08;页面访问量&#xff09;和 UV&#xff08;用户访问量&#xff09; 如果有这样的一个业务&#xff1a; 统计PV&#xff0c;那么你会怎么做&#xff1f; 我们可以使用Redis的incr、incrby指…...

如何自动获取短信验证码?

点击下方关注我&#xff0c;然后右上角点击...“设为星标”&#xff0c;就能第一时间收到更新推送啦~~~ 这篇文章通过解决实际项目开发中遇到的如何自动获取短信验证码的问题&#xff0c;进一步讲述在Java中如何使用正则。 Java中如何使用正则 Java中正则相关类位于java.util.r…...

Linux 本地 Docker Registry本地镜像仓库远程连接【内网穿透】

Linux 本地 Docker Registry本地镜像仓库远程连接 文章目录 Linux 本地 Docker Registry本地镜像仓库远程连接1. 部署Docker Registry2. 本地测试推送镜像3. Linux 安装cpolar4. 配置Docker Registry公网访问地址5. 公网远程推送Docker Registry6. 固定Docker Registry公网地址…...

基于Yolov8的工业小目标缺陷检测(4):SPD-Conv,低分辨率图像和小物体涨点明显

💡💡💡本文改进:SPD-Conv,处理低分辨率图像和小物体等更困难的任务时效果明显。 SPD-Conv | 亲测在工业小目标缺陷涨点明显,原始mAP@0.5 0.679提升至0.775 收录专栏: 💡💡💡深度学习工业缺陷检测 :http://t.csdn.cn/fVSgs ✨✨✨提供工业缺陷检测性能提升…...

平均精度(AP)

什么是平均精度(AP) 平均精度 (AP)并不是精度 (P)的平均值。 平均精度 (AP) 是按类别计算的。 mAP&#xff08;mean average precision&#xff09;是一个平均值&#xff0c;常用作目标检测中的检测精度指标mAP 指标通过对于一个平均目标来检测任务中多个目标所对应不同 AP&a…...

建议收藏《Verilog代码规范笔记_华为》(附下载)

华为verilog编程规范是坊间流传出来华为内部的资料&#xff0c;其贴合实际工作需要&#xff0c;是非常宝贵的资料&#xff0c;希望大家善存。至于其介绍&#xff0c;在此不再赘述&#xff0c;大家可看下图详细了解&#xff0c;感兴趣的可私信领取《Verilog代码规范笔记_华为》。…...

Nginx环境搭建、负载均衡测试

Nginx环境搭建、负载均衡测试 系统环境&#xff1a; win10&#xff0c;IDEA2020&#xff0c;JDK8 一、nginx环境搭建 1.ngxin下载 Nginx官网下载&#xff1a; http://nginx.org/en/download.html Nginx有三种版本&#xff0c;分别是Mainline version&#xff08;开发版&…...

软件工程知识总结梳理

&#x1f525;&#x1f525;宏夏Coding网站&#xff0c;致力于为编程学习者、互联网求职者提供最需要的内容&#xff01;网站内容包括求职秘籍&#xff0c;葵花宝典&#xff08;学习笔记&#xff09;&#xff0c;资源推荐等内容。在线阅读&#xff1a;https://hongxiac.com&…...

Mybatis自动映射Java对象 与 MySQL8后的JSON数据

文章目录 Mybatis自动映射Java对象 与 MySQL8后的JSON数据1.转化成为正常Json类型1.1 JsonTypeHander1.2 ListJsonTypeHandler 负责List<T> 类型1.3 实体类1.4 mapper1.5 测试类 2. 存储为携带类型的Json Mybatis自动映射Java对象 与 MySQL8后的JSON数据 1.转化成为正常…...

兰州做网站/未来网络营销的发展趋势

Redis 作为一个非关系型内存数据库&#xff0c;也有事务定义 1. 事务的定义-ACID特性 A表示原子性&#xff1a;即事务是一个不可分割的实体&#xff0c;事务中的操作要么都完成&#xff0c;要么都不完成 C表示一致性&#xff1a;即事务前后数据完整性必须一致&#xff0c;假…...

郑州网站托管公司/网站设计的流程

http://www.liangjing.org/qiyejianzhan/Ch/Net_Index.html http://www.phpweb.net/index.php转载于:https://www.cnblogs.com/liulf/archive/2011/04/01/2002745.html...

初级买题做哪个网站好/建网站公司哪里好

用ifconfig -a来查看正确的网卡名 # 手工指定的方式################################ # ipconfig fxp0 192.168.8.33/24 # 添加网卡ip# route add default 192.168.8.1 # 添加路由&#xff08;也可理解为网关&#xff09;立即生效&#xff0c;但是重启后失效。 #重新启…...

如何做网站的下载的二维码/谷歌搜索引擎

查看thinkphp版本号方法php打开文件“根目录\ThinkPHP\ThinkPHP.php”下的文件ThinkPHP.php&#xff0c;在22--23行能够看到版本信息THINK_VERSION,以下图&#xff1a;css说明&#xff1a;此方法不破坏原有的Thinkphp框架&#xff0c;对之后框架升级没影响&#xff0c;而且能够…...

今天国内重大新闻事件/重庆seo搜索引擎优化优与略

一、数据与文字的表示方法 (1) 数据格式 &#xff08;1&#xff09; 定点数的表示方法 假设用一个 n&#xff0b;1 位的字来表示一个定点数 x&#xff0c;xn 放在最左位置&#xff0c;并用数值 0 和 1 分别代表正号和负号&#xff0c;其余位数代表它的量值&#xff0c;小数点…...

国外室内设计案例网站/软文营销的三个层面

无论在何时&#xff0c;一个企业若想获得长久发展&#xff0c;就必须高度重视客户关系管理工作。而在互联网大潮的来袭下&#xff0c;企业必须高度重视现代客户关系管理方式。CRM作为一款专业客户关系管理系统&#xff0c;为企业提供专业的客户关系管理解决方案&#xff0c;帮助…...