我看到在64位Windows操作系统上,用户可用的虚拟地址空间为8兆字节。但是如果我们正在运行的程序以32位兼容模式运行,是否仍然有这么多的用户空间可用?还是它会像普通的32位操作系统一样,只提供2GB的用户地址空间?
对于win32可执行文件(x86),我们可以设置LargeAddressAware标志,以便在x64 Windows上运行时可以访问4 GB的虚拟地址空间(而不仅仅是2 GB)。这看起来非常吸引人。但是,这其中存在风险。例如,请参见:使用/LARGEADDRESSAWARE为32位Window...
我有些难以理解操作系统如何将父进程的地址空间中的数据传递给子进程的地址空间。特别是,在C程序中,当argc和argv被传递到main函数中时,它们存储在哪里? 我知道argv本质上是一个双指针。但我不明白操作系统在将这些值载入内核后会做什么。在为子进程创建地址空间后,它是否将这些值推送到新空...