操作系统概念和 APUE 说
使用vfork(),父进程被挂起,子进程使用父进程的地址空间。因为 vfork() 不使用写时复制,如果子进程更改了父地址空间的任何页面,一旦恢复,父进程将可以看到更改的页面。因此,必须谨慎使用 vfork(),以确保子进程不会修改父进程的地址空间。
vfork() 旨在在子进程创建后立即调用 exec() 或 exit() 时使用。
我该如何理解最后一句话?
当vfork()调用创建的子进程时exec(),不会exec()通过加载新程序来修改父进程的地址空间?
当一个子进程的创建vfork()调用exit(),并 exit()终止儿童在不修改父进程的地址空间?
我更喜欢Linux。
谢谢。
在这个答案中,用户建议
通常,不间断睡眠不会持续很长时间,但是在 Windows 下,损坏的驱动程序或损坏的用户空间程序(没有 exec 的 vfork)最终可能会永远在 D 中睡眠。
用户空间程序如何在非错误内核上真正锁定在 D 中?我认为用户模式能够故意卡在 D 中有点小漏洞......