linux系统从开机到登录之前的启动流程
?
?Linux系統從開機到登錄之前的啟動流程
1.開機BIOS自檢
接通電源開機,計算機會先加載BIOS信息,因為BIOS中包含了CPU的相關信息,設備啟動順序信息?,硬盤信息,內存信息,時鐘信息,pnp特性等等。
?
2.MBR引導
MBR是磁盤上第0磁道第一個扇區,即主引導記錄,它的大小是512字節,里面存放了預啟動信息,分區表信息。
系統找到BIOS所指定的磁盤的MBR后,就會將其復制到0x7c00地址所在的物理內存中。被復制到物理內存就是Boot??Loader,具體到我的電腦就是lilo或者grub
?
3.grub引導菜單
系統讀取內存中的grub配置信息(一般為menu.lst或grub.lst),并依照此配置信息來啟動不同的操作系統
?
4.加載內核kernel
根據grub設定的內核映像所在路徑,系統讀取內存映像,并進行解壓縮操作。系統將解壓后的內核放置在內存之中,并調用start_kernel()函數來啟動一系列的初始化函數和初始化各種設備,完成linux核心環境的建立。
?
5.啟動init進程
內核被加載后,第一個運行的程序便是/sbin/init,該文件會讀取/etc/inittab文件,并依據此文件來進行初始化工作。
其實/etc/inittab文件最主要的作業就是設定linux的運行級別
?
6.讀取inittab文件,執行rc.sysinit,rc等腳本
在設定了運行級別后,linux系統執行的第一個用戶層文件就是/etc/rc.d/rc.sysinin腳本程序,它的工作非常多,包括設定PATH,設定網絡配置(/etc/sysconfig/network),啟動swap分區,設定/proc等等。(/etc/rc.d/rc.sysinit文件中的腳本非常多)
?
7.啟動內核模塊
具體是依據/etc/modules.conf文件或/etc/modules.d目錄下的文件來裝載內核模塊
?
8.執行不同運行級別的腳本程序
根據運行級別的不同,系統會運行rc0.d到rc6.d中相應的腳本程序,來完成相應的初始化工作和啟動相應的服務
?
9.執行/etc/rc.d/rc.local
Rc.local就是在一切初始化工作后,linux留給用戶進行個性化的地方。
?
10.執行/bin/login程序,進入登錄狀態
此時系統已經進入到了等待用戶輸入username和passwd的時候了,輸入帳號就可以登錄了。
?
?
本文全文手打,參考了如下文章:
http://blog.chinaunix.net/uid-26495963-id-3066282.html
?
?
轉載于:https://blog.51cto.com/gouliang/1700732
總結
以上是生活随笔為你收集整理的linux系统从开机到登录之前的启动流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu5126stars
- 下一篇: 阅读 Linux 内核源码——共享内存