Linux 为什么需要brk()系统调用?

Linux 为什么需要brk()系统调用?,linux,Linux,另外,在brk系统调用之后,额外的虚拟内存尚未分配,即页表尚未增长以容纳新的虚拟地址。我的印象是,这些页面表添加为 所以。。。为什么需要brk系统调用才能存在?当内存访问进入时,内核为什么不能根据需要创建页表呢?这不会帮助您捕获对未分配内存的写入操作。添加为什么?我认为你漏掉了一部分句子。我认为你对brk所做的是错的。它会将它们添加到页面表中,但会将它们标记为未映射。当您在该页面中出现页面错误时,它将分配一个空内存页面并映射到该页面。如果内核在您访问未映射页面时添加页面,则在使用未初始化指针时不

另外,在brk系统调用之后,额外的虚拟内存尚未分配,即页表尚未增长以容纳新的虚拟地址。我的印象是,这些页面表添加为


所以。。。为什么需要brk系统调用才能存在?当内存访问进入时,内核为什么不能根据需要创建页表呢?

这不会帮助您捕获对未分配内存的写入操作。

添加为什么?我认为你漏掉了一部分句子。我认为你对brk所做的是错的。它会将它们添加到页面表中,但会将它们标记为未映射。当您在该页面中出现页面错误时,它将分配一个空内存页面并映射到该页面。如果内核在您访问未映射页面时添加页面,则在使用未初始化指针时不会出现分段冲突。还有,它怎么知道新页面的正确访问控制应该是什么呢?@Barmar哦,开枪吧。我认为困惑来自于页面表中实际存在的信息,以及它是如何工作的。谢谢。这不是一个真正的编程问题,而是一个关于操作系统设计的问题。我建议你读一本关于Unix设计的教科书。