内核清零内存?

2023-12-29

我正在使用 Debian squeeze 并注意到内存总是归零。这是 Linux 发行版中的新功能吗?前段时间,我相信我可以使用 put() 并且会输出垃圾。

我多次运行这个测试程序,但注释的结果总是相同的。 (我在 sysctl.conf 中有 randomize_va_space=2,所以我知道每次运行时都会使用不同位置的内存。)


char *a = malloc(50000000);
a[49999999] = '\0';
puts(a); // it outputs nothing since all are zeroes
printf("%p\n", a);
if(a[5000] == '\0') // this condition is always true
{
    puts("It is a nul char.");
}

有没有可能让系统内存不为零?这个 Debian 压缩安装可以激活哪些选项来使内存始终为零?


在任何现代操作系统上,新获得的内存将包含非零值的唯一方法是程序先前释放的内存被重用malloc。当从操作系统(内核)获取新内存时,它最初是纯虚拟的。它没有物理存在;相反,它被映射为充满 0 字节的单个共享内存页的写时复制映射。第一次尝试写入时,内核将捕获该写入,分配新的物理内存页,将原始页的内容(在本例中均为 0 字节)复制到新页,然后恢复你的程序。如果内核知道新分配的物理内存已经被零填充,它甚至可以优化复制步骤。

这个程序既必要又有效。这是必要的,因为将可能包含来自内核或其他用户进程的私有数据的内存移交给您的进程将是一个严重的安全漏洞。它很高效,因为在分配时不执行归零操作; “零填充”页面只是对共享零页面的引用。

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

内核清零内存? 的相关文章

  • boost::multi_index_container 复合键中的 equal_range 与比较运算符

    我正在尝试从多索引容器查询结果 其中值类型是三个元素的结构 第一个值已给出 但第二个和第三个值必须大于或小于查询参数 经过搜索后 我发现必须实现自定义密钥提取器 并且这里的一些链接建议相同 但我无法实现它 boost multi index
  • 在 LINQ 查询中返回不带时间的日期

    我正在编写一个查询 我想计算按日期联系我们的呼叫中心的次数 看起来很简单 但由于联系日期字段是日期时间字段 我得到了时间 因此当我按联系日期 时间 分组时 每个联系日期实例的计数为 1 所以 我想只按日期分组 而不按时间分组 下面是我用来查
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • Func 方法参数的首选命名约定是什么?

    我承认这个问题是主观的 但我对社区的观点感兴趣 我有一个缓存类 它采用类型的缓存加载器函数Func
  • fgets() 和 Ctrl+D,三次才能结束?

    I don t understand why I need press Ctrl D for three times to send the EOF In addition if I press Enter then it only too
  • 在 ASP.Net Core 2.0 中导出到 Excel

    我曾经使用下面的代码在 ASP NET MVC 中将数据导出到 Excel Response AppendHeader content disposition attachment filename ExportedHtml xls Res
  • 使用安全函数在 C 中将字符串添加到字符串

    我想将文件名复制到字符串并附加 cpt 但我无法使用安全函数 strcat s 来做到这一点 错误 字符串不是空终止的 我确实设置了 0 如何使用安全函数修复此问题 size strlen locatie size nieuw char m
  • 编译的表达式树会泄漏吗?

    根据我的理解 JIT 代码在程序运行时永远不会从内存中释放 这是否意味着重复调用 Compile 表达式树上会泄漏内存吗 这意味着仅在静态构造函数中编译表达式树或以其他方式缓存它们 这可能不那么简单 正确的 他们可能是GCed Lambda
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 线程、进程和 Application.Exit()

    我的应用程序由主消息循环 GUI 和线程 Task Factory 组成 在线程中我调用一些第三方应用程序var p new Process 但是当我调用Application Exit 在消息循环中 我可以看到在线程中启动的进程仍在内存中
  • 我的 strlcpy 版本

    海湾合作委员会 4 4 4 c89 我的程序做了很多字符串处理 我不想使用 strncpy 因为它不会终止 我不能使用 strlcpy 因为它不可移植 只是几个问题 我怎样才能让我的函数正常运行 以确保它完全安全稳定 单元测试 这对于生产来
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • 作为字符串的动态属性名称

    使用 DocumentDB 创建新文档时 我想设置属性名称动态地 目前我设置SomeProperty 像这样 await client CreateDocumentAsync dbs db colls x new SomeProperty
  • 如何构建印度尼西亚电话号码正则表达式

    这些是一些印度尼西亚的电话号码 08xxxxxxxxx 至少包含 11 个字符长度 08xxxxxxxxxxx 始终以 08 开头 我发现这个很有用 Regex regex new Regex 08 0 9 0 9 0 9 0 9 0 9
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 更改显示的 DPI 缩放大小使 Qt 应用程序的字体大小渲染得更大

    我使用 Qt 创建了一些 GUI 应用程序 我的 GUI 应用程序包含按钮和单选按钮等控件 当我运行应用程序时 按钮内的按钮和字体看起来正常 当我将显示器的 DPI 缩放大小从 100 更改为 150 或 200 时 无论分辨率如何 控件的
  • 将 viewbag 从操作控制器传递到部分视图

    我有一个带有部分视图的 mvc 视图 控制器中有一个 ActionResult 方法 它将返回 PartialView 因此 我需要将 ViewBag 数据从 ActionResult 方法传递到 Partial View 这是我的控制器

随机推荐

  • 在 WordPress 中添加外部 javascript 文件

    我想在 WordPress 主题中添加多个外部 javascript 文件 我找到了添加一个文件的代码 但我需要添加更多 javascript 文件 我该怎么做 function wpTan scripts wp register scri
  • 在验证之后但在 Woocommerce Checkout 中创建订单之前进行挂钩

    我正在尝试在结帐中创建一个步骤来确认您的订单 我在想当点击下订单按钮时AND结帐字段有效我可以运行一些 JS 来显示模式或其他内容 是否有类似于 checkout place order 的 JS 触发器 事件在验证后运行 例如 我可以使用
  • 如何将RESTeasy中的编码设置为UTF-8?

    我在 RESTeasy 中编码字符串时遇到问题 问题是中文字母或任何其他非拉丁字符无法正确显示 如果我尝试打印它们 或作为响应发送 我会得到 反而 我相信 RESTeasy 中的默认编码是 us ascii 你知道如何将其更改为UTF 8吗
  • 如何用Python打印一块板子?

    我试图在Python上编写一个名为三重三元组的游戏 但是我对棋盘的输出有一个问题 它必须像这样每个方格 其中每个数字代表一个基点 有9个方格 每个方格三个线 1 1 9 2 3 1 6 7 2 4 1 2 我想为每一行做一个列表 并用每个基
  • 创建一个 Apache SetEnv 变量,其中包含通配符的子域名

    我有一个网站 基本上设置如下 client name website com 其中 clientname 实际上是通配符 对于每个新客户 我基本上都会创建一个子域 我需要直接从 Apache 自动获取客户端名称信息 例如 如果有人经历了 c
  • puppeteer - 如何从具有多个同一类的 div 的页面中提取内容

    我有一个简单的木偶脚本来抓取公告网站 我需要获取页面的内容 在检查 DOM 后 我可以看到所有内容对于包含链接和文本的 div 都具有相同的类 如何通过循环获取每个div的内容 这是一个页面html结构的例子 大约有二十五个相同类的div
  • ggplot barplot 根据两个类别的行的最大值进行排序

    我四处搜寻并发现和我类似的案例 https stackoverflow com questions 33127081 但我找不到以下问题的有效解决方案 我有一个像这样的数据框 df lt data frame name rep c a b
  • 不唯一的表/别名

    我收到错误ERROR 1066 42000 Not unique table alias 我不知道出了什么问题 SELECT Project Assigned ProjectID Project Title Account Account
  • TensorFlow 目标检测 API 的非极大值抑制

    我正在 Tensorflow 对象检测 API 中实现 Faster RCNN v2 Inception 为了消除冗余重叠检测 我读到应该应用 NMS 一种方法是调整配置文件中的 NMS IOU 阈值first stage nms iou
  • JavaScript 运行时如何表示闭包和作用域

    这主要是出于好奇而提出的问题 考虑以下函数 var closure function f0 var x new BigObject var y 0 closure function return 7 function f1 var x Bi
  • 绑定到 Twitter Bootstrap 3 中的 Collapse 事件

    假设我有 Bootstrap Collapse div class panel group div class panel panel default div class panel heading h4 class panel title
  • 错误:入口点不在当前项目内

    无法从 Android Studio 运行 flutter 未检测到 flutter 项目 其显示错误 入口点不在当前项目内 每次重新启动 android studio 时都会显示相同的错误消息 删除 ideaflutter 项目根目录下的
  • 使用 UIWebView 进行手势识别

    我在我正在构建的应用程序中设置了一些手势识别功能 其中一种手势是单指单击 它会隐藏屏幕顶部的工具栏 效果很好 除了一件事 点击链接也会导致工具栏消失 是否可以检测到不是链接点击的点击 我可以通过查看点击发生的位置来做到这一点 并且仅在 ht
  • 如何正确使用insertRowsAtIndexPaths?

    我浏览了在线的所有示例 但无法弄清楚如何正确地将单元格添加到带有动画的表格视图中 假设我有一个包含一个单元格的部分 当用户单击第一个单元格的附件时 我想添加另一个单元格 我的 添加 方法执行以下操作 IBAction toggleEnabl
  • Qt状态栏颜色

    我将 Qt 与 Python 结合使用 并且有一个底部带有状态栏的主窗口 我可以使用 QLabel 在栏中显示一条消息 并使用类似的方法设置该消息的颜色 font color In progress font 对于 QLabel 文本 我还
  • GO - 本地导入不起作用

    我是 golang 新手 我想构建我的第一个简单的 Web 应用程序 每次我想构建源代码时 都会收到错误locale import controllers in non local package 这是我的文件夹结构 goTest Dock
  • 在arm64上安装构建工具不起作用

    我一直在尝试安装sdkmanager build tools 30 0 2 在arm64处理器 安培CPU 上 但每次我得到这个 Warning Dependant package with key emulator not found W
  • 如何通过 apache 渲染 .phtml 文件

    我想通过 Apache 渲染 phtml 文件 但是当我尝试时 它会将页面渲染为文本而不是 html 在我的虚拟主机配置中 如果我尝试渲染index php 它会正确执行 但是 当我将 DirectoryIndex 更改为 index ph
  • 如何通过asp.net mvc中的api调用将文件上传到服务器上

    public ActionResult Index PublishPost post HttpPostedFileBase file var apiURL http test sa com rest social update 1161 u
  • 内核清零内存?

    我正在使用 Debian squeeze 并注意到内存总是归零 这是 Linux 发行版中的新功能吗 前段时间 我相信我可以使用 put 并且会输出垃圾 我多次运行这个测试程序 但注释的结果总是相同的 我在 sysctl conf 中有 r