当前位置:嗨网首页>书籍在线阅读

03-进程ID

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

5.2 进程ID

每个进程都由一个唯一的标识符表示的,即进程ID,简称pid。系统保证在任意时刻pid都是唯一的。也就是说,在t+0时刻有且只有一个进程的pid是770(如果有的话),但并不表示在t+1时刻另一个进程的pid就不能是 770。从本质上来讲,大多数程序会假定内核不会重用已用过的pid值——这个假设,正如你所将看到的,是完全正确的。当然,从进程角度看,其pid永远都不会变化。

空闲进程(idle process)——即当没有其他进程在运行时,内核所运行的进程——其pid值为0。在启动后,内核运行的第一个进程称为init进程,其pid值为1。一般来说,Linux中init进程就是init 程序。“init”这个术语不但表示内核运行的第一个进程,也表示完成该目的的程序名称。

除非用户显式告诉内核要运行哪个程序(通过init内核命令行参数),否则内核就必须自己指定合适的init程序——这种情况很少见,是内核策略的一个特例。Linux内核会尝试四个可执行文件,顺序如下。

1./sbin/init:init最有可能存在的地方,也是期望存在的地方。

2./etc/init:init另一个可能存在的地方。

3./bin/init:init可能存在的位置。

4./bin/sh:Bourne shell所在的位置,当内核没有找到init程序时,就会尝试运行它。

在以上四个可能位置中,最先被发现的就会当作init运行。如果四个运行都失败了,内核就会报警,系统挂起。

内核交出控制后,init会接着完成后续的启动过程。一般而言,这个过程包括初始化系统、启动各种服务以及启动登录进程。