www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]Ubuntu系統(tǒng)啟動過程詳解

一. Ubuntu的啟動流程

ubuntu的啟動流程和我們熟知的RedHat的啟動方式有所區(qū)別。

RedHat的啟動過程如下圖:

 

 

這是我們熟知的linux啟動流程,但是ubuntu的啟動流程和這個有些區(qū)別,我在ubuntu的/etc/目錄下面找不到inittab這個文件,一開始很納悶ubuntu是怎么啟動的?一查資料發(fā)現(xiàn)ubuntu并沒有采用init的方法,所以在/etc/目錄下面找不到inittab,這主要是因為init采用串行的方式,引導很費時,RedHat9啟動時串行執(zhí)行大量腳本以及啟動各種需要的服務,因此從ubuntu6.10開始逐步采用upSTart來代替init,進行服務進程的管理。為了對原有的init實現(xiàn)向后兼容,upstart可以說是在表象上保留了大部分原來init的特性,因此目前ubuntu初始化進程名仍然叫init,而改變的核心,則是Event機制。

Event機制就是將進程的觸發(fā)、停止都看成是Event。Ubuntu的/etc/下有一個event.d,這個目錄是upstart的核心。/etc/event.d/下面存放了目前upstart需要識別的各種event。這其中主要有三種:rc-default,rcX(X = 0,1,2,3,4,5,6,S),ttyX(X = 0,1,2,3,4,5,6,S)。

其中rc-default就類似與inittab文件,用來設置默認運行級別的。cat rc-default,我們可以看到:

# rc - runlevel compatibility

#

# This task guesses what the "default runlevel" should be and starts the

# appropriate script.

start ON stopped rcS

script

runlevel --reboot || true

if grep -q -w -- "-s|single|S" /proc/cmdline; then

telinit S

elif [ -r /etc/inittab ]; then

RL="$(sed -n -e "/^id:[0-9]*:initdefault:/{s/^id://;s/:.*//;p}" /etc/inittab || true)"

if [ -n "$RL" ]; then

telinit $RL

else

telinit 2

fi

else

telinit 2

fi

end script

默認的運行級別是2。

rcX是發(fā)生相應運行級別事件時需要運行程序的腳本,我們再cat一下rc2:

# rc2 - runlevel 2 compatibility

#

# This task runs the old sysv-rc runlevel 2 ("multi-user") scripts. It

# is usually started by the telinit compatibility wrapper.

start on runlevel 2

stop on runlevel [!2]

console output

script

set $(runlevel --set 2 || true)

if [ "$1" != "unknown" ]; then

PREVLEVEL=$1

RUNLEVEL=$2

export PREVLEVEL RUNLEVEL

fi

exec /etc/init.d/rc 2

end script

不去考慮細節(jié),只要注意到前兩行和倒數(shù)第二行就可以了??梢钥吹?,rc2文件是定義在發(fā)生運行級別2的時候所要執(zhí)行的東西,核心就是這句:exec /etc/init.d/rc 2。這樣,我們就可以自然地過渡到下一個重要的目錄,/etc/init.d/了。

/etc/init.d/中存放的都是服務或者任務的執(zhí)行腳本??梢赃@么說,只要你安裝了一個程序(特別是服務程序daemon),它可以在系統(tǒng)啟動的時候運行,那么它必定會在/etc/init.d/中有一個腳本文件?;氐缴厦娴膔c2,它執(zhí)行了exec /etc/init.d/rc 2,也就是給/etc/init.d/rc傳遞了一個參數(shù)”2”,讓它執(zhí)行。Rc腳本里面有這樣一段:

# Now run the START scripts for this runlevel.

# Run all scripts with the same level in parallel

.......

for s in /etc/rc$runlevel.d/S*

.......

這說明,當給rc腳本傳遞一個數(shù)字參數(shù)"X"的時候,它在經過一系列的設置后,將會開始執(zhí)行/etc/rcX.d/下S開頭的腳本。這就過渡到下一個目錄/etc/rcX.d/了。

ls一下/etc/rcX.d/,發(fā)現(xiàn)里面全是一堆到/etc/init.d/中的腳本符號鏈接,不同的是它們的開頭加上了S和一個數(shù)字。熟悉原本init的人應該知道,S表示在啟動時運行,數(shù)字則表示執(zhí)行的先后順序。其中有一個鏈接叫做S30gdm,gdm的意思是gnome display management,也就是用來啟動gnome桌面的。

綜上所述,upstart管理的ubuntu啟動過程如下圖所示:

 

 

二. x-window啟動過程解析

從控制臺進入X一般用startx命令,故啟動X應該從startx這個腳本開始分析。以下是startx腳本的一部分:

#!/bin/sh

userclientrc=$HOME/.xinitrc #用戶的client定義文件

userserverrc=$HOME/.xserverrc #用戶的server定義文件

sysclientrc=/usr/X11R6/lib/X11/xinit/xinitrc #系統(tǒng)的client

sysserverrc=/usr/X11R6/lib/X11/xinit/xserverrc #系統(tǒng)的server

defaultclient=/usr/X11R6/bin/xterm #默認的client程序

defaultserver=/usr/X11R6/bin/X #默認的server程序

defaultclientargs="" #下面定義了client和server的參數(shù)變量

defaultserverargs=""

clientargs=""

serverargs=""

……

可以看到,startx主要是置X client和X server所在的位置,并處理相關參數(shù),最后交給xinit處理??梢钥闯鰏tartx 設置X client的位置是先搜尋$HOME/.xinitrc,然后是/etc/X11/xinit/xinitrc;設置X server的位置是先搜尋$HOME/.xserverrc,然后是/etc/X11/xinit/xserverrc。在ubuntu8.10的$HOME下面沒有.xinitrc和.xerverrc,所以startx直接去/etc/下面找x-client和x-server,完成啟動x的工作。

總結一下x-window的啟動流程圖:

 

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

深圳2025年8月12日 /美通社/ -- 全球消費電子行業(yè)領導者、Mini LED和超大屏[1]電視銷量全球第一的TCL欣然宣布,公司將參加9月5日至9日在柏林舉辦的2025年德國柏林消費電子展(IFA 2025)。作...

關鍵字: TCL 消費電子展 NI 大屏

北京2025年8月11日 /美通社/ -- 2025年8月8日,由紫光漢圖舉辦的 "雙引擎?印未來"紫光打印機新品發(fā)布會正式在北京通明湖會展中心舉行。 工業(yè)和信息化部電子信息司電子系統(tǒng)處領導、中國電...

關鍵字: 打印機 紫光 NI 核心技術

加快開發(fā)進程;提升質量、安全性、性能與成本效益 利用耐世特在底盤領域的專業(yè)知識和線控技術產品組合 美國密西根州奧本山2025年8月11日 /美通社/ --?耐...

關鍵字: MOTION 軟件 運動控制 NI

-Cognizant正在籌辦全球最大規(guī)模的氛圍編程活動,以提升數(shù)千名員工的AI素養(yǎng) 為抓住人工智能經濟將創(chuàng)造的巨大機遇,Cognizant與Lovable、Windsurf、Cursor、Gemini Code Ass...

關鍵字: 編程 NI AN PI

-Cognizant推出AI Training Data Services,助力企業(yè)級AI模型加速開發(fā) Cognizant是數(shù)據(jù)與AI模型訓練合作伙伴,長期深受大型數(shù)字原生先鋒企業(yè)信賴,助力其訓練全球最先進的AI/機器...

關鍵字: NI AN AI模型 SERVICES

葡萄牙波爾圖2025年7月31日 /美通社/ -- 全球領先的新一代制造執(zhí)行系統(tǒng)供應商凱睿德制造宣布收購專注于高科技制造圖像分析的AI專家公司 Convanit。本次收購是擴展凱睿德制造數(shù)據(jù)平臺能力的重要一步,將助力客戶...

關鍵字: 智能制造 圖像分析 NI AN

2025年,該實驗室已新獲兩項美國授權專利,開源了一個關鍵AI開發(fā)平臺,并贏得了GECCO金獎 新澤西州提內克2025年7月25日 /美通社/ -- Cognizant(Nasdaq:CTSH)今日宣布,其AI實驗室新...

關鍵字: AI NI AN BSP

上海2025年6月30日 /美通社/ -- 6月30日,文心大模型正式開源,黑芝麻智能即日起快速啟動與文心大模型技術合作。 黑芝麻智能將基于文心大模型,打造行業(yè)領先的車端推理引擎,為企業(yè)、開發(fā)者提供真正可用、好用、可落...

關鍵字: 模型 NI 開源 多模

與英偉達的技術合作致力加速生產制造的數(shù)字化轉型 舍弗勒全球工廠將通過AI解決方案的應用加速制造工藝的革新,并提升產品質量 舍弗勒憑借數(shù)十年在制造領域的技術積累,推動工業(yè)元宇宙持續(xù)發(fā)展 巴黎和赫...

關鍵字: 數(shù)字化 英偉達 SE NI

西塘 2025年5月30日 /美通社/ -- 全球營銷衡量與體驗管理平臺 AppsFlyer在西塘成功舉辦 2025 MAMA 移動互聯(lián)網高層峰會(以下簡稱 2025 MAMA)。峰會匯集了超過 100 位移動互聯(lián)網企...

關鍵字: 移動互聯(lián)網 AI APPS NI
關閉