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
下一篇 2017-07-12

相關推薦

  • 8.10作業

    1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。 echo  "your host is `hostname` " echo  "ip address is `ifconfig | sed -n…

    Linux干貨 2016-08-15
  • Zabbix通過郵件報警

                    Zabbix通過郵件報警 前言 本篇文章轉自我的個人博客 http://anyisalin.com 歡迎大家訪問 這次的內容大部分都是操作, 但是大家需要對定…

    2016-05-13
  • Linux系統修復

    在boot里面我們可以根據自己的需求去設置一些啟動選項,我們今天來了解一下Linux啟動流程,以及boot下的選項。       加載BIOS的硬件信息,獲取第一個啟動設備。 讀取第一個啟動設備MBR的引導加載程序(grub)的啟動信息 加載核心操作系統的核心信息,核心開始解壓縮,并嘗試驅動所有的硬件設備。 核型執行init程序…

    Linux干貨 2016-09-13
  • 三次握手和四次揮手

    TCP三次握手:                              &n…

    2017-09-02
  • 【26期】Linux第五周學習小總結

        第五周的學習內容很豐富, 從查找到壓縮打包,到軟件包的管理,其中尤其是以壓縮的內容最為豐富,而且龐大的選項讓人絕望,那我今天就總結了一下壓縮的一些東西,和大家一起分享。     為什么會產生壓縮工具呢?因為我們的現在的很多文件會利用到的東西很多,電腦的讀存速度也越來越快,一些大的文件在傳輸和使用上就會很麻煩,雖…

    2017-08-12
  • 第三周練習

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次: who | cut -d” ” -f1 | uniq 2、取出最后登錄到當前系統的用戶的相關信息 id `last | head -1 | cut -d” ” -f1` 3、列出當前系統上被用戶當作默認shell的最多的那個shell cut -d: -f7 /etc/p…

    Linux干貨 2017-07-16
欧美性久久久久