【发布时间】:2020-04-08 03:12:44
【问题描述】:
我现在正在我的机器上使用 gdb 探索一个简单的 ELF 二进制文件。 如果我没看错的话,所有的环境变量都会被加载到进程的堆栈中。
我假设它们是提供给用户应用程序的,以防开发人员或某些 libc 函数(例如 execve)需要它们。
但是,如果只有几个应用程序真的需要它们,操作系统将它们全部复制到每个进程的内存空间中,这不是一点点开销和内存浪费吗? 可能还有其他我没有想到的原因吗?
【问题讨论】:
-
也许 TOS 的某些页面是被映射进来的,而不是被复制的?
标签: linux operating-system environment-variables