道生一,一生二,二生三,三生万物
——老子,道德经
最近公司开始搞各种减成本降配的事情。真是让人感叹世风日下啊!
但吐槽归吐槽,事情还是要做啊!
然后在查看运维的各种监控指标面板中,就遇到了今天要说的这个东西:idle进程。主要就是用来指示机器的空闲程度。
之前一直没太留意这玩意,但有2个疑惑:
- 为什么这玩意可以表示机器的空闲程度?
- 为什么需要这玩意?
于是查了下 相关介绍 和 相关介绍 算是大概有个了解了,总结下来就是:
- Linux世界诞生之时,只有 0号进程 init_task(这个在最后变成idle进程)
- 0号进程经过诸如 start_kernel、rest_init的演化,诞生出1号 内核init线程、2号 kthreadd内核线程
- 1号 内核init线程 最终变化为所有用户态程序的根进程,是所有用户态进程的祖先
- 2号内核kthreadd内核线程,变为所有内核态其他守护线程的祖先
- ……
看完上面这些,就觉得这个设计的格局有点似曾相识的感觉啊。
再一品,这 idle 不就是老子所说的 道 吗?!
道生一,一生二,二生三,三生万物
有点玄妙的感觉,Linus Torvalds 是有点东西啊!
另外值得一提的是:
现在的电脑都是多处理器的,主处理器 上的idle由原始进程(pid=0)演变而来。从处理器 上的idle由init进程fork得到,但是它们的pid都为0
至此也解答了我上面的2个疑惑:
-
为什么这玩意可以表示机器的空闲程度?
- 因为这玩意就是在系统空闲的时候运行,所以当然是表示系统的空闲程度
-
为什么需要这玩意呢?
- 因为正如亿贫如洗王道长说的:这个世界没有一刻是静止的 ,电脑系统也无法真正完全停止运行,否则这个系统就死了,关机。总要跑点什么吧,那就让idle来吧。
写到这里,突然想到了第一次读到老子的这段话的疑惑:道生一,一生二,二生三,三生万物,那最后道就没了吗?
原来 道 和 idle 一样,并没有消失,而是为了保证这个世界不会绝对静止,无时无刻、无处不在的运转着。
【完】。
1 comment
牛逼,没学到