【深入理解Linux内核】【分页】相关函数或宏

2023-11-13

PAGE_SHIFT PMD_SHIFT PUDSHIFT PGDIR_SHIFT
指定offset字段位数 指定offset和table总位数 确定页上级目录能够映射的区域大小 确定页全局目录能够映射的区域大小


PTRS_PER_PTE,PTRS_PER_PMD,PTRS_PER_PUD,PTRS_PER_PGD:分别表示页表,页中间目录,页上级目录,页全局目录中项的个数。

1.几个用于页表处理的函数或宏

  • 五个类型转换宏:__pte、__pmd、__pud、__pgprot。分别把无符号数转换为相应的类型。

  • pte_non,pmd_none,pud_none,pgd_none用于判断相应表项值是否为0,为0返回1,否则返回0。

  • set_pte,set_pud,set_pmd,set_pgd 分别表示向一个表项中写入相应值。

2.对页表项进行操作的宏

  • pgd_index(addr):找到线性地址addr对应的目录项在页全局表中的索引。

  • pgt_offset(mm,addr):接收内存描述符地址mm和addr作为参数,可以求得线性地址addr在全局目录表中对应表项的线性地址,通过mm中的一个指针可以找到全局目录表。

  • pgd_offset_k(addr):产生内核全局目录表项中某一项的线性地址

  • pgd_page(pgd):通过页全局目录表pg产生页上级目录所在页框的页描述符地址。在两级或者三级分页中等价于pud_page.后者通过页上级目录产生页中级目录的线性地址

  • pud_offset(pgd,addr):通过参数页全局目录表项指针pgd和线性地址产生页上级目录中目录项addr对应的线性地址。

  • pmd_index(addr):产生addr对应的页中间目录对应目录项的的索引。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【深入理解Linux内核】【分页】相关函数或宏 的相关文章

  • LeetCode第45题解析

    给定一个非负整数数组 你最初位于数组的第一个位置 数组中的每个元素代表你在该位置可以跳跃的最大长度 你的目标是使用最少的跳跃次数到达数组的最后一个位置 示例 输入 2 3 1 1 4 输出 2 解释 跳到最后一个位置的最小跳跃数是 2 从下
  • [Java基础系列第2弹]泛型:一种提高代码复用性和灵活性的技术

    一 什么是泛型 泛型 Generics 是一种编程技术 它可以让我们在定义类 接口或方法时 使用一个或多个类型参数 Type Parameter 而不是具体的类型 这样 我们就可以在实例化或调用时 根据需要指定具体的类型 从而实现代码的复用
  • Snipaste使用手册

    功能 截屏 贴图和做笔记 使用场景举例 1 双桌面 一个是学习视频 一个是代码编辑器 截取学习视频的代码图片贴到桌面上 边看边在编辑器中敲代码 2 获取像素颜色值 3 在截屏上做笔记 and so on 常用快捷键 自定义快捷键 F1 截屏
  • CentOS 静态IP分配,提示Error, some other host already uses address解决办法

    CentOS 静态IP分配 提示Error some other host already uses address解决办法 一 第一 修改 ifup ethvi etc sysconfig network scripts ifup eth
  • 使用 Velero 备份还原 Kubernetes 集群

    Velero https velero io 可以提供备份和还原 Kubernetes 集群资源和持久卷的能力 你可以在公有云或本地搭建的私有云环境安装 Velero 可以为你提供以下能力 备份集群数据 并在集群故障的情况下进行还原 将集群
  • Nginx平滑升级记录

    因为扫描到了Nginx漏洞 所以需要对Nginx升级 同时不影响原来的nginx配置 旧版本为 nginx 1 18 0 扫描到3个漏洞 NGINX Controller 安全漏洞 CVE 2021 23017 nginx 内存损坏漏洞 C
  • models问题汇总

    1 在不卸载模块的情况下 删除model表 如想删除下表 第一步 先删除全部表属性 升级模块 第二步 再删除表及在ir model access csv中分配给ogsp phone表的权限 最后升级模块
  • Ant Design Pro从零到一(Mock使用)

    认识Mock 学到这里就算是开始踏入AntD的门 然后我们还得学习一下常用的一些操作 例如Mock 针对与Mock他大致就是用来模拟数据的 为什么会有它的出现呢 因为现在前后端开发基本是分离的 但是数据结构一般都会先定好 在日常开发中 为了
  • JavaScript在IE和Firefox下的兼容性问题

    一 问题1 获取一个元素对象的引用 在IE下 可直接使用该元素对象的id名 而在FireFox下 只能使用getElementById idName 方法 解决方法 统一用getElementById idName 问题2 获取表单元素的引
  • 你是否知道编程对孩子有多重要

    编程在大多数人的认知里都是程序员的工作 繁琐 工作强度大 理工科等 这些都是对于编程的标签 似乎与我们普通人的生活很远 你知道编程对孩子未来有多重要吗 格物斯坦小坦克来做分析 在未来编程将成为学生基础必备技能 普及程度和英语一样 我们对编程
  • jdbc手动控制事务

    在JavaBean数据库操作中 一项事务是指由一条或多条对数据库更新的sql语句所组成的一个不可分割的工作单元 只有当事务中的所有操作都正常完成了 整个事务才能被提交到数据库 如果有一项操作没有完成 就必须撤消整个事务 我们通过提交comm
  • 【MySQL】不就是多表查询综合练习

    前言 嗨咯大家好 我们学习完毕了多表查询 今天我们就要对我们所学的成果进行测验 本期主要是对多表查询相关内容的练习课程 可以先试着自己敲 遇到不会可以查看查考代码 目录 前言 目录 练习题 1 查询员工的姓名 年龄 职位 部门信息 隐式内连
  • 自学笔记-Python基础09--第三方库的概念及操作

    库 具有相关功能模块的集合 python的一大特色就是拥有强大的库 库可以分为三种 1 标准库 python自带的 无需安装直接使用 2 第三方库 由他人提供的 使用时需要先安装 3 自定义库 自己写的模块 自己用 标准库 想看python
  • react hooks 和 react-redux hooks 应用场景

    目前 Hooks 应该是 React 中最火的概念了 在阅读这篇文章之前 希望你已经了解了基本的 Hooks 是什么 下面就介绍一下简单的使用场景 react hooks useState useState是react自带的一个hook函数
  • 关于Spring的bean的相关注解以及其简单使用方法

    一 前置工作 第一步 创建一个maven项目 第二步 在resource中创建一个名字叫做spring config xml的文件 并把以下代码复制粘贴
  • 06——qt opengl 立方体 ebo 贴图

    qmyopenglwidget h ifndef QMYOPENGLWIDGET H define QMYOPENGLWIDGET H include
  • java中的泛型

    泛型 分为三种分别是泛型类 泛型方法 泛型接口 一 泛型类 直接在类名后面加上
  • 用C++流的方式读写文件

    一 代码 include
  • 【XSS漏洞-03】XSS漏洞语句构造和绕过方法实例

    目录 1 XSS语句构造方式 1 1 第一种 利用 lt gt 构造HTML JS语句 1 2 第二种 利用javascript 伪协议 1 3 第三种 事件驱动 1 4 第四种 利用CSS 层叠样式脚本 1 5 其他标签及手法 2 XSS

随机推荐

  • NFC模块方案,轻松实现NFC通讯

    一 主要特点 用户只需通过Uart串口控制就能实现NFC设备间数据传输 不需要了解NFC底层协议 迅速完成产品开发 二 支持平台 WinXP Win7 Win8 Win10 Linux Android 等等 三 NFC通讯控制模式 1 手机
  • decimal返回给前端是数字类型而不是字符串

    bigDecimal长度太长 返回给前端 精度会丢失 即后几位都会变成0 解决办法 给前端返回字符串类型 加注解 JsonSerialize using ToStringSerializer class 如果有些字段不要返回给前端呢 比如删
  • 循环神经网络学习笔记(基础篇)

    循环神经网络 RNN 基础篇学习笔记 一 权重共享 在CNN全连接层权重占比较多 在图像任务中 由于整个图像共享卷积核 所以实际参数量远远小于全连接层 在实际任务中 由于全连接层参数过多 我们需要使用RNN解决带有序列模式的数据 同时利用权
  • 各种排序方法的比较

    各种排序方法的比较 排序方法有很多 它们各有优缺点 没有绝对最好的和最坏的排序方法 只有最符合某个使用场景的方法 在选用排序方法的时候 我们应该综合考虑以下方面 1 时间复杂度 2 空间复杂度 3 稳定性 4 算法简单性 5 待排序记录个数
  • vscode 缩略图

    vscode 缩略图 缩略图的打开与关闭 快捷键 Ctrl Shift P 输入 minimap回车 每次为开启关闭交替 大段代码缩略图可以快速移动 分屏时关闭缩略图更好看
  • mysql复制数据表

    CREATE TABLE newtable LIKE oldtable INSERT newtable SELECT FROM oldtable
  • 解决问题记录4:kettle数据库连接报错时区问题

    问题 Connection failed Verify all connection parameters and confirm that the appropriate driver is installed The server ti
  • FastCGI介绍

    CGI Common Gateway Interface 公共网关接口 是HTTP服务器与其他程序通信的工具 FastCGI是一个long live型的CGI 支持分布式计算 它将CGI解释器进程保持在内存中并因此获得较高的性能 FastC
  • 多模态深度学习

    我们对世界的体验是多模态的 我们看到物体 听到声音 感受质地 闻到气味 然后做出决定 多模态学习表明 当我们的许多感官 视觉 听觉 动觉 参与信息处理时 我们理解和记忆更多 通过组合这些模态 学习者可以组合来自不同来源的信息 多模态深度学习
  • Yoga 14s电脑亮度不能调节?教你一招一下搞定。

    说一下背景 本人电脑联想yoga 14s 不知道最近那一天突然发现电脑亮度没法调节 写小论文时眼睛都要被刺瞎了 试了重装驱动 无果 升级系统 无果 最后河海大学的好朋友问了客服 客服一针见血问出 是否装过向日葵等远程软件 果然 我装了向日葵
  • 使用Python,matplotlib绘制复杂曲线,并求其交点,y=-sin(x)-x-1并求解函数的值

    写这篇博客源于博友的提问 将介绍如何使用Python matplotlib绘制复杂曲线 并求其交点 y sin x x 1并求解函数的值 1 效果图 y sin x 效果图如下 y x ln x 效果图如下 y sin x x 1 y 0
  • 线段树(java)

    线段树描述 线段树是一种二叉搜索树 与区间树相似 它将一个区间划分成一些单元区间 每个单元区间对应线段树中的一个叶结点 使用线段树可以快速的查找某一个节点在若干条线段中出现的次数 时间复杂度为O logN 而未优化的空间复杂度为2N 实际应
  • 使用File类读取文件夹中所有文件

    在平时使用图形化界面操作计算机时 可以很方便的区分各种文件 并进行操作 但对于编程而言 需要通过一些方法才能实现区分或列出文件 在Java编程中 有一个对文件操作的类叫做File类 File类的一个对象代表一个文件或者文件夹 并且File类
  • android内存优化面试题,写给Android软件工程师的3条建议

    我的移动开发春季历程 没有稳定的工作 只有稳定的能力 春天 又到了万物复苏的季节 在程序猿这个行当里 作为 Android 开发出生的我 在经历了5年的脱发生涯后 现在更多的是称呼自己为移动开发攻城狮 Java面试题 1 GC机制 垃圾回收
  • 【使用ip地址进入百度】

    ping一下百度的地址 C Users CaiWeiTong gt ping www baidu com 正在 Ping www baidu com 36 152 44 95 具有 32 字节的数据 来自 36 152 44 95 的回复
  • ElementUI浅尝辄止21:Tree 树形控件

    树形组件 用清晰的层级结构展示信息 可展开或折叠 树组件使用挺频繁的 常见于侧边栏树形目录 树形下拉选项按钮或搜索查询树形信息选项 1 如何使用 基础的树形结构展示
  • 每天五分钟机器学习:使用主成分分析法PCA算法的注意事项

    本文重点 PCA算法能够降维数据 这会给我们带来一些好处 本节课程我们将学习一下 在应用PCA算法时的一些建议 PCA算法可以提高算法的运行 如果数据集维度特别大 10000维 算法运行的会比较慢 我们使用PCA算法能够有效的降低数据的维度
  • maven打包报错-There are test failures

    如果工程中有测试程序 需要检查测试程序的包名与主程序的包名是否一致 解决方法 将包名修改为一致的包名 如果修改后无效 则先执行一下clean命令 在执行package 修改在测试程序的注解中指定主测试类 如果出现 Failed to cle
  • Qt在linux下安装时报错:cannot execute binary file

    最近由于项目需要 得把原来的产品升级为Qt5 之前用的都是Qt4 所以学习了一下Qt5 在windows平台下安装qtcreator时很顺利 但是在ubuntu下安装时遇到了问题 具体表现是在Qt官网https download qt io
  • 【深入理解Linux内核】【分页】相关函数或宏

    PAGE SHIFT PMD SHIFT PUDSHIFT PGDIR SHIFT 指定offset字段位数 指定offset和table总位数 确定页上级目录能够映射的区域大小 确定页全局目录能够映射的区域大小 PTRS PER PTE