终端登录:
当系统自举时,内核创建ID为1的进程,也就是init进程,init进程系统进入多用户状态。
init进程读取/etc/inittab,对每一个允许登录的终端设备,init调用一次fork,它所生成的子进程执行(exec)getty程序。
getty为终端设备调用open函数,如果没有请求则阻塞,如果有请求,则文件描述符0,1,2就设置到该设备,然后getty输出”login“等的信息并等带用户输入用户名。
当用户键入用户名后,getty的工作就完成了。
然后以类似于这样的方式调用login程序
execle(“/bin/login”,“login”,“-p”,username,(char*)0,envp);
init以空环境(即无envp参数)调用一个getty,gettty以终端名和gettytab中说明的环境字符串。-p标识通知login保留传递给它的环境,也可将其他环境字符串加到该环境中,但是不要替换它。
进程组
一个或多个进程的集合,进程组属于一个会话。<