1.终端登录
- 内核创建进程ID为1的进程(init),使系统进入多用户模式
- init读取文件/etc/ttys,对允许登录的设备,调用一次fork,生成的子进程则exec getty程序
- getty对终端设备调用open函数,以读写的方式将终端打开。
- 一旦设备打开,文件描述符0,1,2设置到该设备。getty输出“login”信息等待用户键入用户名
- 当输入完成用户名,getty调用login程序
login程序
- 调用getpwnam取得用户的口令文件登录项
- 调用getpass以显示“Password:"读取键入的口令
- 调用crypt将用户键入的口令与pw_passwd字段比较
- 若口令无效,则login以参数1调用exit表示登录失败,父进程(init)得到子进程终止情况,再次调用fork,在执行getty
正确登录后login