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 19:12
下一篇 2016-12-04 20:16

相關推薦

  • 程序包管理rpm

    Linux程序包管理      API:Application Program Interface      ABI:Application Binary Interface         Unix…

    Linux干貨 2016-08-23
  • DNS基礎知識

    一、DNS介紹:   1、DNS: Domain  Name Service,域名解析服務;      部署方式為分布式部署,如圖所示:        2、查詢類型:     遞歸查詢:僅發出一次請求,要求對方回復最終結果&nbs…

    Linux干貨 2015-05-18
  • 4th work

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何訪問權限。 [root@localhost etc]# cp -r /etc/skel/ /home/tuser1 [root@localhost etc]# chmod go-rwx /home/tuser1/ 2、編輯/etc/gr…

    Linux干貨 2017-10-09
  • DHCP使用幫助

    bootp 想要通過tcp/ip模型進行網絡通信需要有一個ip地址,IP地址是屬于操作系統的,所以沒有操作系統就沒有ip 為了解決這種問題,有一種網卡可以不需要操作系統就能獲取到ip bootp:只有第一次是動態獲得,以后ip地址就是和mac地址綁定的,不能分配給其他主機 DHCP:DHCP是bootp的改進版,主要引入了租約的定義 DHCP也可以根據mac…

    Linux干貨 2016-11-11
  • Linux發行版本介紹與哲學思想

    1.Linux發行版本介紹 Linux 發行版(英語:Linux distribution,也被叫做GNU/Linux 發行版),為一般用戶預先集成好的Linux操作系統及各種應用軟件。一般用戶不需要重新編譯,在直接安裝之后,只需要小幅度更改設置就可以使用,通常以軟件包管理系統來進行應用軟件的管理。 1.服務器版本:Centos/Debian 從Red Ha…

    Linux干貨 2016-10-28
  • vim文本編輯器之快捷鍵滿天飛

    vim文本編輯器不同于nano的是其功能非常強大,強大的功能還支持各種快捷鍵,讓我們編輯文本的時候更方便更快捷。 本文將會按照下圖所展示的功能來對命令一一講解,           打開文件:       &n…

    Linux干貨 2016-08-11
欧美性久久久久