【发布时间】:2010-11-28 17:11:33
【问题描述】:
在测试中,我运行程序的 bss 部分中的内存在我在那里写任何东西之前总是被初始化为零。这是巧合,还是系统在将它们交给我之前“清理”了这些内存页面?我在 Ubuntu 上使用 nasm 汇编器(如果这可能会有所不同的话)。
【问题讨论】:
在测试中,我运行程序的 bss 部分中的内存在我在那里写任何东西之前总是被初始化为零。这是巧合,还是系统在将它们交给我之前“清理”了这些内存页面?我在 Ubuntu 上使用 nasm 汇编器(如果这可能会有所不同的话)。
【问题讨论】:
你的应用程序的可执行文件(ELF)有一个 BSS 部分的大小信息,当它启动时,内核为 BSS 部分分配一块内存,并将其清理为 0。这是由 ABI(应用程序二进制接口)定义的,所以你不用担心在不同的机器上有不同的。
【讨论】:
是的,BSS 已初始化为零。
【讨论】: