陈莉君

陈莉君的博客

她的个人主页  她的博客

虚拟化下的进程演变(三)—繁衍

陈莉君  2010年02月10日 星期三 23:51 | 1794次浏览 | 11条评论

Unix/Linux 的世界,除 init 进程外,没有进程是从石头缝蹦出来的,也就是 Init 进程承担着祖师爷的角色。一个进程 PID 命名空间的诞生也遵循繁衍的规则,只是这种繁衍不是克隆一个进程,而是克隆一个小国,因此, clone() 个系统调用依然粉墨登场。旧瓶装新酒,内核补丁提交者在 < inux/sched.h> 中增加一个新的标志

#define CLONE_NEWPID   0x20000000 /* New pid namespace */

   看似这么简单的一个定义,让 clone() 就可以克隆 PID 命名空间。具体用法参见  Linux PID namespace 一文。

   在新的命名空间中,  init 进程与生俱来,为 1 号进程,由他繁衍其他后代,其 PID 依次为 2,3 。如果有孤儿进程, init 依然会作为养父将孤儿收养,但与根红苗正的 init 进程不同,命名空间中的 init 可以死亡,果真如此,整个命名空间也就没有存在的意义,自行消亡。

   别以为新的命名空间与父亲有同等的地位。一旦一个新的 PID 命名空间诞生,父空间中的所有进程可以与孩子空间中的进程打交道,但反之则不然,也就是子空间根本就看不见父空间。这还意味着,此时,每个进程(比如 init )不止一个 PID- 在每个空间中都有自己的 PID


评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !
郎咸武

回复 郎咸武  2010年03月01日 星期一 18:35

陈老师你好
下面 一段没怎么看明白“如果有孤儿进程,init 依然会作为养父将孤儿收养,但与根红苗正的init进程不同,命名空间中的init可以死亡,果真如此,整个命名空间也就没有存在的意义,自行消亡。
怎么突然出来了个“孤儿进程”。为什么存在init进程不同导致“命名空间中的init死亡”。

0条回复

alexpeng

回复 alexpeng  2010年02月11日 星期四 12:18

陈老师,其实从boot 到 init 进程之间的这一段也很有意思。有点创世纪的味道。从冷冰冰的硬件到OS能接管、控制所有设备,很有趣。 另外,linux里, kernel memory allocator是由init生成吗?在Solaris里,2号进程pageout,3号进程fsflush都不是由init生成的,好象是从4号进程以后,init才是祖师爷。不过,有些日子没看了,不对请纠正。

1条回复

  • 陈莉君

    回复 陈莉君  2010年02月11日 星期四 16:49

    关于Solaris中的这几个进程的特殊性,我还真不知道。

    0条回复

茶韵

回复 茶韵  2010年02月11日 星期四 11:05

接着关注
陈老师,你们是否开始做这方面的研究啦?我觉得您分析的问题都很到位,一点就点到了关键点上。

2条回复

  • 陈莉君

    回复 陈莉君  2010年02月11日 星期四 11:30

    这涉及很多术语:namespace,container,control groups(Cgroup),。仅仅是因为兴趣就跳进来了,但貌似可以挖掘出很多更有趣的东西,参看http://lwn.net/Articles/256389/ 。我都觉得自己掉进自己挖的陷进去了,正试图慢慢爬出来。

    1条回复

      • 茶韵

        回复 茶韵  2010年02月11日 星期四 22:43

        呵呵,谢谢陈老师,我明天要出去过年,过完年,读完这段内容还希望能接着和您讨论,哈

        0条回复

徐继哲

回复 徐继哲  2010年02月11日 星期四 09:41

结合《黑客帝国》里的段子描写会更有意思,:)

4条回复

  • 陈莉君

    回复 陈莉君  2010年02月11日 星期四 09:57

    这个提议不错,我准备在黑客帝国中扮演一角色。

    3条回复

      • 徐继哲

        回复 徐继哲  2010年02月11日 星期四 09:59

        你扮演先知正合适。

        2条回复

          • 陈莉君

            回复 陈莉君  2010年02月11日 星期四 11:11

            正是我所期望,^_^

            1条回复

              • 徐继哲

                回复 徐继哲  2010年02月11日 星期四 11:14

                哈哈,先知是最了解母体系统的,如果能够通过结合黑客帝国的剧情把操作系统将明白,那也是一大创举啊。融技术、哲理、电影、娱乐等于一体,将非常有意思。:D

                0条回复

暂时没有评论

Zeuux © 2024

京ICP备05028076号