乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      linux的基礎(chǔ)啟動流程

       憂郁_小剛 2011-10-12
      linux的基礎(chǔ)啟動流程
      1. 加載BIOS的硬件信息,并獲取第一個啟動設(shè)備的代號。
      2. 讀取第一個啟動設(shè)備的MBR的引導(dǎo)加載程序(即lilo、grub、spfdisk等)的啟動信息。
      3. 加載操作系統(tǒng)的核心信息,核心開始解壓,并嘗試驅(qū)動所有的硬件設(shè)備。
      4. 核心執(zhí)行init程序并獲得運行信息。
      5. init執(zhí)行/etc/rc.d/rc.sysinit文件。
      6. 啟動核心的外掛模塊(/etc/modprobe.conf)。
      7. init執(zhí)行運行的各個批處理文件(Script)
      8. init執(zhí)行/etc/rc.d/rc.local文件。
      9. 執(zhí)行/bin/login程序,等待用戶登錄。
      10. 登錄之后開始以shell控制主機。

      1. linux核心的引導(dǎo)
      操作系統(tǒng)的核心是放在文件系統(tǒng)中的,要想正確加載核心就必須提前識別文件系統(tǒng)。系統(tǒng)剛啟動的時候,就需要通過引導(dǎo)加載程序(即lilo、grub、spfdisk等)來識別文件系統(tǒng),引導(dǎo)核心。要想加載linux的核心就必須能識別linux的文件系統(tǒng),要加載windows核心就必須能識別windows文件系統(tǒng)。而grub是同時支持linux和windows的。但windows的加載程序并不支持linux文件系統(tǒng),所以在多重啟動設(shè)置的時候,總是要先裝windows而后裝Linux。

      核心文件在哪里呢?一般來說,它會放在/boot里,并且取名為/boot/vmlinuz。

      在加載核心的過程中,必須知道,系統(tǒng)只會“載入根目錄”,并且是以只讀方式載入的。有時為了讓某些功能可以用文件的方法來讀取,有的系統(tǒng)在啟動的時,會建立虛擬盤(ramdisk),這就需要使用initrd以及l(fā)inuxrc了。在加載核心的時候,一起加載initrd的映像文件(boot/initrd-xxxx.img),并利用linuxrc(在initrd的映像文件內(nèi))程序來加載模塊。在核心驅(qū)動外部硬件的工作完成之后,initrd所建立的虛擬盤就會被刪除。

      2. 第一個程序init的加載和runlevel設(shè)置
      在核心加載完成之后,系統(tǒng)就準備好了,等待程序的執(zhí)行。整個linux系統(tǒng)中,第一個執(zhí)行的程序就是“/sbin/init”。init程序做的工作相當多,除了利用設(shè)置文件“/etc/inittab”來獲取運行等級之外,還會通過運行等級的設(shè)置值啟動不同的服務(wù)項目。運行等級是指linux通過設(shè)置不同等級來規(guī)定系統(tǒng)用不同的服務(wù)來啟動,讓linux的使用環(huán)境不同。

      "/etc/inittab"中有這么一句"si::sysinit:/etc/rc.d/rc.sysinit",表明系統(tǒng)需要主動使用"rc.sysinit"這個shell腳本來設(shè)置系統(tǒng)環(huán)境。但這個文件的文件名在各個版本中是不一樣的,需要自行查看確認。

       1 [root@linux ~]#vi /etc/inittab
       2 
      # 設(shè)置系統(tǒng)啟動默認的運行等級設(shè)置項目
       3 
      id:3:initdefault:
       4 

       5 # 開始啟動運行等級的服務(wù)前,使用檢測與初始化系統(tǒng)環(huán)境的設(shè)置文件:
       6 
      si::sysinit:/etc/rc.d/rc.sysinit
       7 

       8 # 7個不同運行等級需要啟動的服務(wù)的腳本放置位置路徑:
       9 
      10:0:wait:/etc/rc.d/rc 0
      10 
      11:1:wait:/etc/rc.d/rc 1
      11 
      12:2:wait:/etc/rc.d/rc 2
      12 
      13:3:wait:/etc/rc.d/rc 3
      13 
      14:4:wait:/etc/rc.d/rc 4
      14 
      15:5:wait:/etc/rc.d/rc 5
      15 
      16:6:wait:/etc/rc.d/rc 6
      16 

      17 # 是否運行按下[ctrl]+[alt]+[del]就重新啟動的設(shè)置項目:
      18 
      ca::ctrlatdel:/sbin/shutdown -t3 -r now
      19 

      20 # 本機終端啟動的個數(shù):
      21 
      1:2345:respawn:/sbin/mingetty tty1
      22 
      2:2345:respawn:/sbin/mingetty tty2
      23 
      3:2345:respawn:/sbin/mingetty tty3
      24 
      4:2345:respawn:/sbin/mingetty tty4
      25 
      5:2345:respawn:/sbin/mingetty tty5
      26 
      6:2345:respawn:/sbin/mingetty tty6
      27 

      28 # 在X Window(運行級別5)環(huán)境下啟動腳本設(shè)置項目
      29 
      x:5:once:/etc/X11/prefdm -nodaemon
      30 

      3. init處理系統(tǒng)的初始化流程(/etc/rc.d/rc.sysinit)
      (1)獲取網(wǎng)絡(luò)環(huán)境與主機類型。首先會讀取網(wǎng)絡(luò)環(huán)境設(shè)置文件"/etc/sysconfig/network",獲取主機名稱與默認網(wǎng)關(guān)等網(wǎng)絡(luò)環(huán)境。
      (2)測試與載入內(nèi)存設(shè)備/proc及usb設(shè)備/sys。除了/proc外,系統(tǒng)會主動檢測是否有usb設(shè)備,并主動加載usb驅(qū)動,嘗試載入usb文件系統(tǒng)。
      (3)決定是否啟動SELinux。
      (4)接口設(shè)備的檢測與即插即用(pnp)參數(shù)的測試。
      (5)用戶自定義模塊的加載。用戶可以再"/etc/sysconfig/modules/*.modules"加入自定義的模塊,此時會加載到系統(tǒng)中。
      (6)加載核心的相關(guān)設(shè)置。又一個文件"/etc/sysctl.conf",按這個文件的設(shè)置值配置功能。
      (7)設(shè)置系統(tǒng)時間(clock)。
      (8)設(shè)置終端的控制臺的字形。
      (9)設(shè)置raid及LVM等硬盤功能。
      (10)以方式查看檢驗磁盤文件系統(tǒng)。
      (11)進行磁盤配額quota的轉(zhuǎn)換。
      (12)重新以讀取模式載入系統(tǒng)磁盤。
      (13)啟動quota功能。
      (14)啟動系統(tǒng)隨機數(shù)設(shè)備(產(chǎn)生隨機數(shù)功能)。
      (15)清楚啟動過程中的臨時文件。
      (16)將啟動信息加載到"/var/log/dmesg"文件中。
      如果想知道啟動過程中發(fā)生了什么事可以查看dmesg文件。

      4. 啟動系統(tǒng)服務(wù)"/etc/rc.d/rc*.d"與啟動設(shè)置文件"/etc/sysconfig"
      之前結(jié)束了inittab中的rc.sysinit之后,系統(tǒng)可以順利工作了,只是還需要啟動系統(tǒng)所需要的各種服務(wù),這樣主機才可以提供相關(guān)的網(wǎng)絡(luò)和主機功能。因此根據(jù)之前設(shè)置的運行等級,會啟動不同的服務(wù)項目。如果當時我們在inittab中選擇了等級3,系統(tǒng)則會在"/etc/rc.d/rc3.d"目錄中運行相應(yīng)的服務(wù)內(nèi)容,選擇等級5,就在"/etc/rc.d/rc5.d"目錄內(nèi)。

      該目錄下的內(nèi)容全部都是以 S 或 K 開頭的鏈接文件,都鏈接到"/etc/rc.d/init.d"目錄下的各種shell腳本。S表示的是啟動時需要start的服務(wù)內(nèi)容,K表示關(guān)機時需要關(guān)閉的服務(wù)內(nèi)容。如果我們需要自己增加啟動的內(nèi)容,可以再init.d目錄中增加相關(guān)的shell腳本,然后在rc*.d目錄中建立鏈接文件指向該shell腳本。這些shell腳本的啟動或結(jié)束順序是由S或K字母后面的數(shù)字決定,例如S01sysstat表示第一個執(zhí)行sysstat腳本,S99local表示排在第99位執(zhí)行rc.local腳本。

      5. 用戶自定義引導(dǎo)程序(/etc/rc.d/rc.local)
      一般來說,自定義的程序不需要執(zhí)行上面所說的繁瑣的建立shell增加鏈接文件的步驟,只需要將命令放在rc.local里面就可以了,這個shell腳本就是保留給用戶自定義啟動內(nèi)容的。

      6. 啟動終端和X-Window界面
      完成了系統(tǒng)所有的啟動任務(wù)后,linux會啟動終端或X-Window來等待用戶登錄。
      tty1,tty2,tty3...這表示在運行等級1,2,3,4的時候,都會執(zhí)行"/sbin/mingetty",而且執(zhí)行了6個,所以linux會有6個純文本終端,mingetty就是啟動終端的命令。
      除了這6個之外還會執(zhí)行"/etc/X11/prefdm -nodaemon"這個主要啟動X-Window

      7. 有關(guān)變換運行等級
      當linux已經(jīng)登錄之后,有時候還希望更換運行等級,一種方法是改變"/etc/inittab"內(nèi)的設(shè)置內(nèi)容,將"id:3:initdefault:"中的數(shù)字改成相應(yīng)等級,然后重啟即可。

      如果只是想暫時地改變運行等級,下次啟動還是按原等級登錄,可以直接使用init [0-6]命令來改變運行等級。一般來說,運行等級的不同只是相關(guān)的啟動服務(wù)內(nèi)容的不同而已,因此使用命令改變等級會比較兩個改變等級之間的服務(wù)內(nèi)容,關(guān)閉一些新等級中不需要的服務(wù)項目,啟動新等級需要的服務(wù),而保量新等級和原等級中共有的服務(wù)內(nèi)容。查詢目前等級的命令也很簡單,只需要輸入runlevel即可。如:[root@linux ~]# runlevel  結(jié)果顯示:N 3

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多