centos 6系統啟動流程分析

linux 系統啟動流程:

之前有描述過linux的啟動流程,但還有許多模糊的地方,經過一段時間了學習,查資料,看腳本,比初次理解更深,可以將上次模糊或不足的地方描述得比較清楚一些。

先看一張啟動流程圖。

 centos 6系統啟動流程分析

分析:

linux系統的啟動流程大概可以分為兩大部分:

第一部分為內核空間的啟動

第二部分為用戶空間的啟動

其中,內核空間的啟動主要可為分四個主要的階段:

post –>  mbr  –> grub   –>  kernel

用戶空間的啟動,也主要分四個階段:

inittab –> sysinit –> runlevel –> rc.local ; mingetty ;login

 

下邊我將盡已所能,將每個過程描述清楚。

 

內核空間啟動的四個階段:

第一個階段 post:

主機通電之后,運行的第一個程序,就是bios,全稱base input output system,這個程序是集成在主板的rom中,運行起來后,就要先跑一次post代碼,進行最基本的檢查,主要檢查主機的硬件是否正常,若不正常,將會報錯并不再進行下一步。

 

第二階段  裝載MBR

post代碼執行完后,就會將bios中設定好的啟動順序,將第一個活動的設備的MBR加載至內存中,MBR446字節為linux中的主導引程序grubstage1。至此,bios的任務完成。

 

 

第三階段  裝載grub引導啟動程序

MBRgrubstage1加載到內存中后,又會繼續讀取第一個扇區512字節后的大概27個扇區,這個范圍內,正是stage1_5所在的階段。stage1_5階段,存儲了/boot分區的文件系統驅動,加載到此驅動后,才能去加載/boot分區中的stage2階段。至此,整個linux的引導啟動程序grub加載完成

 

第四階段  加載kernel

grub的配置文件grub.conf中,已經指明了kernel的位置以及initramfs的位置,能加載kernel,并且掛載initramfs已經是板上釘釘的事,接下來的事,只需要借助initramfs這個偽根文件系統中存儲的驅動,去掛載真正的“/”文件系統,需要注意的是,此時“/”文件系統是以只讀方式掛載的。下一步,將會啟動系統的第一個程序:/sbin/init,init進程起來之后,下接來要做的事,就歸屬于用戶空間了。

 

用戶空間啟動的四個階段:

第一階段:

/sbin/init程序運行為init進程后,第一件事,就是去讀取配置文件/etc/inittab/etc/init目錄下的*.conf文件,按照這些配置文件的定義,去完成系統的初始化。

 

第二階段:

根據init程序配置文件的定義,在任何運行級別下運行/etc/rc.d/sysinit腳本。此腳本主要完成的工作如下有設置主機名,主機時間,根據/etc/fstab中的定義,掛載指定的文件系統,“/”文件系統也被重新以只讀的方式掛載,激活LVMsortware raid這些虛擬設備,激活swap設備,加載額外的驅動程序,清理此前這些操作產生的無用的文件。

 

第三階段:

執行完init程序配置文件中指定運行的sysinit腳本后,將會根據確定的運行級別,運行相應的運行級別下的腳本,啟動對應的服務,關閉對應的服務。

linux每個運行級別下,設置啟動的服務都不相同,大概有幾種級別:

0:關機

1:單用戶模式或救援模式

2:多用戶模式,多用于維護,且沒有NFS

3: 多用戶模式,正常模式,平時用得最多的就是這個

4:保留

5:圖形界面

6:重啟

執行完相應的運行級別的腳本后,還要執行用戶定義在rc.local中的命令。執行mingettty,開啟6個終端,提示用戶輸入用戶名和密碼進行登陸。至此,整個系統啟動流程結束。

 

 

 

 

 

 

 

 

 

 

原創文章,作者:old_radish,如若轉載,請注明出處:http://www.www58058.com/75713

(0)
old_radishold_radish
上一篇 2017-05-15 11:38
下一篇 2017-05-15 12:05

相關推薦

  • OSI七層模型

      OSI模型的七層結構 首先,OSI是什么呢?OSI(Open System Interconnection),OSI是一個開放性的通行系統互連參考模型,是一個協議規范。它把網絡協議從邏輯上分為了7層。每一層都有相關、相對應的物理設備。OSI七層模型是一種框架性的設計方法 ,建立七層模型的主要目的是為解決異種網絡互連時所遇到的兼容性問題,其最主要…

    2017-09-02
  • 0804正則表達式作業

    用正則表達式表示IP地址         首先來分析一下,制IP地址是一個32位的二進制數,通常被分割為4個“8位二進制數”(也就是4個字節)。IP地址通常用“點分十進制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之間的十進制整數。例:點分十進IP地址(1…

    Linux干貨 2016-08-10
  • N26-第一周作業

    1、描述計算機的組成及其功能;  計算機組成部分分為硬件及軟件。  硬件:  計算機硬件主要有五大部分組成:運算器、控制器、存儲器、輸入設備、輸出設備;  1)運算器、控制器,統稱為處理器,也就是CPU:    主要功能是對各種數據進行運算,包括加、減、乘、除的算術運算,還包括進行邏輯判斷的能力,如…

    Linux干貨 2016-12-31
  • Python之入門篇

    一、環境準備 環境準備 –> pyenv (安裝python解釋器,管理Python版本,管理python虛擬環境) https://github.com/pyenv/pyenv https://github.com/yyuu/pyenv-installer # yum -y install git # curl -L https://ra…

    Linux干貨 2017-02-05
  • tomcat-session server實現

    要求:tomcat cluster將會話保存至memcached中 1、利用nginx反代 2、兩臺tomcat服務器 3、兩臺memcache服務器 拓撲:      架構前配置:      1、反代服務器:nginx     &nbsp…

    2017-07-03
  • 馬哥教育網絡班21期第9周課程練習

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash # declare -i nologin_user;other_user all_users=`awk -F':'…

    Linux干貨 2016-09-19
欧美性久久久久