linux中所有进程是有啥进程派生出来的?救命啊

linux中所有进程是有啥进程派生出来的?救命啊,第1张

系统启动后的第一个进程是INIT 进程 PID 是1 是唯一一个由系统内核直接运行的进程~其他新的进程是有系统调用FORK来产生的,就是从一个已经存在的进程中分出一个新的进程来 ,旧的进程就是新产生进程的父进程!新产生的进程就是它的子进程!除了INIT以外每一个进程都有父进程!

说白了 INIT是祖宗!LOGIN是祖宗的儿子~!SHELL是祖宗的孙子!

fork()创建的是进程不是线程,他们的整个虚拟存储空间都是相互独立的,当然都是有副本的。函数内部定义的局部变量放在栈中,而全局变量则是放在.data或者.bss段中,他们都有副本。包括你的代码段.text也是有副本的。

当然linux内核为了节省内存/提高执行速度可以采用copy on write技术,也就是只有当某个进程要写入一个页面的时候才进行拷贝副本 *** 作。不过这对应用程序都是透明的,不可见的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8445048.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存