CentOS 系統啟動流程[轉載]

Linux(CentOS)系統啟動過程大致按照如下順序:

POST –> BootSequence(BIOS) –>Bootloader(MBR) –>Kernel(ramdisk)–>rootfs(readonly)–>switchroot–>/sbin/init(設置默認運行級別–>運行系統初始化腳本,完成系統初始化–>關閉對應級別下需要停止的服務,啟動對應級別下需要開啟的服務–>設置登陸終端[啟動圖形界面])

1)加電自檢(POST),BIOS啟動引導階段;

     在該過程中實現硬件的初始化以及查找啟動介質;

     從MBR中裝載啟動引導管理器(GRUB)并運行該啟動引導管理;

     MBR才512bytes,所以現在很多都用UEFI,GPT方式咯

2)GRUB(Grand Uniform Bootloader)啟動引導階段;

   功能:提供一個菜單,允許用戶要選擇啟動的不同系統或內核版本,把其內核加載到RAM中的特定空間,解壓、展開,讓后控制權移交給kernel

     裝載stage1

     裝載stage1.5

     裝載stage2(因為MBR很小,所以這里沒有限制哦)

     讀取/boot/grub.conf文件并顯示啟動菜單;

     裝載所選的kernel和initrd文件到內存中

  PS:LILO:支持柱面1024,現在基本都用在android手機,不用再PC機了

3)內核階段:

    探測可識別到所有硬件設備

    加載各種硬件驅動程序;(有可能會借助于randisk加載驅動)

    以只讀方式掛載根文件系統

    運行用戶空間的第一個應用程序:/sbin/init

 ps: ramdisk:Linux 內核特性之一:使用緩沖和緩存來加速對磁盤上的文件訪問:

ramdisk –> ramfs

initramfs — dracut,mkinitrd (CenetOS6,7

4)init用戶空間初始化階段:

     啟動/sbin/init程序;

     運行rc.sysinit腳本,設置系統環境,啟動swap分區,檢查和掛載文件系統;

     讀取/etc/inittab文件,運行在/et/rc.d/rc<#>.d中定義的不同運行級別的服務初始化腳本;

     打開字符終端1-6號控制臺/打開圖形顯示管理,設置登錄

   

  init程序:

CentOS 5 : /ect/inittab

CentOS 6 :Upstart

  /etc/inittab:這個文件已廢

  /etc/init/*.conf,

CentOS 7 : systemd

  配置文件:/usr/lib/systemd/system/, /etc/systemd/system/

CentOS 系統啟動流程[轉載]

http://1992tao.blog.51cto.com/11606804/1852322 

原創文章,作者:不忘初衷,如若轉載,請注明出處:http://www.www58058.com/67262

(0)
不忘初衷不忘初衷
上一篇 2017-01-27 15:13
下一篇 2017-01-30 11:22

相關推薦

  • 文件查找與壓縮-2

    1、tar [OPTION]… (1) 創建歸檔(打包而非壓縮) 其中-c是創建備份,-f是指定創建備份成的文件即是/PATH/TO/SOMEFILE.tar #tar -c -f /PATH/TO/SOMEFILE.tar  FILE… #tar cf / PATH/TO/SOMEFILE.tar FILE… …

    Linux干貨 2016-08-18
  • ?Nginx

    Nginx 概述 yum安裝Nginx 編譯安裝Nginx 主要文件路徑 主配置文件nginx.conf main block:全局配置段 http/https 協議相關配置段 性能優化初步 調試、定位問題的配置 events段配置 worker、method、accept_mutex http協議相關配置段 虛擬主機 基于PORT、IP、Server Na…

    Linux干貨 2016-10-24
  • Linux 進程及作業管理

    一 進程、線程、程序概念 1、進程(Process) 什么是進程,簡單的說,進程是程序的執行實例,即運行中的程序,同時也是程序的一個副本;程序是放置于磁盤的,而運行中的程序是位于內存中的。 2、線程(Thread) 一個進程至少包括一個線程,通常將該線程稱為主線程,所以線程是比進程更小的單位,是系統分配處理器時間資源的基本單元。一個進程要想同時在多顆CPU上…

    Linux干貨 2016-03-15
  • 第九周作業

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; 2、寫一個腳本     (1) 獲取當前主機的主機名,保存于hostname變量中;     (2) 判斷此變量的值是否為loc…

    2017-04-20
  • 馬哥教育網絡班22期+第9周課程練習

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現;            [root@test ~]# vim&nbsp…

    Linux干貨 2016-10-24
  • 磁盤管理之分區管理

                     磁盤管理之分區管理  磁盤一般指的是計算的硬盤,它是計算機五大部件之一,主要用來存儲數據。所有它是計算機不可或缺的部件之一。 常見的硬盤分為固態和…

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