亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
1012
2022-05-28
前言
系統引導是操作系統運行的開始,在用戶能夠正常登錄到系統之前,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的運行級別
三、目錄結構
目錄就相當于 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是每一個運行級別都要首先運行的重要腳本,它主要完成的工作有:激活交換分區,檢查磁盤,加載硬件模塊以及其它一些需要優先執行任務
Linux Windows 任務調度
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。