目錄
前言
一、引導程序
1、開機自檢
2、MBR引導
3、GRUB選單
4、加載Linux內核
5、init行程初始化
二、系統初始化行程
1、init行程
2、Systemd
3、系統服務
4、Systemd的目標與SysVinit的運行級別
三、目錄結構
1、/bin
2、/boot
3、/dev
4、/etc
5、/home
6、/lib
7、/lost+found
8、/media
9、/mnt
10、/opt
11、/proc
12、/root
13、/sbin
14、/selinux
15、/srv
16、/sys
17、/tmp
18、/usr
19、/usr/bin
20、/usr/sbin
21、/usr/src
22、/var
23、/run
結語
前言
系統引導是作業系統運行的開始,在用戶能夠正常登錄到系統之前,Linux作業系統的引導程序將完成一系列的初始化任務,并加載必要的程式和命令終端,為用戶登錄做好準備
一、引導程序
Linux作業系統的引導程序一般包括以下幾個階段:開機自檢、MBR引導、GRUB選單、加載Linux內核、init行程初始化
1、開機自檢
服務器主機開機以后,將根據主板BIOS中的設定對CPU(Central Processing Unit,中央處理器) 記憶體、顯卡、鍵盤等設備進行初步檢測,檢測成功后根據預設的啟動順序移交系統控制權,大多時候會移交給本機硬碟
2、MBR引導
當從本機硬碟中啟動系統時,首先根據硬碟第一個扇區中MBR(Master Boot Record,主引導記錄)的設定,將系統控制權傳遞給包含作業系統引導檔案的磁區,或者直接根據MBR記錄中的引導資訊呼叫啟動選單(如GRUB)
3、GRUB選單
對于Linux作業系統來說, GRUB (GRand Unified Bootloader,統一啟動加載器)是使用最為廣泛的多系統引導器程式,系統控制權傳遞給GRUB以后,將會顯示啟動選單給用戶選擇,并根據所選項(或采用默認值)加載Linux內核檔案,然后將系統控制權轉交給內核,需要注意的是,CentOS7采用的是GRUB2啟動引導器
4、加載Linux內核
Linux內核是一個預先編譯好的特殊二進制檔案,介于各種硬體資源與系統程式之間,負責資源分配與調度,內核接過系統控制權以后,將完全掌控整個Linux作業系統的運行程序,在CentOS系統中,默認的內核檔案位于"/boot/vmlinuz-3.10.0—514.el7.x86_64"
5、init行程初始化
為了完成進一步的系統引導程序, Linux內核首先將系統中的“/sbin/init”程式加載到記憶體中運行(運行中的程式稱為行程), init行程負責完成一系列的系統初始化程序,最后等待用戶進行登錄
二、系統初始化行程
1、init行程
Linux作業系統中的行程使用數字進行標記,每個行程的身份標記號稱為PID,在引導Linux作業系統的程序中,"/sbin/nit"是內核第一個加載的程式,因此init行程對應的PID號總是為1
init行程運行以后將陸續執行系統中的其他程式,不斷生成新的行程,這些行程稱為init行程的子行程,反過來說, init行程是這些行程的父行程,當然,這些子行程也可以進一步生成各自的子行程,依次不斷繁衍下去,最終構成一棵枝繁葉茂的行程樹,共同為用戶提供服務
init行程正是維持整個Linux作業系統運行的所有行程的“始祖”,因此init行程是不允許被輕易終止的,需要切換不同的系統運行狀態時,可以向init行程發送正確的執行引數,由init自身來完成相關操作
2、Systemd
Systemd是Linux作業系統的一種init軟體, CentOS7系統中采用了全新的Systemd啟動方式,取代了傳統的SysVinit,Systemd啟動方式使系統初始化時諸多服務并行啟動,大大提高了開機效率,CentOS7系統中“/sbin/init”是“/lib/systemd/systemd” 的鏈接檔案,換言之, CentOS7系統中運行的第一個init行程是“/lib/systemd/systemd”,systemd守護行程負責Linux的系統和服務,systemctl用于控制Systemd管理的系統和服務狀態
3、系統服務
Linux系統服務是指運行在后臺并提供特定功能的應用程式,如網站服務、FTP服務等,Linux通過將不同的系統服務進行搭配組合來協同滿足不同的功能需求,不同的服務組合其實作的功能也各不相同,就好比不同的藥方能醫治不同的病癥一樣
早期Linux作業系統中的SysVinit機制,默認包括七種不同的服務搭配方式,其中每一種搭配方式稱為運行級別,類似于Windows系統中的正常啟動、安全模式、不帶網路連接的安全模式等,這些運行級別分別使用數字0、1、2、3、4、5、6來表示,為了向下兼容SysVinit系統,Systemd使用了相應的target(目標)模擬了SysVinit的運行級別
4、Systemd的目標與SysVinit的運行級別
| 運行級別 | systemd的target | 說明 |
| 0 | target | 關機狀態,使用該級別會關閉主機 |
| 1 | rescue.target | 單用戶模式,不需要密碼驗證即可登錄系統,多用于系統維護 |
| 2 | multi-user.target | 用戶定義/域特定運行級別,默認等同于3 |
| 3 | multi-user.target | 字符界面的完整多用戶模式,大多數服務器主機運行在此級別 |
| 4 | multi-user.target | 用戶定義/域特定運行級別,默認等同于3 |
| 5 | graphical.target | 圖型界面的多用戶模式,提供了圖形桌面操作環境 |
| 6 | reboot.target | 重新啟動,使用該級別時將會重啟主機 |
三、目錄結構
目錄就相當于 Windows 中的檔案夾,目錄中存放的既可以是檔案,也可以是其他的子目錄,而檔案中存盤的是真正的資訊,在Linux作業系統中,所有的檔案和目錄都被組織成以一個根節點“/”開始的倒置的樹狀結構

1、/bin
bin是Binaries (二進制檔案) 的縮寫, 這個目錄存放著最經常使用的命令
2、/boot
這里存放的是啟動Linux時使用的一些核心檔案,包括一些連接檔案以及鏡像檔案
3、/dev
dev是Device(設備) 的縮寫, 該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問檔案的方式是相同的
4、/etc
etc是Etcetera(等等)的縮寫,這個目錄用來存放所有的系統管理所需要的組態檔和子目錄
5、/home
用戶的主目錄,在Linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的
6、/lib
lib是Library(庫)的縮寫這個目錄里存放著系統最基本的動態連接共享庫,其作用類似于 Windows 里的 DLL 檔案,幾乎所有的應用程式都需要用到這些共享庫
7、/lost+found
這個目錄一般情況下是空的,當系統非法關機后,這里就存放了一些檔案
8、/media
linux系統會自動識別一些設備,例如U盤、光驅等等,當識別后,Linux會把識別的設備掛載到這個目錄下
9、/mnt
系統提供該目錄是為了讓用戶臨時掛載別的檔案系統的,我們可以將光驅掛載在/mnt/上,然后進入該目錄就可以查看光驅里的內容了
10、/opt
opt是optional(可選)的縮寫,這是給主機額外安裝軟體所擺放的目錄,默認是空的
11、/proc
proc是Processes(行程) 的縮寫,/proc是一種偽檔案系統(即虛擬檔案系統),存盤的是當前內核運行狀態的一系列特殊檔案,這個目錄是一個虛擬的目錄,它是系統記憶體的映射,我們可以通過直接訪問這個目錄來獲取系統資訊,這個目錄的內容不在硬碟上而是在記憶體里,我們也可以直接修改里面的某些檔案
12、/root
該目錄為系統管理員,也稱作超級權限者的用戶主目錄
13、/sbin
s就是Super User的意思,是Superuser Binaries (超級用戶的二進制檔案) 的縮寫,這里存放的是系統管理員使用的系統管理程式
14、/selinux
這個目錄是Redhat/CentOS所特有的目錄,Selinux 是一個安全機制,類似于windows的防火墻,但是這套機制比較復雜,這個目錄就是存放selinux相關的檔案的
15、/srv
該目錄存放一些服務啟動之后需要提取的資料
16、/sys
這是Linux2.6內核的一個很大的變化,該目錄下安裝了2.6內核中新出現的一個檔案系統sysfs ,sysfs檔案系統集成了下面3種檔案系統的資訊:針對行程資訊的proc檔案系統、針對設備的devfs檔案系統以及針對偽終端的devpts檔案系統,該檔案系統是內核設備樹的一個直觀反映,當一個內核物件被創建的時候,對應的檔案和目錄也在內核物件子系統中被創建
17、/tmp
tmp是temporary(臨時)的縮寫這個目錄是用來存放一些臨時檔案的
18、/usr
usr是unix shared resources(共享資源)的縮寫,這是一個非常重要的目錄,用戶的很多應用程式和檔案都放在這個目錄下,類似于windows下的program files目錄
19、/usr/bin
系統用戶使用的應用程式
20、/usr/sbin
超級用戶使用的比較高級的管理程式和系統守護程式
21、/usr/src
內核源代碼默認的放置目錄
22、/var
var是variable(變數)的縮寫,這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下,包括各種日志檔案
23、/run
/run是一個臨時檔案系統,存盤系統啟動以來的資訊,當系統重啟時,這個目錄下的檔案應該被刪掉或清除
結語
在init的組態檔中 "si::sysinit:/etc/rc.d/rc.sysinit" 呼叫執行了/etc/rc.d/rc.sysinit,而rc.sysinit是一個bash shell的腳本,它主要是完成一些系統初始化的作業,rc.sysinit是每一個運行級別都要首先運行的重要腳本,它主要完成的作業有:激活交換磁區,檢查磁盤,加載硬體模塊以及其它一些需要優先執行任務
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/392293.html
標籤:其他
