执行了3次ps -f ,ps -f的父进程的ID(PPID)都是一样的,即bash.
实际上Linux上这个bash就是不断的复制自身,然后把复制出来的用exec替换成想要执行的程序(比如ps);
运行ps,发现ps是bash的一个子进程;原因就是bash把自己复制一份,然后替换成ps;
替换,这里就体现了写时拷贝的意义,如果全部都要替换,那么最开始的复制是没有意义的; 注意,用了写时拷贝就只复制了几个页表的映射,内容还没有复制,然后执行了替换exec.
在Linux新的进程的产生过程(进程创建):
fork:复制进程
exec系列:将当前进程替换为另外一个进程.