CentOS啟動流程

  我們介紹一下CentOS操作系統的詳細啟動流程,了解這些啟動流程之后,我們可以實驗做一個小型的Linux。

763_f97_e38.jpg

1、Linux的組成

  我們Linux操作系統主要內核和根文件系統來組成的,那么內核的主要功能分別有:進程管理、內存管理、網絡協議棧、文件系統、安全功能、驅動程序組成,那么部署內核的地方就叫核心文件那么核心文件稱之為bzimage,在/boot分區目錄下,名為vmlinuz-VERSION,它是一個可引導的、壓縮的一個內核,是開機時加載的重要的一環。它們的組成部分分為兩類,一類內核文件,一類時模塊文件,內個文件在/boot/vmlinuz-VERSION-realease,而模塊文件在/lib/modules/VERSION-release中,如果我們編譯安裝新的內核版本時,系統將會有多個目錄版本。

2、Linux的運行環境

  在內核的運行的環境當中可分為兩個層次,一類是內核空間,一類是用戶空間,內核空間主要是內核代碼,運行時作為系統調用,而用戶空間主要是那些應用的空間,運行時可作為進程或線程。Linux的內核設計是單內核的設計,內核設計流派總的來說分為兩類,一個是單內核設計,而單內核的設計是把所有功能集成與同一個程序,另一類是微內核設計,就是將每種功能都由它的子功能來實現,其采用微內核的操作系統有:Windows和Solaris。  
但是Linux內核又汲取了微內核的特性,其特性就是支持模塊化,意思就是在用戶編譯內核
duKnnmM.png時,不必要把所有功能全部都打在一個內核文件中,我們可以把某個功能編譯成一個模塊放在那個路徑里中,等到我們需要時可以安裝,不63918611gw1f8xtex8dz4j209u0hwwfa.jpg需要重新編譯,所以,Linux的內核支持模塊運行時動態裝載與卸載。  
  再說一下ramdisk,它是一個輔助性的文件,在CentOS 5中名字叫作Sysn init,配置文件在
/etc/inittab,主要作用就是設置運行級別然后啟動第一個進程init,Sysv init早期在Unix上流傳下來的,不過由于啟動太慢,主要不是并行啟動,且還要緩沖,所以在CentOS
 6中使用的Upstart,它是一個并行啟動的一個程序,早期用于ubuntu,后來用于CentOS上,它的啟動速度比CentOS快的很多,因為它的CentOS 5的
initrd在CentOS 6上換成了initramfs由原來的模擬磁盤換成了模擬文件系統,這是一種提速機制,一旦轉換成文件系統的話就不需要進行緩沖了。  
  現在的CentOS 7中,采用了全新的一種啟動軟件,叫systemd,與之前的版本改變很大,管理起來也是全新的模式,不過啟動速度比5和6還要快,因為它只是檢測,檢測到在的話,就檢測下一個程序,并不讓這個程序啟動起來。

3、Linux的啟動流程

  現在說一下CentOS的啟動流程,這里主要還是以6為主,且只使用PC架構。

3.1、POST加電自檢

  第一步,在我們開機時,或者說我們插上電時,PC機會自我檢查一下它們的零件組成結構有沒有缺失,如果零件缺失那么我們的主機豈不是啟動不了啦?其實duKnnmM.png對于啟動PC來說每一步都挺重要的。那么有誰來管理?在我們的主板上有個CMOS斷電時那個紐扣電池來給它們供電保持運行,在CMOS中有個小型系統,叫做BIOS,叫基本輸出輸出系統,如果說對硬件設置或者說開啟支持虛擬化的話,就要進入這個小型系統設置,以上這些叫加電自檢(POST)。

3.2、Boot Sequence(啟動次序)

  第二步就是它的啟動次序  (Boot Sequence)按次序查找引導設備,第一個有引導程序的設備就在本次要用到的設備,其主要的程序是bootloader,它是一個引導加載器,是安裝在U盤、硬盤上的第一個程序,那么我們操作系統在啟動時,通常都是靠bootloader來啟動的,在MBR上占據446個字節,通常我們在安裝系統時,操作系統的引導啟動程序都寫進這個bootloader里,Windows和Linux都使用不同的引導程序,前者使用ntloader,后者使用的時grub,我們來講后者。

3.3、MBR

  第三步MBR叫做主引導記錄,共有512個字節,位于第一個扇區上,這個扇區是不能更改的,其中446個字節是我們在安裝操作系統時寫的bootloader,64位是分區表,最后2位是驗證。  
在我們安裝Linux時,安裝引導程序的叫grub,以下共分為三段:  
  1st_stage:主要寫進了bootloader 
  1.5_st_stage:讓1st_stage區識別2stage所在的系統分區(/boot/grub)  
  2_stage:放置在某個分區的路徑下(/boot/grub)  
  功能時提供一個菜單界面,允許用戶選擇不同的操作系統與內核,一旦選擇完成之后,內核就放在一個RAM中一個特定的空間里,展開與解壓之后將系統控制權移交給內核。

3.4、Kernel

  第四步Kernel是Linux的核心,它是將硬件調用起來,并且驅動它們發揮它們的用處的一個程序,用戶在grub中選擇完成之后,內核就會開始自身初始化,然后探測可識別所有的硬件設備,之后我們借助ramdisk來進行加載驅動(ramdisk是一個輔助性的文件,它是一個在內存中的模擬根文件系統用來使內核初始化,這個文件可以沒有,不過前提是你的內核能夠直接驅動rootfs下的所有設備。),以只讀方式掛載根文件系統,等內核加載完成之后,系統就開始施行根切換。并且運行用戶空間中的第一個程序:/sbin/init。

3.5、init

  我們都說上帝是不管這些個人間的那些俗物,就像內核一樣,它也并不管用戶空間里所運行的程序,所以就派出了一個大管家,叫做init,它是所有進程的父進程,并且就是內核初始化之后在用戶空間中運行的第一個程序,它的程序類型在各個版本上也有所不同,在CentOS 5 中叫sysv init,配置文件在/etc/inittab,在CentOS 6中使用的時Upstart,不過為了兼容CentOS 5,其配置文件也是在/etc/inittab中,不過和5不同的是,里面的內容已經很少了,真正的配置文件在  /etc/init/*.conf,新版的CentOS 7使用的是使用的時systemd,就連父進程由原來的init改成了systemd,其配置文件在/usr/lib/systemd/system以及/etc/systemd/system里面有諸多文件,可需備份。我們是根據這個配置文件的默認運行級別在關閉某些服務,之后在開啟這個級別下的服務,啟動登陸終端,登陸成功之后運行CTL或者是GUI界面,這幅圖供參考。

6c9c694dbfcedfb1effa1c2665cb73f9_03fe4502-7eb5-4bc2-93b0-11106ca493f3.png

原創文章,作者:劉 祥宇,如若轉載,請注明出處:http://www.www58058.com/62552

(1)
劉 祥宇劉 祥宇
上一篇 2016-12-04
下一篇 2016-12-04

相關推薦

  • 網卡別名與多網卡綁定

    網卡別名 一塊網卡可以配置多個ip地址,叫做網卡別名   對虛擬主機有用 格式形如:eth0:1  eth0:2 …… 實現方法:   在命令行中臨時設置: ifconfig 命令: ifconfig eth0:0 192.168.1.100/24 演示:   修改配置文件 在/etc/sysconfig/networ…

    Linux干貨 2016-09-05
  • 推薦-Centos常用的進程管理和資源查看工具

    一、pstree     pstree命令以樹狀圖的方式展現進程之間的派生關系 -a:顯示每個程序的完整指令,包含路徑,參數或是常駐服務的標示;  -c:不使用精簡標示法;  -G:使用VT100終端機的列繪圖字符;  -h:列出樹狀圖時,特別標明現在執行的程序;  -H<…

    Linux干貨 2016-04-05
  • day7作業練習

    1、顯示當前系統root、mage或wang用戶的UID和默認shell  2、找出/etc/rc.d/init.d/functions文件中行首為某單詞(包 括下劃線)后面跟一個小括號的行  3、使用egrep取出/etc/rc.d/init.d/functions中其基名     v …

    系統運維 2016-08-08
  • 網絡N23期第四周grep

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost ~]# cp -R /etc/skel /home/tuser1 && chmod g-r,o-r /home/tuser1 [root@localhost ~]# ls -l…

    系統運維 2016-12-05
  • 常用大數據詞匯中英文對照表

    A 聚合(Aggregation) – 搜索、合并、顯示數據的過程 算法(Algorithms) – 可以完成某種數據分析的數學公式 分析法(Analytics) – 用于發現數據的內在涵義 異 常檢測(Anomaly detection) – 在數據集中搜索與預期模式或行為不匹配的數據項。除了“Anomalies”,用來表示異常的詞有以下幾種:outlie…

    Linux干貨 2015-03-10
  • 常用的MySQL數據庫備份

    常用的MySQL數據庫備份方式 前言 為什么需要備份數據? 數據的備份類型 MySQL備份數據的方式 備份需要考慮的問題 設計合適的備份策略 實戰演練 使用cp進行備份 使用mysqldump+復制BINARY LOG備份 使用lvm2快照備份數據 使用Xtrabackup備份 總結 前言 我們試著想一想, 在生產環境中什么最重要?如果我們服務器的硬件壞了可…

    2016-10-01
欧美性久久久久