Linux系統啓動流程


Linux系統啓動流程


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


系統初始化進程(內核級別):POST-->bootsequence(BIOS)-->bootloader(MBR)-->kernel(ramdisk)-->rootfs(readonly)-->/sbin/init

內核功能:進程管理,內存管理,網絡協議棧,文件系統,驅動程序,安全功能

組成部分:
        核心文件:/boot/vmlinuz-VERSION-release

        ramdisk:
               CentOS 5:/boot/initrd-VERSION-release.img
               CentOS 6,7:/boot/initramfs-VERSION-release.img  
               掛載真正的根文件系統後退出
               內核啓動後加載一個臨時根文件系統(其中僅放一個特定的驅動,動態創建而來)

        模塊文件(驅動):/lib/modules/VERSION-release
                        (/lib/modules/3.10.0-229.el7.x86_64/kernel/kernel[fs])

    CentOS 系統的啓動流程

        POST
                (加電自檢)(代碼在主板上的只讀ROM:CMOS:BIOS:Basic Input and Output System上,用來檢測各個硬件是否存在)
                ROM+RAM
         -->Boot Sequence:
                         按次序查找各引導設備,第一個有引導程序的設備即爲本次啓動要用到的設備
                         bootloader:引導加載器,程序
                                    Windows:ntloader
                                    Linux:
                                          LILO:Linux Loader
                                          grub:grand uniform bootdoader
                                          grub 0.x:grub legacy
                                          grub 1.x:grub2
                                    功能:提供一個菜單,允許用戶選擇要啓動的系統或不同的內核版本:把用戶選定的內核裝載到RAM中的特定空間中,解壓,展開,而後把系統控制權移交給內核;
         --> MBR:master boot record
                             512bytes:
                                     446bytes:bootloader
                                     64bytes:fat 分區表
                                     2bytes:55AA 表示MBR有效否則無效
         -->grub:
                    bootloader:第一階段
                    partition:第1.5階段,文件系統驅動(作用?)
                    partition:/boot/grub 第二階段

         -->Kernel:
                      自身初始化:
                              探測可識別到的所有設備
                              加載硬件驅動程序(有可能會藉助於ramdisk加載驅動)
                              只讀方式掛載根文件系統
                              運行用戶控件的第一個應用程序:/sbin/init
                             

         -->init程序類型:
                           CentOS 5:SysV init
                                  配置文件:/etc/inittable
                           CentOS 6:Upstart
                                  配置文件:/etc/inittable
                                                 /etc/init*.conf
                           CentOS 7:Systemd
                                  配置文件:/usr/lib/systemd/  /etc/systemd/system/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章