中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CentOS 啟動流程

發布時間:2020-06-26 17:28:30 來源:網絡 閱讀:368 作者:Jonews 欄目:移動開發

流程圖:

   系統初始化流程:

POST --> Boot Sequence(BIOS) --> Boot Loader (MBR) --> Kernel(ramdisk) --> rootfs --> switchroot --> /sbin/init 

  用戶空間初始化流程:

 /sbin/init [/etc/inittab或/etc/init/*.conf]--> /etc/rc.d/rc.sysinit --> /etc/rc.d/rc0-9.d --> /etc/rc.local

 設置默認運行級別 --> 運行系統初始化腳本,完成系統初始化 --> 關閉對應級別下需要停止的服務,啟動對應級別下需要開啟的服務 --> 設置登錄終端 --> 啟動圖形終端


概述啟動流程:

    一:post加電自檢,將BIOS映射進CPU可以查找的線性地址空間,使得cpu可以讀取主板上rom設備中的BIOS程序,通過rom加載內存(ram)并檢查當前設備硬件是否存在

    二:BootSequence按次序查找各引導設備,根據BIOS中設置的啟動次序去加載對應設備的MBR

    三:bootloader根據MBR的分區表,查找操作系統所在的分區,并通過grub加載操作系統的內核,此時將內核裝載入內存,在內存中解壓縮

    四:kernel進行自身初始化,探測可識別的硬件設備,并借助ramdisk加載boot目錄下的initrd或initramfs文件中裝載驅動模塊(ramdisk中包含著initrd或initramfs)

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

    六:運行/etc/inittab中的程序設定默認運行級別

    七:運行/etc/rc.d/rc.sysinit系統初始化腳本

    八:運行/etc/rc.d/rc0-9.d 關閉或啟動對應級別下的服務

    九:運行/etc/rc.local系統初始化完成以后,程序自動加載的最后一個腳本

詳細剖析:

    一:POST加電自檢將BIOS映射進CPU可以查找的線性地址空間,使得cpu可以讀取主板上rom設備中的程序BIOS,通過rom加載內存(ram)并檢查當前設備硬件是否存在

  二:BootSequence按次序查找各引導設備,根據BIOS中設置的啟動次序去加載對應設備的MBR

            MBR:Master Boot Record (512bytes)

            446bytes:存放bootloader

            64bytes:存放分區表

            2byte:判斷MBR是否有效的標識55AA為有效

       CentOS 啟動流程

  三: bootloader:引導加載器,程序 

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

            (1)Windows上引導加載器:ntloader

            (2)Linux上引導加載器

                   LILO:古老linux加載器,1024柱面之后無法加載,繼而被grub所取代,現在多用于安卓手機啟動

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

                        stage1:grub第一階段存在MBR中,用于引導stage2

                        stage1_5:在MBR之后的扇區中,識別常見的不同的文件系統的

                        stage2:位于/boot/grub目錄下,配置文件是/etc/grub.conf,功用:向上看

                                         CentOS 啟動流程

四:內核初始化:

    當stage2被載入系統執行時,它首先會去解析grub的配置文件/boot/grub/grub.conf,然后加載內核鏡像到內存中,并將控制權轉交給內核,內核會立即初始化系統中各設備并做相關的配置工作,其中包括CPU、I/O、存儲設備等,并且以讀寫的方式掛載根文件系統,此時涉及到一個"先有雞還是先有蛋的問題"

     要想訪問根文件系統(rootfs),首先就得加載根文件系統中的驅動程序,而加載驅動程序需要先掛載根文件系統。為了解決這個問題:Linux設備驅動程序的加載,有一部分驅動程序直接被編譯進內核鏡像中,另一部分則是以模塊的形式存放在initrd(ramdisk)中。內核啟動被分成了兩個階段,第一階段先執行initrd文件系統中的init,完成加載驅動模塊等任務,第二階段才會執行真正的根文件系統中的/sbin/init進程


五:/etc/inittab:設定默認運行級別

    init程序在不同CentOS版本上的類型:

      CentOS-5 SysV init 配置文件:/etc/inittab

      CentOS-6 Upstart   配置文件:/etc/inittab /etc/init/*.conf

      CentOS-7 Systemd   配置文件:/usr/lib/systemd/system, /etc/systemd/system/                 


六:運行系統初始化腳本,完成系統初始化

     運行/etc/rc.d/rc.sysinit

        (1) 設置主機名;

    (2) 設置歡迎信息;

    (3) 激活udev和selinux;

    (4) 掛載/etc/fstab文件中定義的所有文件系統;

    (5) 檢測根文件系統,并以讀寫方式重新掛載根文件系統;

    (6) 設置系統時鐘;

    (7) 根據/etc/sysctl.conf文件來設置內核參數;

    (8) 激活lvm及軟raid設備;

    (9) 激活swap設備;

    (10) 加載額外設備的驅動程序;

    (11) 清理操作;

        

七:關閉或啟動對應級別下的服務/etc/rc.d/rc#.d

       0-6:7個級別;

  0:關機, shutdown

  1:單用戶模式(single user),root用戶,無須認證;維護模式;

  2多用戶模式(multi user),會啟動網絡功能,但不會啟動NFS;維護模式;

  3多用戶模式(mutli user),完全功能模式;文本界面;

  4預留級別:目前無特別使用目的,但習慣以同3級別功能使用;

  5多用戶模式(multi user), 完全功能模式,圖形界面;

  6重啟,reboot

    1) 默認級別:3, 5

    2) 級別切換:init #

    3) 級別查看命令:who -r   runlevel

八:運行/etc/rc.local系統初始化完成以后,程序自動加載的腳本

        系統啟動最后執行的一個腳本


九:啟動終端

   tty1:2345:respawn:/usr/sbin/mingetty tty1

   ... ...

   tty6:2345:respawn:/usr/sbin/mingetty tty6        

(1)mingetty會調用login程序;

(2)打開虛擬終端的程序除了mingetty之外,還有諸如getty等;


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

驻马店市| 讷河市| 册亨县| 晋城| 忻城县| 安陆市| 北辰区| 泾川县| 上思县| 南江县| 漳州市| 新余市| 老河口市| 平武县| 清河县| 洱源县| 调兵山市| 咸宁市| 元谋县| 民丰县| 嘉黎县| 兴业县| 五大连池市| 新昌县| 嘉定区| 蒙山县| 永福县| 葫芦岛市| 三台县| 瑞金市| 浦江县| 伊宁市| 开江县| 南郑县| 大化| 香河县| 安阳县| 清苑县| 无极县| 车致| 德昌县|