OS - 用户堆栈 - 不是真正的 4096 可用内存

OS - User stack - not really 4096 of usable memory

有人可以确认当我们说一个应用程序有 4096 字节的堆栈时,它实际上不能使用所有这些 space 因为有用于在应用程序之间切换的内存(trapframes,...)通常位于堆栈的顶部。

这 space 可能取决于不同的 OS 实现。

我说得对吗?

谢谢

1) 4096 现在是一个很小的堆栈。 2) 你是说对应用程序可用吗?

当您到达 "your" 代码(主要代码,无论什么)时,堆栈将已经有许多调用帧(占用您的 4096 字节)。通常,在顶部,有一个框架来处理返回操作系统。然后可能有用于设置库和异常处理程序的框架。这些天通常有一个带有命令行参数的框架。

所有这些都吃进了堆栈。