自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux系統(tǒng)啟動深度剖析(二)

系統(tǒng) Linux
Linux系統(tǒng)啟動過程在完成內(nèi)核引導(dǎo)和運(yùn)行init部分后,系統(tǒng)將會接著進(jìn)行后面的工作,我們接著上一篇文章對系統(tǒng)啟動過程進(jìn)行剖析。

Linux系統(tǒng)啟動過程前面我們已經(jīng)剖析了內(nèi)核引導(dǎo)和運(yùn)行init兩個部分,后面還有更重要的工作要做就是系統(tǒng)的初始化、對應(yīng)級別的守護(hù)程序啟動、建立終端、和完成登陸。這樣就會完成一個完整的Linux系統(tǒng)啟動過程。

第三部分:系統(tǒng)初始化

在init的配置文件中有這么一行:
si::sysinit:/etc/rc.d/rc.sysinit
它調(diào)用執(zhí)行了/etc/rc.d/rc.sysinit,而rc.sysinit是一個bash
shell的腳本,它主要是完成一些系統(tǒng)初始化的工作,rc.sysinit是每一個運(yùn)行級別都要首先運(yùn)行的重要腳本。它主要完成的工作有:激活交換分
區(qū),檢查磁盤,加載硬件模塊以及其它一些需要優(yōu)先執(zhí)行任務(wù)。
rc.sysinit約有850多行,但是每個單一的功能還是比較簡單,而且?guī)в凶⑨專ㄗh有興趣的用戶可以自行閱讀自己機(jī)器上的該文件,以了解系統(tǒng)初始化所詳細(xì)情況。由于此文件較長,所以不在本文中列出來,也不做具體的介紹。
當(dāng)rc.sysinit程序執(zhí)行完畢后,將返回init繼續(xù)下一步。

第四部分:啟動對應(yīng)運(yùn)行級別的守護(hù)進(jìn)程

在rc.sysinit執(zhí)行后,將返回init繼續(xù)其它的動作,通常接下來會執(zhí)行到/etc/rc.d/rc程序。以運(yùn)行級別3為例,init將執(zhí)行配置文件inittab中的以下這行:
l5:5:wait:/etc/rc.d/rc 5
這一行表示以5為參數(shù)運(yùn)行/etc/rc.d/rc,/etc/rc.d/rc是一個Shell腳本,它接受5作為參數(shù),去執(zhí)行/etc/rc.d
/rc5.d/目錄下的所有的rc啟動腳本,/etc/rc.d/rc5.d/目錄中的這些啟動腳本實(shí)際上都是一些鏈接文件,而不是真正的rc啟動腳本,
真正的rc啟動腳本實(shí)際上都是放在/etc/rc.d/init.d/目錄下。而這些rc啟動腳本有著類似的用法,它們一般能接受start、stop、
restart、status等參數(shù)。
/etc/rc.d/rc5.d/中的rc啟動腳本通常是K或S開頭的鏈接文件,對于以以S開頭
的啟動腳本,將以start參數(shù)來運(yùn)行。而如果發(fā)現(xiàn)存在相應(yīng)的腳本也存在K打頭的鏈接,而且已經(jīng)處于運(yùn)行態(tài)了(以/var/lock/subsys/下的
文件作為標(biāo)志),則將首先以stop為參數(shù)停止這些已經(jīng)啟動了的守護(hù)進(jìn)程,然后再重新運(yùn)行。這樣做是為了保證是當(dāng)init改變運(yùn)行級別時,所有相關(guān)的守護(hù)
進(jìn)程都將重啟。
至于在每個運(yùn)行級中將運(yùn)行哪些守護(hù)進(jìn)程,用戶可以通過chkconfig或setup中的"System Services"來自行設(shè)定。常見的守護(hù)進(jìn)程有:
amd:自動安裝NFS守護(hù)進(jìn)程
apmd:高級電源管理守護(hù)進(jìn)程
arpwatch:記錄日志并構(gòu)建一個在LAN接口上看到的以太網(wǎng)地址和IP地址對數(shù)據(jù)庫
autofs:自動安裝管理進(jìn)程automount,與NFS相關(guān),依賴于NIS
crond:Linux下的計(jì)劃任務(wù)的守護(hù)進(jìn)程
named:DNS服務(wù)器
netfs:安裝NFS、Samba和NetWare網(wǎng)絡(luò)文件系統(tǒng)
network:激活已配置網(wǎng)絡(luò)接口的腳本程序
nfs:打開NFS服務(wù)
portmap:RPC portmap管理器,它管理基于RPC服務(wù)的連接
sendmail:郵件服務(wù)器sendmail
smb:Samba文件共享/打印服務(wù)
syslog:一個讓系統(tǒng)引導(dǎo)時起動syslog和klogd系統(tǒng)日志守候進(jìn)程的腳本
xfs:X Window字型服務(wù)器,為本地和遠(yuǎn)程X服務(wù)器提供字型集
Xinetd:支持多種網(wǎng)絡(luò)服務(wù)的核心守護(hù)進(jìn)程,可以管理wuftp、sshd、telnet等服務(wù)
這些守護(hù)進(jìn)程也啟動完成了,rc程序也就執(zhí)行完了,然后又將返回init繼續(xù)下一步。

第五部分:建立終端

rc執(zhí)行完畢后,返回init。這時基本系統(tǒng)環(huán)境已經(jīng)設(shè)置好了,各種守護(hù)進(jìn)程也已經(jīng)啟動了。init接下來會打開6個終端,以便用戶登錄系統(tǒng)。通過按Alt+Fn(n對應(yīng)1-6)可以在這6個終端中切換。在inittab中的以下6行就是定義了6個終端:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
 
從上面可以看出在2、3、4、5的運(yùn)行級別中都將以respawn方式運(yùn)行mingetty程序,mingetty程序能打開終端、設(shè)置模式。同時它會
顯示一個文本登錄界面,這個界面就是我們經(jīng)??吹降牡卿浗缑?,在這個登錄界面中會提示用戶輸入用戶名,而用戶輸入的用戶將作為參數(shù)傳給login程序來驗(yàn)
證用戶的身份。

第六部分:登錄系統(tǒng),啟動完成

對于運(yùn)行級別為5的圖形方式用戶來說,他們的登錄是通過一個圖形化的登錄界面。登錄成功后可以直接進(jìn)入KDE、Gnome等窗口管理器。而本文主要講的還是文本方式登錄的情況:
當(dāng)我們看到mingetty的登錄界面時,我們就可以輸入用戶名和密碼來登錄系統(tǒng)了。
 
Linux的賬號驗(yàn)證程序是login,login會接收mingetty傳來的用戶名作為用戶名參數(shù)。然后login會對用戶名進(jìn)行分析:如果用戶名
不是root,且存在/etc/nologin文件,login將輸出nologin文件的內(nèi)容,然后退出。這通常用來系統(tǒng)維護(hù)時防止非root用戶登
錄。只有/etc/securetty中登記了的終端才允許root用戶登錄,如果不存在這個文件,則root可以在任何終端上登錄。/etc
/usertty文件用于對用戶作出附加訪問限制,如果不存在這個文件,則沒有其他限制。
在分析完用戶名后,login將搜索/etc/passwd以及/etc/shadow來驗(yàn)證密碼以及設(shè)置賬戶的其它信息,比如:主目錄是什么、使用何種shell。如果沒有指定主目錄,將默認(rèn)為根目錄;如果沒有指定shell,將默認(rèn)為/bin/bash。
 
login程序成功后,會向?qū)?yīng)的終端在輸出最近一次登錄的信息(在/var/log/lastlog中有記錄),并檢查用戶是否有新郵件(在/usr
/spool/mail/的對應(yīng)用戶名目錄下)。然后開始設(shè)置各種環(huán)境變量:對于bash來說,系統(tǒng)首先尋找/etc/profile腳本文件,并執(zhí)行
它;然后如果用戶的主目錄中存在.bash_profile文件,就執(zhí)行它,在這些文件中又可能調(diào)用了其它配置文件,所有的配置文件執(zhí)行后后,各種環(huán)境變
量也設(shè)好了,這時會出現(xiàn)大家熟悉的命令行提示符,到此整個啟動過程就結(jié)束了。
希望通過上面對Linux啟動過程的剖析能幫助那些想深入學(xué)習(xí)Linux用戶建立一個相關(guān)Linux系統(tǒng)啟動過程的清晰概念,進(jìn)而可以進(jìn)一步研究Linux接下來是如何工作的。

 

【編輯推薦】

  1. Linux系統(tǒng)啟動深度剖析(一)
  2. Linux進(jìn)程狀態(tài)解析之R、S、D
  3. Linux進(jìn)程狀態(tài)解析之T、Z、X
  4. 簡單概述Linux進(jìn)程操作命令
  5. Linux分區(qū)方案深度討論
責(zé)任編輯:小霞 來源: CSDN
相關(guān)推薦

2010-03-02 15:45:57

Linux系統(tǒng)啟動過程

2009-12-25 09:17:50

2009-12-03 10:00:46

Linux系統(tǒng)啟動

2021-02-09 08:23:02

Linux操作系統(tǒng)

2018-03-13 13:00:03

Linux運(yùn)維啟動分析

2010-01-12 13:47:18

Linux grub

2018-12-06 09:00:06

LinuxWindows雙系統(tǒng)

2018-10-18 14:06:15

Linux系統(tǒng)過程

2016-11-25 20:52:14

Linux

2017-03-03 09:10:41

2023-09-02 21:39:47

2009-10-23 16:00:50

VB.NET實(shí)例教程

2009-04-15 20:15:02

WindowsLinux雙系統(tǒng)啟動

2010-04-20 17:24:42

Unix操作系統(tǒng)

2011-08-22 08:53:17

Android啟動過程李洋

2010-05-06 14:05:15

Unix系統(tǒng)

2010-03-30 18:32:31

Nginx系統(tǒng)啟動

2009-11-25 09:16:34

SUSE Linux

2010-05-06 18:42:15

Unix系統(tǒng)

2019-06-20 10:56:28

CentOS系統(tǒng)啟動
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號