進程關係

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

標題

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