linux - 如何在堆和栈之间有一个保护页?

标签 linux linux-kernel heap-memory stack-memory xv6

我在 xv6 中定义了一个向上的堆栈(它有一个向下的堆栈)并且想知道我是如何在堆栈和堆之间放置一个保护页的。我可以使用任何特定的系统调用吗?另外,我怎样才能保持一页地址空间始终位于堆栈和堆之间?

最佳答案

所以你确切地知道你的堆栈从哪里开始增长?在那种情况下,你为什么不离开一页,然后从下一页开始。您可能需要分配内存并用一些数据毒化内存,以便可以检测到它。就像其中一些内存溢出检测工具的工作方式一样。或者您可能需要为该页面设置一些自定义标志,以便在尝试访问它们时,如果发现不合适,您可以检查标志和错误。

我是否正确回答了您的问题,顺便说一句?

关于linux - 如何在堆和栈之间有一个保护页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19483940/

相关文章:

java - 如何使 Java 应用程序的内存高效?

Linux驱动设置取消点

Linux 中的 C++ Stream 接口(interface)

linux - 为什么 syslog 文件中的内核日志消息(或那些重定向到终端的消息)正好落后一个 'message'?

linux - 如何在 exit() 系统调用中调用我自己的系统调用

linux - 我应该使用哪个信号从 accept() API 中出来?

java - 无法访问的对象不是从堆中收集的垃圾

java - java堆大小的硬限制

linux - 无法通过 libusb 传输数据

linux - 如何设置内核线程的亲和性?