我們都知道因苹,由于linux的穩(wěn)定性苟耻,通常被作為服務器系統(tǒng),要想稱為一個PHP的高手扶檐,linux是必修之課凶杖。那么linux系統(tǒng)從開機到啟動,中間到底都發(fā)生了什么蘸秘?本文來簡單探討一下中間的神秘過程官卡。
1、 BIOS加電自檢
BIOS是英文"Basic Input Output System"的縮略詞 其實醋虏,它是一組固化到計算機內(nèi)主板上一個ROM芯片上的程序寻咒。 計算機會首先加載BIOS信息,這是因為BIOS中包含了CPU的相關信息颈嚼、設備啟動順序信息毛秘、硬盤信息、內(nèi)存信息、時鐘信息等等叫挟。在此之后艰匙,計算機心里就有譜了,知道應該去讀取哪個硬件設備了抹恳。
2员凝、 加載主引導加載程序(MBR)
MasterBootRecord,即主引導記錄奋献,它的大小是512字節(jié)健霹,別看地方不大,可里面卻存放了預啟動信息瓶蚂、分區(qū)表信息糖埋。 主引導程序是一個512字節(jié)的映像。包含一點機器碼還有一個小的分區(qū)窃这。 主引導程序的任務就是查找并且加載處在硬盤分區(qū)上的次引導程序瞳别。通過分區(qū)表查找活動分區(qū),并將處在活動分區(qū)的次引導加載程序讀取到內(nèi)存里面運行杭攻。
3祟敛、 boot loader
bootloader就是在操作系統(tǒng)內(nèi)核運行之前執(zhí)行的的一段小程序。通過這段小程序朴上,可以初始化硬件設備垒棋、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài)痪宰,為加載內(nèi)核做準備叼架。 常見的bootloader有Grub、Lilo和spfdisk
4衣撬、 加載linux內(nèi)核映像
用戶選擇要加載的內(nèi)核之后乖订,次引導加載程序(GRUB)就會根據(jù)/boot/grub.conf配置文件中所設置的信息,從/boot/所在的分區(qū)上讀取Linux內(nèi)核映像具练,然后把內(nèi)核映像加載到內(nèi)存中并把控制權交給Linux內(nèi)核乍构。
linux內(nèi)核獲得控制權之后開始干自己的事
(1) 檢測硬件
(2) 解壓縮自己并安裝必要驅(qū)動
(3) 初始化與文件系統(tǒng)相關的虛擬設備
(4) 裝載根文件系統(tǒng),掛在根目錄下面
(5) 完成之后扛点,linux在進程空間里面加載init程序哥遮,下面輪到init干活 5、 init進程 init是所有進程的發(fā)起者和控制者陵究,所有的進程都由此衍生眠饮。 init進程獲得控制權之后,它會執(zhí)行/etc/rc.d/rc.sysinit腳本铜邮,根據(jù)里面的代碼設置環(huán)境變量仪召、網(wǎng)絡寨蹋、啟動swap、檢查并掛載文件系統(tǒng)扔茅、執(zhí)行其他初始化工作已旧。
6、自定制啟動程序 /etc/rc.local rc.local就是在一切初始化工作后召娜,Linux留給用戶進行自己定制開機啟動的地方运褪。你可以把你想設置和啟動的東西放到這里。
7玖瘸、執(zhí)行/bin/login程序吐句,進入登錄狀態(tài)
著作權歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權店读,非商業(yè)轉(zhuǎn)載請注明出處∨市荆互聯(lián)網(wǎng)+時代屯断,時刻要保持學習,攜手千鋒PHP,Dream It Possible侣诺。