青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-80  評(píng)論-22  文章-0  trackbacks-0

羅列一篇,方便我等菜鳥(niǎo)來(lái)溫習(xí)和查閱,以Solaris為例

按下電源,首先是BIOS取得系統(tǒng)控制權(quán),BIOS進(jìn)行最初的引導(dǎo)工作,然后交控制權(quán)交給引導(dǎo)分區(qū),由引導(dǎo)分區(qū)加載內(nèi)核并調(diào)用start_kernel函數(shù)。

內(nèi)核首先引導(dǎo)核心數(shù)據(jù)結(jié)構(gòu)的初始化,在start_kernel函數(shù)中完成如下工作:

  • 輸出Linux版本信息(printk(linux_banner))
  • 設(shè)置與體系結(jié)構(gòu)相關(guān)的環(huán)境(setup_arch())
  • 頁(yè)表結(jié)構(gòu)初始化(paging_init())
  • 使用"arch/alpha/kernel/entry.S"中的入口點(diǎn)設(shè)置系統(tǒng)自陷入口(trap_init())
  • 使用alpha_mv結(jié)構(gòu)和entry.S入口初始化系統(tǒng)IRQ(init_IRQ())
  • 核心進(jìn)程調(diào)度器初始化(包括初始化幾個(gè)缺省的Bottom-half,sched_init())
  • 時(shí)間、定時(shí)器初始化(包括讀取CMOS時(shí)鐘、估測(cè)主頻、初始化定時(shí)器中斷等,time_init())
  • 提取并分析核心啟動(dòng)參數(shù)(從環(huán)境變量中讀取參數(shù),設(shè)置相應(yīng)標(biāo)志位等待處理,(parse_options())
  • 控制臺(tái)初始化(為輸出信息而先于PCI初始化,console_init())
  • 剖析器數(shù)據(jù)結(jié)構(gòu)初始化(prof_buffer和prof_len變量)
  • 核心Cache初始化(描述Cache信息的Cache,kmem_cache_init())
  • 延遲校準(zhǔn)(獲得時(shí)鐘jiffies與CPU主頻ticks的延遲,calibrate_delay())
  • 內(nèi)存初始化(設(shè)置內(nèi)存上下界和頁(yè)表項(xiàng)初始值,mem_init())
  • 創(chuàng)建和設(shè)置內(nèi)部及通用cache("slab_cache",kmem_cache_sizes_init())
  • 創(chuàng)建uid taskcount SLAB cache("uid_cache",uidcache_init())
  • 創(chuàng)建文件cache("files_cache",filescache_init())
  • 創(chuàng)建目錄cache("dentry_cache",dcache_init())
  • 創(chuàng)建與虛存相關(guān)的cache("vm_area_struct","mm_struct",vma_init())
  • 塊設(shè)備讀寫(xiě)緩沖區(qū)初始化(同時(shí)創(chuàng)建"buffer_head"cache用戶(hù)加速訪(fǎng)問(wèn),buffer_init())
  • 創(chuàng)建頁(yè)cache(內(nèi)存頁(yè)hash表初始化,page_cache_init())
  • 創(chuàng)建信號(hào)隊(duì)列cache("signal_queue",signals_init())
  • 初始化內(nèi)存inode表(inode_init())
  • 創(chuàng)建內(nèi)存文件描述符表("filp_cache",file_table_init())
  • 檢查體系結(jié)構(gòu)漏洞(對(duì)于alpha,此函數(shù)為空,check_bugs())
  • SMP機(jī)器其余CPU(除當(dāng)前引導(dǎo)CPU)初始化(對(duì)于沒(méi)有配置SMP的內(nèi)核,此函數(shù)為空,smp_init())
  • 啟動(dòng)init過(guò)程(創(chuàng)建第一個(gè)核心線(xiàn)程,調(diào)用init()函數(shù),原執(zhí)行序列調(diào)用cpu_idle() 等待調(diào)度,init())

至此start_kernel()結(jié)束,基本的核心環(huán)境已經(jīng)建立起來(lái)了。

start_kernel最后一項(xiàng)是啟動(dòng)了init函數(shù),接著由它來(lái)完成外設(shè)的初始化

  • 總線(xiàn)初始化(比如pci_init())
  • 網(wǎng)絡(luò)初始化(初始化網(wǎng)絡(luò)數(shù)據(jù)結(jié)構(gòu),包括sk_init()、skb_init()和proto_init()三部分,在proto_init()中,將調(diào)用protocols結(jié)構(gòu)中包含的所有協(xié)議的初始化過(guò)程,sock_init())
  • 創(chuàng)建bdflush核心線(xiàn)程(bdflush()過(guò)程常駐核心空間,由核心喚醒來(lái)清理被寫(xiě)過(guò)的內(nèi)存緩沖區(qū),當(dāng)bdflush()由kernel_thread()啟動(dòng)后,它將自己命名為kflushd)
  • 創(chuàng)建kupdate核心線(xiàn)程(kupdate()過(guò)程常駐核心空間,由核心按時(shí)調(diào)度執(zhí)行,將內(nèi)存緩沖區(qū)中的信息更新到磁盤(pán)中,更新的內(nèi)容包括超級(jí)塊和inode表)
  • 設(shè)置并啟動(dòng)核心調(diào)頁(yè)線(xiàn)程kswapd(為了防止kswapd啟動(dòng)時(shí)將版本信息輸出到其他信息中間,核心線(xiàn)調(diào)用kswapd_setup()設(shè)置kswapd運(yùn)行所要求的環(huán)境,然后再創(chuàng)建 kswapd核心線(xiàn)程)
  • 創(chuàng)建事件管理核心線(xiàn)程(start_context_thread()函數(shù)啟動(dòng)context_thread()過(guò)程,并重命名為keventd)
  • 設(shè)備初始化(包括并口parport_init()、字符設(shè)備chr_dev_init()、塊設(shè)備 blk_dev_init()、SCSI設(shè)備scsi_dev_init()、網(wǎng)絡(luò)設(shè)備net_dev_init()、磁盤(pán)初始化及分區(qū)檢查等等,device_setup())
  • 執(zhí)行文件格式設(shè)置(binfmt_setup())
  • 啟動(dòng)任何使用__initcall標(biāo)識(shí)的函數(shù)(方便核心開(kāi)發(fā)者添加啟動(dòng)函數(shù),do_initcalls())
  • 文件系統(tǒng)初始化(filesystem_setup())
  • 安裝root文件系統(tǒng)(mount_root())

這些步驟結(jié)束后,init()搜索文件系統(tǒng)中的init程序,并創(chuàng)建它,也就是我們通常所說(shuō)的init進(jìn)程,它是系統(tǒng)所有進(jìn)程的起點(diǎn),進(jìn)程ID=1。

在啟動(dòng)了的Solaris下,利用 "$ps -p 1" 可以查看該進(jìn)程,輸出如下:

PID TTY TIME CMD
1 ? 0:01 init

接下來(lái)init進(jìn)程讀取/etc/inittab文件,來(lái)決定下一步如何做。

inittab是以行為單位的描述性(非執(zhí)行性)文本,每一個(gè)指令行都具有以下格式:

id:runlevel:action:process 其中id為入口標(biāo)識(shí)符,runlevel為運(yùn)行級(jí)別,action為動(dòng)作代號(hào),process為具體的執(zhí)行程序。

id一般要求4個(gè)字符以?xún)?nèi),runlevelinit所處于的運(yùn)行級(jí)別的標(biāo)識(shí),一般使用0-6以及S或s(S或s表示單用戶(hù)模式)。

action字段則告訴init進(jìn)程,如何對(duì)待process字段指定的進(jìn)程:當(dāng)inittab中各行的runlevel值與當(dāng)前運(yùn)行級(jí)別匹配時(shí),指定的action才被執(zhí)行。

但有幾個(gè)特殊的action:

initdefault是一個(gè)特殊的action值,用于標(biāo)識(shí)缺省的啟動(dòng)級(jí)別;當(dāng)init由核心激活以后,它將首先讀取inittab中的initdefault項(xiàng),取得其中的runlevel,并作為當(dāng)前的運(yùn)行級(jí)別。

sysinit、boot、bootwait等action將在系統(tǒng)啟動(dòng)時(shí)無(wú)條件運(yùn)行,而忽略其中的runlevel,即不管當(dāng)前運(yùn)行級(jí)別是什么,它都執(zhí)行,并且是優(yōu)先執(zhí)行。其余的action(不含initdefault)都與某個(gè)runlevel相關(guān)。

我的Solaris9中的/etc/inittab如下

ap::sysinit:/sbin/autopush -f /etc/iu.ap #action=sysinit, 該行不管在什么運(yùn)行級(jí)別下,都運(yùn)行
ap::sysinit:/sbin/soconfig -f /etc/sock2path #同上
fs::sysinit:/sbin/rcS sysinit >/dev/msglog 2<>/dev/msglog
is:3:initdefault: #該行action=initdefault,表明系統(tǒng)的默認(rèn)運(yùn)行級(jí)別是3
p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/msglog 2<>/dev/msglog
sS:s:wait:/sbin/rcS >/dev/msglog 2<>/dev/msglog
s0:0:wait:/sbin/rc0 >/dev/msglog 2<>/dev/msglog
s1:1:respawn:/sbin/rc1 >/dev/msglog 2<>/dev/msglog
s2:23:wait:/sbin/rc2 >/dev/msglog 2<>/dev/msglog
s3:3:wait:/sbin/rc3 >/dev/msglog 2<>/dev/msglog
s5:5:wait:/sbin/rc5 >/dev/msglog 2<>/dev/msglog
s6:6:wait:/sbin/rc6 >/dev/msglog 2<>/dev/msglog
fw:0:wait:/sbin/uadmin 2 0 >/dev/msglog 2<>/dev/msglog
of:5:wait:/sbin/uadmin 2 6 >/dev/msglog 2<>/dev/msglog
rb:6:wait:/sbin/uadmin 2 1 >/dev/msglog 2<>/dev/msglog
sc:234:respawn:/usr/lib/saf/sac -t 300 #在2,3,4運(yùn)行級(jí)別下都執(zhí)行
co:234:respawn:/usr/lib/saf/ttymon -g -h -p "`uname -n` console login: " -T sun -d /dev/console -l console -m ldterm,ttcompat

去man inittab吧,什么都講了 :)

接著看我的inittab文件,當(dāng)action=sysinit的行執(zhí)行完之后(前三行),將執(zhí)行runlevel=3的行,即“ s3:3:wait:/sbin/rc3 ”。查找了一下,/sbin/rc3是一個(gè)shell腳本,用于初始化在運(yùn)行級(jí)別3的系統(tǒng)。因此/etc/inittab中已經(jīng)定義好了在運(yùn)行級(jí)別X下,就運(yùn)行 /sbin/rcX,那/sbin/rcX到底是什么?

cat一下/sbin/rc3,看看,重要的幾行代碼如下:

[ $_INIT_PREV_LEVEL = 2 -o $_INIT_PREV_LEVEL = 4 ] && \
echo 'Changing to state 3.' #如果以前運(yùn)行級(jí)別是2或4,則打印信息“切換到狀態(tài)三”

#如果運(yùn)行級(jí)別!=4而且存在/etc/rc3.d這個(gè)目錄,則停掉所有以K開(kāi)始的腳本中的服務(wù)或程序,啟動(dòng)所有以S開(kāi)始的腳本中的服務(wù)或程序

if [ $_INIT_PREV_LEVEL != 4 -a -d /etc/rc3.d ]; then
for f in /etc/rc3.d/K*; do
if [ -s $f ]; then
case $f in
*.sh) . $f ;;
*) /sbin/sh $f stop ;;
esac
fi
done

for f in /etc/rc3.d/S*; do
if [ -s $f ]; then
case $f in
*.sh) . $f ;;
*) /sbin/sh $f start ;;
esac
fi
done
fi


那就再追蹤到/etc/rc3.d下面去,

#cd /etc/rc3.d

K42amserver S13kdc.master S15nfs.server S34dhcp S50apache S52imq S77dmi S81volmgt S89sshd
README S14kdc S16boot.server S42amserver S50san_driverchk S76snmpdx S80mipagent S84appserv S90samba

哦,都是些程序或進(jìn)程的啟動(dòng)腳本,S開(kāi)頭是啟動(dòng)腳本 K開(kāi)頭是停止腳本。這正是/sbin/rc3這個(gè)shell腳本中設(shè)定的執(zhí)行方式。

例如:S90samba 代表一個(gè)啟動(dòng)samba服務(wù)的腳本,90表示啟動(dòng)順序編號(hào)。 K42amserver代表結(jié)束服務(wù)的腳本。

rc程序執(zhí)行完畢后,系統(tǒng)環(huán)境已經(jīng)設(shè)置好了,下面就該用戶(hù)登錄系統(tǒng)了,終于結(jié)束了。

posted on 2009-07-17 14:10 Bluesea 閱讀(452) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): linux

只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产伦精品一区二区三区视频黑人 | 欧美电影免费网站| 羞羞色国产精品| 欧美一区国产二区| 久久久久久久尹人综合网亚洲| 久久久久中文| 欧美理论大片| 国产精品区免费视频| 国产一区二区高清视频| 国内精品国产成人| 亚洲激情偷拍| 亚洲小视频在线| 久久久蜜桃一区二区人| 亚洲国产欧美日韩| 一本到12不卡视频在线dvd| 亚洲免费中文字幕| 老司机午夜精品视频在线观看| 欧美激情网友自拍| 国产欧美日韩麻豆91| 亚洲久久一区二区| 伊人精品在线| 在线一区二区视频| 久久人人97超碰精品888| 亚洲国产日韩欧美在线图片| 亚洲天堂久久| 欧美福利专区| 激情成人综合| 亚洲欧洲av一区二区| 亚洲二区视频在线| 午夜视频在线观看一区| 免费观看久久久4p| 国产日韩欧美一二三区| 一本久道久久综合中文字幕| 久久久无码精品亚洲日韩按摩| 亚洲精品在线看| 久久久久**毛片大全| 国产精品久久久久久久久搜平片| 亚洲二区在线视频| 久久嫩草精品久久久精品| 日韩亚洲综合在线| 美玉足脚交一区二区三区图片| 国产精品国产自产拍高清av| 亚洲日韩欧美视频| 嫩模写真一区二区三区三州| 午夜精品久久久久久久99水蜜桃| 欧美日韩一区二区三区四区在线观看 | 亚洲黄色免费| 久久激情五月丁香伊人| 在线视频你懂得一区二区三区| 欧美jizz19hd性欧美| 久久av二区| 亚洲日本理论电影| 亚洲欧美另类久久久精品2019| 老司机久久99久久精品播放免费| 艳妇臀荡乳欲伦亚洲一区| 欧美不卡在线| 亚洲国产中文字幕在线观看| 久久亚洲电影| 久久精品亚洲乱码伦伦中文| 国产精品一区免费在线观看| 亚洲摸下面视频| 一区二区三区导航| 欧美午夜视频在线| 亚洲欧美日韩另类精品一区二区三区| 亚洲人体偷拍| 欧美噜噜久久久xxx| 在线亚洲精品福利网址导航| 99视频精品| 久久久久国产精品麻豆ai换脸| 久久久精品视频成人| 国产有码在线一区二区视频| 欧美在线综合| 欧美专区在线观看| 国内精品久久久久影院优| 久久久精品一品道一区| 久久精品国产第一区二区三区| 狠狠色2019综合网| 欧美gay视频激情| 欧美大片在线影院| 亚洲午夜一区二区| 午夜亚洲精品| 亚洲国产另类精品专区| 亚洲经典三级| 国产精品一区视频网站| 老司机午夜精品视频在线观看| 美女国产精品| 中国女人久久久| 欧美亚洲视频在线看网址| 亚洲激情一区| 亚洲天堂网在线观看| 狠狠狠色丁香婷婷综合激情| 欧美激情亚洲一区| 国产精品久久久久久久久| 久久米奇亚洲| 欧美日本精品在线| 久久免费少妇高潮久久精品99| 麻豆精品视频在线观看| 亚洲欧美视频一区| 老牛影视一区二区三区| 亚洲综合国产| 久久久久久午夜| 亚洲一区二区三区免费在线观看 | 亚洲午夜一区| 亚洲国产一二三| 亚洲永久在线观看| 91久久精品一区二区别| 狂野欧美激情性xxxx欧美| 亚洲成人在线| 亚洲五月婷婷| 亚洲精品午夜| 久久久999精品免费| 亚洲一级免费视频| 欧美高清一区| 久久综合九色| 国产欧美亚洲一区| 日韩一级欧洲| 亚洲精品欧美精品| 久久久www| 久久精品夜色噜噜亚洲a∨| 欧美性大战久久久久久久蜜臀| 亚洲第一在线综合在线| 精品动漫一区| 欧美伊久线香蕉线新在线| 亚洲综合色激情五月| 欧美激情一二三区| 久久九九国产精品怡红院| 国产精品久久久久久久久久直播| 91久久在线观看| 91久久在线播放| 久久婷婷亚洲| 久久久精品性| 国产亚洲成av人在线观看导航| 在线性视频日韩欧美| 91久久精品日日躁夜夜躁欧美 | 99国产精品久久久久老师| 91久久久久久久久| 久久中文字幕一区| 女人天堂亚洲aⅴ在线观看| 黄网动漫久久久| 久久久噜噜噜久久狠狠50岁| 久久综合999| 亚洲成色777777在线观看影院| 欧美在线亚洲| 欧美1区免费| 亚洲靠逼com| 欧美日韩色婷婷| 一区二区三区精品国产| 亚洲欧美日韩精品久久久久| 国产伦精品一区二区三区高清版| 亚洲淫片在线视频| 久久精品国产综合精品| 激情久久久久久久| 老司机67194精品线观看| 亚洲国产毛片完整版| 一区二区三区免费观看| 欧美视频一区二区三区在线观看 | 久久久久国色av免费观看性色| 久久综合网络一区二区| 亚洲国产福利在线| 欧美日韩亚洲综合一区| 一区二区三区国产精品| 久久激情五月婷婷| 亚洲国产成人在线播放| 欧美日韩一区二区三区四区在线观看 | 亚洲自拍啪啪| 久久嫩草精品久久久精品一| 亚洲欧洲另类| 国产精品国产三级欧美二区 | 另类亚洲自拍| 亚洲最新色图| 麻豆成人综合网| 99成人免费视频| 国产伦精品一区二区三区免费迷| 久久亚洲精品伦理| 一本久久a久久免费精品不卡| 久久精品人人| 一区二区免费看| 国产专区一区| 欧美三级资源在线| 久久这里有精品视频| 一区二区三区不卡视频在线观看 | 91久久久国产精品| 国产精品久久久亚洲一区| 久久亚洲午夜电影| 亚洲在线观看免费视频| 亚洲国产一二三| 久久久久久久999精品视频| 一区二区三区免费看| 亚洲国产精品高清久久久| 国产人成精品一区二区三| 欧美日韩精品免费看| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲午夜在线| 日韩视频精品在线观看| 欧美粗暴jizz性欧美20| 久久九九精品99国产精品| 欧美亚洲三区| 亚洲免费一区二区| 亚洲天天影视| 在线亚洲精品福利网址导航|