操作系统中Daemon的来历
在操作系统中,一个Daemon
指的是在后台运行,而非直接和用户交互的程序,中文貌似叫“守护进程”。传统上这类程序一般会有一个字母d
的后缀,如syslogd
,supervisord
,mysqld
,mongod
等。这类程序一般由父进程fork出来,而其父进程常常为init
或者systemd
。
一开始看到这个词的时候觉得很奇怪,觉得和Demon
,也就是“恶魔”这个词有点像。但怎么想又觉得和恶魔扯不上关系。而事实上,他们二者还真的有点关系。
据Fernando J. Corbató(1990年图灵奖获得者),Daemon
这个词在操作系统这个领域一开始是由MIT的研究人员使用,继而被其他人沿用的。而他们的灵感则是来自于著名的“Maxwell’s Daemon”(麦克斯韦妖)。麦克斯韦妖是由物理学家James Clerk Maxwell提出的一个思想实验,用来说明一种热力学第二定律可能被违背的情况。
在这个思想实验中,在一个绝热容器中间有一扇没有重量的小门,一个小恶魔可以控制这个门的开关。容器里有一些气体,有的气体运动得快,有的气体运动得慢。当一个气体分子接近这个门的时候,小恶魔会通过控制门的开关,让运动的快的气体分子向一个方向流动,而让运动得慢的气体分子向另一个方向流动。因为气体的温度取决于气体分子的运动速度,那么小恶魔的行为就使得这个容器一边热,一边冷;而在这个过程中,并没有做任何功,因此违反了热力学第二定律(熵增定律)。
计算机系统中的Daemon
和麦克斯韦妖的共同点就是他们都在幕后干活,不能轻易为人所知。在希腊神话中,Daemon(也写作Daimon)并没有好坏之分,是一种善恶并存的超自然存在,这也和计算机系统中的后台进程的概念有一点“神似”。