linux 磁盘检测卡主_Linux启动过程
Linux系統
Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基于POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟件、應用程序和網絡協議。Linux繼承了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。
Linux操作系統誕生于1991 年10 月5 日(這是第一次正式向外公布時間)。Linux存在著許多不同的Linux版本,但它們都使用了Linux內核。Linux可安裝在各種計算機硬件設備中,比如手機、平板電腦、路由器、視頻游戲控制臺、臺式計算機、大型機和超級計算機。
嚴格來講,Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基于Linux內核,并且使用GNU 工程各種工具和數據庫的操作系統。
如何啟動
我們平時在工作或學習中經常使用Linux操作系統,但是他是如何從關機狀態啟動的呢?
BIOS
BIOS(Basic Input/Output System)基本輸入輸出系統。計算機在開機啟動時,首先會讀取這個系統,然后BIOS上會有一個加電自檢(POST)的過程。加電自檢過程其實就是檢查計算機硬件的過程,包括檢查CPU和內存,檢查計算機最基本的組成單位(控制器,運算器,存儲器),還會檢查其他硬件。如果沒有異常,就加載BIOS程序到內存中。BIOS加載到內存中,他的一個主要功能是存儲了磁盤的啟動順序,BIOS會根據啟動順序去查找磁盤頭的MBR信息,并加載和執行MBR中的BootLoader程序。一旦BootLoader程序被檢測并加載到內存中,BIOS就將控制權交給BootLoader程序。
MBR
MBR(Master Boot Record)主引導記錄。磁盤上第0磁道第一個扇區被稱為MBR。他的大小是512字節,里面存放了預啟動信息、分區表信息。MBR大體可分為兩個部分:第一部分為引導區,占了446個字節。第二部分為分區表,占了64個字節,記錄硬盤的分區信息。最后兩字節用于MBR的有效性檢驗。 預引導區的作用之一是找到標記為活動(ACTIVE)的分區,并將活動分區的引導區讀入內存。
GRUB
GRUB(Grand Unified Bootloader)多系統啟動程序,其執行過程可分為三個步驟:Stage1:它的主要工作就是查找并加載第二段Bootloader程序(stage2),但系統在沒啟動時,MBR根本找不到文件系統,也就找不到stage2所存放的位置,因此,就有了stage1_5
Stage1_5:該步驟就是為了識別文件系統
Stage2:GRUB程序會根據/boot/grub/grub.conf文件查找Kernel的信息,然后開始加載Kernel程序,當Kernel程序被檢測并在加載到內存中,GRUB就將控制權交接給了Kernel程序。
Kernel
Kernel,內核。kernel是Linux系統最主要的程序,kernel的文件很小,只保留了最基本的模塊,并以壓縮文件的形式存儲在硬盤中,當GRUB將kernel讀進內存,內存開始解壓縮內核文件。解壓后,系統會調用start_kernel()函數來啟動一系列的初始化函數并初始化各種設備,完成Linux核心環境的建立。至此,Linux內核已經建立起來了,基于Linux的程序應該可以正常運行了。
在 start_kenrel()的結尾,內核通過kenrel_thread()創建出第一個進程(用戶空間的進程),執行/sbin/init,之后就將控制權交接給了init程序。
Init
Init,初始化。進行OS初始化操作, 實際上是根據/etc/inittab(定義了系統默認運行級別)設定的動作進行腳本的執行,第一個被執行的腳本為/etc/rc.d/rc.sysinit,這個是真正的OS初始化腳本,它做的工作非常多,包括設定PATH、 設定網絡配置(/etc/sysconfig/network)、啟動swap分區、設定/proc等等。
執行完后,根據配置的啟動級別,執行對應目錄底下的腳本,最后執行/etc/rc.d/rc.local這個腳本,至此,系統啟動完成。
Runlevel
runlevel,運行級別,不同的級別會啟動的服務不一樣,init會根據定義的級別去執行相應目錄下的腳本,Linux的啟動級別分為以下幾種
0:關機模式
1:單一用戶模式(直接以管理員身份進入)
2:多用戶模式(無網絡)
3:多用戶模式(命令行)
4:保留
5:多用戶模式(圖形界面)
6:重啟
在不同的運行級別下,/etc/rc.d/rc這個腳本會分別執行不同目錄下的腳本
- Run level 0 – /etc/rc.d/rc0.d/
- Run level 1 – /etc/rc.d/rc1.d/
- Run level 2 – /etc/rc.d/rc2.d/
- Run level 3 – /etc/rc.d/rc3.d/
- Run level 4 – /etc/rc.d/rc4.d/
- Run level 5 – /etc/rc.d/rc5.d/
- Run level 6 – /etc/rc.d/rc6.d/
總結
以上是生活随笔為你收集整理的linux 磁盘检测卡主_Linux启动过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vs找不到dll_零基础学习Python
- 下一篇: python template用法_py