我們都知道,由於linux的穩定性,通常被作為伺服器系統,要想稱為一個PHP的高手,linux是必修之課。那麼linux系統從開機到啟動,中間到底都發生了什麼?本文來簡單探討一下中間的神秘過程。 1、 BIOS加電自檢 BIOS是英文"Basic Input Output System"的縮略詞 其 ...
我們都知道,由於linux的穩定性,通常被作為伺服器系統,要想稱為一個PHP的高手,linux是必修之課。那麼linux系統從開機到啟動,中間到底都發生了什麼?本文來簡單探討一下中間的神秘過程。
1、 BIOS加電自檢
BIOS是英文"Basic Input Output System"的縮略詞 其實,它是一組固化到電腦內主板上一個ROM晶元上的程式。 電腦會首先載入BIOS信息,這是因為BIOS中包含了CPU的相關信息、設備啟動順序信息、硬碟信息、記憶體信息、時鐘信息等等。在此之後,電腦心裡就有譜了,知道應該去讀取哪個硬體設備了。
2、 載入主引導載入程式(MBR)
MasterBootRecord,即主引導記錄,它的大小是512位元組,別看地方不大,可裡面卻存放了預啟動信息、分區表信息。 主引導程式是一個512位元組的映像。包含一點機器碼還有一個小的分區。 主引導程式的任務就是查找並且載入處在硬碟分區上的次引導程式。通過分區表查找活動分區,並將處在活動分區的次引導載入程式讀取到記憶體裡面運行。
3、 boot loader
bootloader就是在操作系統內核運行之前執行的的一段小程式。通過這段小程式,可以初始化硬體設備、建立記憶體空間的映射圖,從而將系統的軟硬體環境帶到一個合適的狀態,為載入內核做準備。 常見的bootloader有Grub、Lilo和spfdisk
4、 載入linux內核映像
用戶選擇要載入的內核之後,次引導載入程式(GRUB)就會根據/boot/grub.conf配置文件中所設置的信息,從/boot/所在的分區上讀取Linux內核映像,然後把內核映像載入到記憶體中並把控制權交給Linux內核。
linux內核獲得控制權之後開始乾自己的事
(1) 檢測硬體
(2) 解壓縮自己並安裝必要驅動
(3) 初始化與文件系統相關的虛擬設備
(4) 裝載根文件系統,掛在根目錄下麵
(5) 完成之後,linux在進程空間裡面載入init程式,下麵輪到init幹活 5、 init進程 init是所有進程的發起者和控制者,所有的進程都由此衍生。 init進程獲得控制權之後,它會執行/etc/rc.d/rc.sysinit腳本,根據裡面的代碼設置環境變數、網路、啟動swap、檢查並掛載文件系統、執行其他初始化工作。
6、自定製啟動程式 /etc/rc.local rc.local就是在一切初始化工作後,Linux留給用戶進行自己定製開機啟動的地方。你可以把你想設置和啟動的東西放到這裡。
7、執行/bin/login程式,進入登錄狀態
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。互聯網+時代,時刻要保持學習,攜手千鋒PHP,Dream It Possible。