CentOS啟動流程

CentOS啟動大致流程:

POST –> BootSequence –> Bootloader –> kernel –> rootfs –> switchroot –> /sbin/init –> (/etc/inittab;/etc/init/*.conf) –> 設定默認運行級別 –> 系統初始化腳本 –> 關閉或啟動對應級別下的服務 –> 啟動終端

  • POST:Power-On-Self-Test,加電自檢,是BIOS功能的一個主要部分。負責完成對CPU、主板、內存、硬盤子系統、顯示子系統、串并行接口、鍵盤、CD-ROM光驅等硬件情況的檢測 。

    1. ROM(服務器沒有):BIOS ,Basic Input and Output System ,保存著有關計算機系統最重要的基本輸入輸出程序,系統信息設置、開機加電自檢程序和系統啟動自舉程序等。
    2. RAM :CMOS 互補金屬 氧化物半導體,保存各項參數的設定按次序查找引導設備,第一個有引導程序的設備為本次啟動設備
  • BootLoader: 引導加載器,引導程序

    1. windows: ntloader ,僅是啟動OS
    2. Linux :功能豐富,提供菜單,允許用戶選擇要啟動系統或不同的內核版本;把用戶選定的內核裝載到內存中的特定空間中,解壓、展開,并把系統控制權移交給內核

      1. LILO :LInux LOader
      2. GRUB: GRand Unified Bootloader
        版本:GRUB 0.X: GRUB Legacy,GRUB2
    3. MBR:整個硬盤的第一個扇區
      446: bootloader, 64: 分區表, 2: 55AA
    4. GRUB:
      primary bootloader : 1st stage ,1.5 stage
      secondary bootloader :2nd stage ,配置文件:/boot/grub/grub.config <– /etc/grub.conf
  • kernel:
    自身初始化:

    1. 探測可識別到的所有硬件設備
    2. 加載硬件驅動程序(借助于ramdisk 加載驅動)分3個地方存放所有的驅動。
    3. 以只讀方式掛載根文件系統
      /boot/initramfs-… 安裝操作系統的時候生成,存放掛載根需要的文件系統
    4. 運行用戶空間的第一個應用程序:/sbin/init
  • rootfs:
    庫(glibc)

    1. 函數集合,function,接口調用
    2. 過程調用:procedure
    3. 函數調用:function

涉及內容

init程序類型:

  1. SysV:init,CentOS 5
    配置文件:/etc/inittab
  2. Upstart:init,CentOS 6
    配置文件:/etc/inittab;/etc/init /xxx.conf
  3. systemd(仿照IOS):systemd,CentOS 7
    配置文件:/usr/lib/systemd/system;/etc/systemd/system

ramdisk:
內核中的特性之一:使用緩沖和緩存來加速對磁盤上的文件訪問,并加載相應的硬件驅動

  • ramdisk –> ramfs 提高速度
  • CentOS 5: /boot/initrd-VERSION-release.img
    工具程序:mkinitrd
  • CentOS 6 ,7: /boot/initramfs-VERSION-release.img
    工具程序:mkinitrd, dracut

內核設計

  • 單內核設計:所有功能集成于一個程序,效率高,安全性低。
    例如:Linux
  • 微內核設計:每種功能使用一個單獨子系統實現,效率低,安全性高。
    例如:Windows,Solaris

Linux系統運行級別(CentOS 5 為例)
0:關機
1:單用戶模式(root,無需登錄),single,維護模式
2:多用戶模式,啟動網絡功能,不啟動NFS(維護模式)
3:多用戶模式,正常模式。
4:同3,暫無用。
5:多用戶模式;圖形界面
6:重啟
切換級別:init 0-6 查看級別:runlevel ; who -r

  • 配置文件:/etc/inittab (每一行定義一種action)

    • 格式:id:runlevel:action:process

      • attion:
        wait:切換至次級別運行一次
        respawn:此process終止,重新啟動之
        initdefault:設定默認運行級別;process省略
        sysinit:設定系統初始化方,此處一般指定/etc/rc.d/rc.sysinit
    • 例:
      l0:0:wait:/etc/rc.d/rc 0
      l1:2:wait:/etc/rc.d/rc 1

相關服務

  • 查看服務在所有級別的啟動或關閉設定情形(chkconfig命令)
    chkconfig –list
    chkconfig — level 3 NetworkManager off
    SysV的服務腳本放置于/etc/rc.d/init.d(/etc/init.d)

  • 添加: chkconfig — add name
    刪除:chkconfig –del name
    修改:chkconfig –level LLLL name on

  • 正常級別下,最后啟動的服務 S99local 沒有連接至/etc/rc.d/init.d一個服務腳本,而是指向了/etc/rc.d/rc.local腳本;因此不便或不需要寫為服務腳本放置于/etc/rc.d/init.d/目錄,且又想開機時自動運行的命令,可直接放置于/etc/rc.d/rc.local文件中。

    • 查看:
      ll /etc/rc.d/rc3.d/S99local
      cat /etc/rc.d/rc.local

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

(0)
kstg5663294kstg5663294
上一篇 2017-07-12 17:14
下一篇 2017-07-12 20:17

相關推薦

欧美性久久久久