亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

CentOS系統啟動流程

發布時間:2020-07-19 00:31:49 來源:網絡 閱讀:154 作者:呆呆的小豬 欄目:系統運維

CentOS系統啟動流程
Linux系統的組成部分
Linux系統的組成部分:內核+根文件系統
內核:進程管理,內存管理,網絡協議棧,文件系統,驅動程序,安全功能
內核設計流派:
單內核設計:把所有功能集成同一個程序
微內核設計:每種功能使用一個單獨的子系統實現
linux內核特點:支持模塊化: .ko(kernel object)
支持模塊運行時動態裝卸或卸載
組成部分:
核心文件: /boot/vmlinuz-VERSION-release
ramdisk:CentOS 5:/boot/initrd-VERSION-release.img
CentOS 6,7:/boot/initramfs-VERSION-release.img
模塊文件:/lib/modules/VERSION-release
運行中的系統環境可分為兩層:內核空間、用戶空間
用戶空間:應用程序(進程或線程)
內核空間:內核代碼(系統調用)

CentOS 系統的啟動流程
1.加載BIOS的硬件信息,獲取第一個啟動設備
2.讀取第一個啟動設備MBR的引導加載程序(grub)的啟動信息
3.加載核心操作系統的核心信息,核心開始解壓縮,并嘗試驅動所有的硬件設備
4.核心執行init程序,并獲取默認的運行信息
5.init程序執行/etc/rc.d/rc.sysinit文件
6.啟動核心的外掛模塊
7.init執行運行的各個批處理文件(scripts)
8.init執行/etc/rc.d/rc.local
9.執行/bin/login程序,等待用戶登錄
10.登錄之后開始以shell控制主機
詳細說明啟動流程
1..加載BIOS的硬件信息,獲取第一個啟動設備:
POST,加電自檢是BIOS功能的一個主要部分,負責完成對CPU,主板,內存,硬盤子系統,顯示子系統,串并行接口,鍵盤等硬件情況的檢測
ROM:BIOS,保存著有關計算機系統最重要的基本輸入輸出程序,系統信息設置,開機加電自檢程序和系統啟動自舉等
RAM:CMOS互補金屬氧化物半導體,保存各項參數的設定
按次序查找引導設備,第一個有引導程序的設備為本次啟動設備
bootloader:引導加載器,程序;
Windows:ntloader
Linux:
LILO:LIinux LOader
GRUB:Grand Uniform Bootloader
GRUB 0.X:Grub Legacy
GRUB 1.X:Grub2
功能:提供一個菜單,允許用戶選擇要啟動的系統或不同的內核版本; 把用戶選定的內核裝載到RAM中的特定空間中,解壓、展開,而后把系統控制權移交給內核
2.讀取第一個啟動設備MBR的引導加載程序(grub)的啟動信息

MBR:第一個扇區
前446字節:bootloader
中間64字節:分區表
最后2字節:55AA

GRUB:
bootloader:1st stage
Partition:filesystem driver, 1.5 stage
Partition:/boot/grub, 2nd stage
3.加載核心操作系統的核心信息,核心開始解壓縮,并嘗試驅動所有的硬件設備

Kernel:
自身初始化:
探測可識別到的所有硬件設備
加載硬件驅動程序
以只讀方式掛載根文件系統
運行用戶空間的第一個應用程序:/sbin/init
init程序的類型:
Centos5-:SysV int
配置文件:/etc/inittab
Centos6:Upstart
配置文件:/etc/inittab
/etc/init/*.conf
CentOS 7:Systemd
配置文件:/usr/lib/systemd/system/, /etc/systemd/system/
ramdisk:
Linux內核的特性之一:使用緩沖和緩存來加速對磁盤上的文件訪問;
ramdisk --> ramfs
CentOS 5: initrd
工具程序:mkinitrd
CentOS 6,7: initramfs
工具程序:dracut, mkinitrd
4.核心執行init程序,并獲取默認的運行信息
init 程序的類型:

1.SysV: init, 在CentOS 5中的開機速度是最慢的原因是采用SysV init方式,其特點是啟動用戶空間的服務程序,通常通過腳本進行,有依賴關系的服務將被串行啟動。

(1)運行級別:為了系統的運行或維護等目的而設定的機制;
0-6:7個級別;
0:關機, shutdown
1:單用戶模式(single user),root用戶,無須認證;維護模式;
2:多用戶模式(multi user),會啟動網絡功能,但不會啟動NFS;維護模式;
3:多用戶模式(mutli user),完全功能模式;文本界面;
4:預留級別:目前無特別使用目的,但習慣以同3級別功能使用;
5:多用戶模式(multi user), 完全功能模式,圖形界面;
6:重啟,reboot
默認級別:3, 5
級別切換:init #
級別查看:
who -r
runlevel
(2)配置文件:/etc/inittab
每行定義一種action以及與之對應的process
id:runlevels:action:process
id:一個任務的標識符;
runlevels:在哪些級別啟動此任務;#,###,也可以為空,表示所有級別;
action:在什么條件下啟動此任務;
process:任務;
action:
wait:等待切換至此任務所在的級別時執行一次;
respawn:一旦此任務終止,就自動重新啟動之;
initdefault:設定默認運行級別;此時,process省略;
sysinit:設定系統初始化方式,此處一般為指定/etc/rc.d/rc.sysinit腳本;
2.Upstart: init,CentOS 6 #CentOS 6的開機速度比5會快一些因為他采用的是Upstart的方法雖然你見到的名字還叫做init但是很多機制都是采用ubuntu開發的Upstart這個機制,特點是守護進程間的通信依賴于D-Bus進行,因此可基本實現類似的并行啟動
init程序:upstart,但依然為/sbin/init,其配置文件:
/etc/init/.conf, /etc/inittab(僅用于定義默認運行級別)
.conf為upstart風格的配置文件;
3.Systemd :systemd, CentOS 7 #在7中的啟動速度最快的原因是采用Systemd的方式,其特點是服務只有第一次被訪問時才會真正的啟動起來
核心概念:unit,unit由其相關配置文件進行標識、識別和配置;文件中主要包含了系統服務、監聽的socket、保存的快照以及其它與init相關的信息;
這些配置文件主要保存在:
/usr/lib/systemd/system
/run/systemd/system
/etc/systemd/system
unit的常見類型:
Service unit:文件擴展名為.service,用于定義系統服務;
Target unit:文件擴展為.target,用于模擬實現“運行級別”;
Device unit: .device,用于定義內核識別的設備;
Mount unit: .mount,定義文件系統掛載點;
Socket unit: .socket,用于標識進程間通信用到的socket文件;
Snapshot unit: .snapshot, 管理系統快照;
Swap unit: .swap, 用于標識swap設備;
Automount unit: .automount,文件系統自動點設備;
Path unit: .path, 用于定義文件系統中的一文件或目錄;
關鍵特性:
基于socket的激活機制:socket與程序分離;
基于bus的激活機制;
基于device的激活機制;
基于Path的激活機制;
系統快照:保存各unit的當前狀態信息于持久存儲設備中;
向后兼容sysv init腳本;/etc/init.d/
不兼容:
systemctl的命令是固定不變的;
非由systemd啟動的服務,systemctl無法與之通信;
5.init程序執行/etc/rc.d/rc.sysinit文件

系統初始化腳本:/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) 清理操作;
6.啟動核心的外掛模塊
7init 執行運行的各個批處理文件(scripts)

    在系統/etc/rc.d/rc.sysinit初始化完成系統之后,此時系統就已經可以正常工作了,只是還缺少啟動時所需要的各項服務,這樣主機才能提供一些我們需要的功能,如網絡服務、dhcp服務等功能這里通過inittab里面提到的l3:3:wait:/etc/rc.d/rc 3配置了,而這里其實是通過/etc/rc.d/rc3.d/下所有鏈接文件來決定如何啟動或關閉服務;素有以S開頭的都被傳遞start參數啟動,所有以K開頭的,都被傳遞stop參數以停止。
    而/etc/rc.d/rc3.d/下的所有鏈接文件都是在/etc/init下面的所有腳本,而這些腳本都必須至少接受四個最基本的參數,{start|stop|status|restart}
    意味著去啟動或關閉/etc/rc.d/rc3.d/目錄下的服務腳本所控制服務;
            K*:要停止的服務;K##*,優先級,數字越小,越是優先關閉;依賴的服務先關閉,而后關閉被依賴的;
            S*:要啟動的服務;S##*,優先級,數字越小,越是優先啟動;被依賴的服務先啟動,而依賴的服務后啟動;
  rc腳本:接受一個運行級別數字為參數;
        /etc/init.d/* (/etc/rc.d/init.d/*)腳本執行方式:
                /etc/init.d/SRV_SCRIPT  {start|stop|restart|status}
              service  SRV_SCRIPT   {start|stop|restart|status}
    chkconfig命令:管控/etc/init.d/每個服務腳本在各級別下的啟動或關閉狀態;
                                        查看:chkconfig  --list   [name]
                                        添加:chkconfig  --add  name
            能被添加的服務的腳本定義格式之一:
                                 #!/bin/bash
                                 #
                                 # chkconfig: LLL  NN NN
                                # description:  
                                 刪除:chkconfig  --del  name
            修改指定的鏈接類型:
                    chkconfig  [--level  LEVELS]  name  <on|off|reset>
                 --level LEVELS:指定要控制的級別;默認為2345;

8.init 執行/etc/rc.d/rc.local
注意:正常級別下,最后啟動的一個服務S99local沒有鏈接至/etc/init.d下的某腳本,而是鏈接至了/etc/rc.d/rc.local (/etc/rc.local)腳本;因此,不便或不需寫為服務腳本的程序期望能開機自動運行時,直接放置于此腳本文件中即可。
? /etc/rc.d/rc.local 在指定運行級別腳本后運行
? 可以根據情況,進行自定義修改
9執行/bin/login 程序,等待用戶登錄
10登錄之后開始以Shell控制主機

CentOS 6 啟動流程:POST --> Boot Sequence(BIOS) --> Boot Loader -->Kernel(ramdisk) --> rootfs --> switchroot --> /sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 別 設定默認運行級別 --> 系統初始化腳本 rc.sysinit --> 務 關閉或啟動對應級別的服務 --> 啟動終端

向AI問一下細節

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

AI

文安县| 白山市| 武隆县| 大宁县| 新乡县| 蛟河市| 措勤县| 磐安县| 泽库县| 乳山市| 泾川县| 柘荣县| 越西县| 九龙县| 武义县| 来安县| 电白县| 福贡县| 会理县| 基隆市| 台湾省| 东乡| 桃园县| 晋江市| 泰宁县| 梁山县| 湖州市| 宜都市| 公安县| 全椒县| 拜城县| 阳新县| 兰坪| 乐山市| 井冈山市| 五大连池市| 哈尔滨市| 福清市| 景东| 蛟河市| 苍山县|