Windows对应的是spawn api调用, 本质上是创建了一个空壳, 然后把要执行的exe文件装载进去, 从入口开始执行.
Unix系的做法是fork api调用, 复制当前进程(父进程), 然后子进程里用 exec api 装载新的文件替换自己. 这带来很多灵活性, 因为子进程可以读取父进程的一切信息, (虽然也可以写, 但是写的是复制出来的那份, 不会对父进程造成影响)做各种复杂逻辑和操作.
Unix的代价除了多一次系统级调用之外, 最大代价是内存开销(尤其当父进程很大时) 虽然现在有了 Copy on write 技术, 让父子进程共享一部分内存, 修改时才复制, 但复制的代价依然是巨大的.
综合看来, Windows的办法是更优的.