进程关系

1.终端登录

  1. 内核创建进程ID为1的进程(init),使系统进入多用户模式
  2. init读取文件/etc/ttys,对允许登录的设备,调用一次fork,生成的子进程则exec getty程序
  3. getty对终端设备调用open函数,以读写的方式将终端打开。
  4. 一旦设备打开,文件描述符0,1,2设置到该设备。getty输出“login”信息等待用户键入用户名
  5. 当输入完成用户名,getty调用login程序

login程序

  1. 调用getpwnam取得用户的口令文件登录项
  2. 调用getpass以显示“Password:"读取键入的口令
  3. 调用crypt将用户键入的口令与pw_passwd字段比较
  4. 若口令无效,则login以参数1调用exit表示登录失败,父进程(init)得到子进程终止情况,再次调用fork,在执行getty

正确登录后login

标题

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章