歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統啟動的標准步驟及流程

Linux系統啟動的標准步驟及流程

日期:2017/2/28 17:38:42   编辑:Linux教程
對於系統裝載過程我們暫時不做介紹,我們假設內核已經被載入內存並且已經完成了異常表、中斷表、調度程序、時鐘、控制台、內存等初始化,最後進行進程管理器的初始化,從此內核可以開始使用真正的進程了。

  初始化完成後,內核創建第一個進程(初始進程),該進程作為系統的第0號進程,在進程描述符表中由task[0]或INIT_TASK表示。該進程進而再創建了一個進程去執行init()函數進行第二階段的初始化操作,而初始進程(INIT_TASK)本身則去執行idle循環,可見初始進程在內核初始化後唯一的作用就是去使用空閒的CPU時間。

  第二階段的初始化工作要比前一階段輕松一點,因為現在是由一個真正進程完成它們的,而前一階段都是由“硬件進程”手工去做的。該階段,這個由INI_TASK創建的新進程需要初始化總線、網絡並啟動系統中的各種系統內核後台線程,然後再初始化外設、設置文件格式,在這之後,它要為進入系統做最後的准備——初始化文件系統,安裝根文件,打開/dev/console設備,重定向stdin、stdout和stderr到控制台,然後搜索文件系統中的init程序,並使用 execve()系統調用加載執行init程序。系統自此進入了用戶態。

  init程序接著將依照initab配置文件中的選項依次執行:
Copyright © Linux教程網 All Rights Reserved