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

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

    • 分享

      Linux系統(tǒng)啟動(dòng)過程詳解

       jfsir 2016-06-23
      Linux系統(tǒng)啟動(dòng)流程:
      POST --> BIOS(Boot Sequence引導(dǎo)次序) --> MBR(bootloader,446byte) --> Kernel --> initrd(initramfs) --> (ROOTFS) --> /sbin/init(/etc/inittab)
      內(nèi)核設(shè)計(jì)風(fēng)格:
      單內(nèi)核:
      所有功能都在一個(gè)內(nèi)核中。Linux采用單內(nèi)核,但是采用了微內(nèi)核的設(shè)計(jì)思想。LWP(輕量級(jí)進(jìn)程 light weight pprocess)。
      核心:
      /boot/vmlinuz-verison
      動(dòng)態(tài)加載ko(kernel object 內(nèi)核專用模塊)。
      內(nèi)核模塊(ko):/lib/modules/KERNELVERISON/
      常見的裝載內(nèi)核模塊命令:
      #insmod
      #modprobe
      微內(nèi)核:
      把其他功能做成子內(nèi)核。Windows Solaris。真正意義上的多線程。
      內(nèi)核提供的功能:
      文件系統(tǒng)
      進(jìn)程管理
      內(nèi)存管理
      網(wǎng)絡(luò)管理
      安全功能
      驅(qū)動(dòng)程序
      內(nèi)核初始化過程:
      1.設(shè)備探測(cè)。
      2.驅(qū)動(dòng)初始化
      可能從initrd(initramfs(RHEL6))件中裝載驅(qū)動(dòng)模塊。
      3.以只讀模式掛載根文件系統(tǒng)(rootfs)。
      4.裝載用戶空間內(nèi)第一個(gè)進(jìn)程init(PID=1)
      initrd:
      一個(gè)中間層系統(tǒng),在系統(tǒng)啟動(dòng)是提供必要的基本驅(qū)動(dòng),生成一個(gè)臨時(shí)根,為內(nèi)核提供訪問真正根文件系統(tǒng)所需要的基本驅(qū)動(dòng)程序。待內(nèi)核成功掛載根文件系統(tǒng)后,會(huì)把臨時(shí)根下的 /proc、 /sys、/dev移動(dòng)到真的根下。
      ramdisk --> initrd RHEL5 把內(nèi)存模擬成磁盤使用。
      ramfs --> initramfs RHEL6 把內(nèi)存模擬成磁盤使用。
      #chroot TEMPROOTDIR [COMMAND] 臨時(shí)切換為根目錄
      例如:
      #chroot /tmp/virroot /bin/csh
      #ldd FILE 顯示二進(jìn)制文件所依賴共享庫。
      init:
      系統(tǒng)啟動(dòng)的第一個(gè)進(jìn)程。
      bin文件路徑:
      /sbin/init
      /etc/init
      /bin/init
      內(nèi)核將會(huì)依次按以上目錄順序查找init,若都無法找到init,則內(nèi)核會(huì)執(zhí)行/bin/sh。
      配置文件:
      /etc/inittab
      每一行記錄一個(gè)要啟動(dòng)或運(yùn)行的服務(wù)(進(jìn)程)。
      設(shè)定的任務(wù):
      1.設(shè)定默認(rèn)運(yùn)行級(jí)別。
      2.運(yùn)行系統(tǒng)初始化腳本。
      /etc/rc.d/rc.sysinit
      3.按照以下順序運(yùn)行指定運(yùn)行級(jí)別對(duì)應(yīng)目錄下的下的服務(wù)類腳本。
      /etc/rc.d/init.d
      /etc/rc.d/rcNUM.d
      /etc/rc.d/rc.local
      4.設(shè)定ctrlaltdel組合鍵的動(dòng)作。
      5.定義ups電源在電源故障或恢復(fù)是執(zhí)行的操作。
      6.啟動(dòng)虛擬終端(level為2345)。
      1:2345:respawn:/sbin/mingetty tty1
      ...
      6:2345:respawn:/sbin/mingetty tty6
      7.啟動(dòng)圖形終端(level為5)。
      x:5:respawn:/etc/X11/perfdm-nodaemon
      每行結(jié)構(gòu)如下:
      id:runlevels:action:process
      id:服務(wù)參數(shù)的標(biāo)示,1~4個(gè)字符。
      id 默認(rèn)RUNLEVEL
      si 系統(tǒng)初始化
      l0~l6 指定RUNLEVEL
      ca 攔截到ctrl+alt+del
      pf 電源失效
      pr 電源恢復(fù)
      NUM 配置NUM號(hào)虛擬終端
      x 啟動(dòng)x服務(wù)
      runlevels:在哪個(gè)級(jí)別下運(yùn)行。
      action:在某個(gè)事件下執(zhí)行的動(dòng)作。
      initdefault 設(shè)定默認(rèn)運(yùn)行級(jí)別。
      sysinit 系統(tǒng)初始化。
      wait 級(jí)別切換至此級(jí)別時(shí)執(zhí)行。
      ctrlaltdel 重啟。
      powerfail 電源失效。
      powerokwait 電源失效后至關(guān)機(jī)前電源恢復(fù)。
      respawn 一旦程序終止會(huì)重新啟動(dòng)。
      process:要運(yùn)行的程序,定義使用絕對(duì)路徑。
      /etc/init/*.conf
      該目錄下的文件是把inittab文件進(jìn)行切片后產(chǎn)生的許多.conf文件。都是基于事件驅(qū)動(dòng)編寫的。
      重啟init:
      #init q
      #telinit q
      #kill -HUP 1
      運(yùn)行級(jí)別RUNLEVEL:
      各個(gè)級(jí)別區(qū)別在于啟動(dòng)的服務(wù)不同。
      0:halt
      1:single user mode
      直接怡管理員身份登錄,無需驗(yàn)證。
      2:mulit user mode no NFS
      不啟動(dòng)NFS等網(wǎng)域功能相關(guān)的服務(wù)器。
      3:mulit user mode text mode
      命令行模式
      4:reseved
      保留級(jí)別,暫時(shí)未定義。
      5:mulit user mode graphic mode
      圖形模式
      6:reboot
      運(yùn)行級(jí)別的設(shè)定:
      修改/etc/inittab
      查看運(yùn)行級(jí)別:
      #runlevel
      LSATLEVEL CURRENTLEVEL
      其中LASTLEVEL表示上一個(gè)級(jí)別,N表示沒切換過。CURRENTLEVEL表示當(dāng)前級(jí)別。
      切換運(yùn)行級(jí)別:
      #init [OPTION] LEVEL
      [OPTION]
      LEVEL
      0 關(guān)機(jī)
      1 單用戶模式
      2 命令行模式(不啟用NFS)
      3 命令行模式
      4 保留模式
      5 圖形界面
      6 重啟
      S 單用戶模式
      s 單用戶模式
      /etc/rc.d/rc.sysinit
      設(shè)置系統(tǒng)的基本環(huán)境,完成以下任務(wù):
      1.激活udev和selinux。
      2.根據(jù)/etc/sysctl.conf文件來設(shè)定內(nèi)核參數(shù)。
      執(zhí)行sysctl -p。
      3.設(shè)定系統(tǒng)時(shí)鐘。
      4.裝載鍵盤映射。
      5.啟用swap分區(qū)。
      執(zhí)行swapon -a -e。
      6.設(shè)置主機(jī)名,從/etc/sysconfig/network中讀取HOSTNAME參數(shù)。
      7.文件系統(tǒng)檢測(cè),根據(jù)/etc/fstab,檢查并掛載其他文件系統(tǒng)。并且在無錯(cuò)誤以后,將根以讀寫方式重新掛載。
      8.初始圍硬件設(shè)備。
      定義在/etc/modprobe.conf中的模塊
      ISA、PnP的設(shè)備
      USB設(shè)備
      9.啟動(dòng)RAID和LVM
      10.如有必要,卸載initrd
      11.初始化串行設(shè)備。根據(jù)/etc/rc.serial進(jìn)行初始化。默認(rèn)無此腳本,需要自行建立。
      12.清理過期的鎖文件(/var/lock/subsys/*)和IPC文件。
      13.重新設(shè)置磁盤參數(shù),根據(jù)/etc/sysconfig/harddisk DEVICE。
      /etc/rc.d/init.d/*
      服務(wù)類腳本,SysV風(fēng)格,存放在/etc/rc.d/init.d下。有一個(gè)鏈接文件/etc/init.d --> /etc/rc.d/init.d。
      配置文件:
      /etc/sysconfig/服務(wù)腳本同名
      腳本至少接受以下參數(shù):
      start|stop|restart|status|reload|condrestart(有條件重啟,已啟動(dòng)的重啟,未啟動(dòng)的不重啟。)
      腳本共有特性:
      #chkconfig: RUNLEVELS SS KK
      RUNLEVELS 啟動(dòng)級(jí)別
      RUNLEVELS可以用-表示沒有級(jí)別默認(rèn)為SNUM開頭的鏈接,即全部都是KNUM開頭的鏈接。
      SS 啟動(dòng)的優(yōu)先級(jí)
      KK 關(guān)閉的優(yōu)先級(jí)
      當(dāng)使用chkconfig命令為此腳本在rcNUM.d目錄創(chuàng)建鏈接時(shí),RUNLEVEL表示默認(rèn)創(chuàng)建為SNUM開頭的文件,除此之外的級(jí)別均默認(rèn)創(chuàng)建為KNUM開頭的鏈接。S后邊的啟動(dòng)優(yōu)先級(jí)為SS所表示的數(shù)字,K后邊的關(guān)閉優(yōu)先級(jí)次序?yàn)镵K所表示的數(shù)字。一般SS+KK=99。
      #description: DESCRIPTIONS
      描述信息,用戶說明此腳本的簡(jiǎn)單功能??梢允褂肻進(jìn)行續(xù)行。
      /etc/rc.d/rc.local
      /etc/rc.d/rcNUM.d/S99local --> /etc/rc.d/rc.local
      /etc/rc.local --> /etc/rc.d/rc.local
      在系統(tǒng)啟動(dòng)最后執(zhí)行的服務(wù),準(zhǔn)確說應(yīng)該是腳本。不方便定義為服務(wù)等的命令都可以在其中寫入,在用戶登錄前執(zhí)行。
      例如命令行模式登陸式的顯示的歡迎內(nèi)容等。
      GRUB:GRand Unified Bootloader
      grub啟動(dòng)流程:
      stage1:裝在MBR中。目的是為了引導(dǎo)stage2。
      stage1.5:用來識(shí)別常見的文件系統(tǒng)。
      stage2:位于內(nèi)核所在分區(qū)。/boot/grub/。
      /etc/grub.conf
      grub配置文件。是鏈接文件,指向/boot/grub/grub.conf
      主要內(nèi)容如下:
      default=0
      設(shè)定默認(rèn)啟動(dòng)的title編號(hào),編號(hào)從0開始。
      timeout=5
      等待選擇超時(shí)時(shí)間。單位是秒。
      splashimeage=(hd0,0)/grub/palash.xmp.gz
      指定grub背景圖片。
      hidenmenu
      是否隱藏菜單。
      password --md5 PASSWORD
      設(shè)定GRUB的編輯的密碼??梢允褂胓rub-md5-crypt來生成加密的密碼。
      title TITLENAME
      內(nèi)核標(biāo)題或者是OS的名稱,可自由修改。
      root (hdDISKNUM,PARTNUM)
      指定內(nèi)核文件所在的設(shè)備和分區(qū)。對(duì)grub而言,所有硬盤一律顯示為為hd。DISKNUM表示磁盤序號(hào),PARTNUM表示分區(qū)序號(hào)。
      kernel KERNEL CMDLINE
      指定kernel路徑即傳遞給內(nèi)核的參數(shù)。參數(shù)文件可以在/proc/cmdline中看到。
      initrd INIDRD
      指定initrd路徑。
      password --md5 PASSWORD 啟動(dòng)內(nèi)核或OS的密碼。
      安裝grub:
      #fdisk DEVICE
      /dev/PART1 用來做boot
      /dev/PART2 用來做sysroot
      #mkdir /DIR/boot
      #mount /dev/PART1 /DIR/boot
      #grub-install --root-directory=/DIR DEVICE
      此種方式要保證把內(nèi)核文件所在分區(qū)掛載在/boot上。grub只要指定/boot所在的父目錄就能自動(dòng)找到/boot。
      #vim /DIR/boot/grub.conf
      修復(fù)grub:
      安裝grub stage1:
      #grub
      grub> root (hdDISKNUM,PARTNUM) 指定內(nèi)核所在的磁盤和分區(qū)。
      grub> setup (hdDISKNUM) 在指定的硬盤上安裝grub。
      grub> quit
      grub.conf文件丟失:
      開機(jī)進(jìn)入grub后操作。
      grub> find (hdDISKNUM,PARTNUM)/
      按tab鍵會(huì)顯示出相關(guān)文件。
      grub> root (hdDISKNUM,PARTNUM)
      grub> kernel /KERNEL
      grub> initrd /INITRD
      grub> boot
      #mingetty [OPTION] 啟動(dòng)終端
      [OPTION]
      --loginprog=/bin/login 啟動(dòng)中斷后執(zhí)行的程序。默認(rèn)為/bin/login。
      #agetty [OPTION] PROT BAUDRATE  替代getty命令。
      [OPTION]
      -l LOGIN PROGRAME 指定登陸程序
      -n 不需要用戶輸入用戶名。不需要用戶輸入登錄信息。配合-l一起使用。
      例如:
      #agetty -l /bin/bash 38400  登陸bash并將波特率設(shè)定為38400。
      #stty [OPTION] DEVICE SETTING 改變和顯示終端設(shè)備。
      [OPTION]
      -F --file=DEVICE 打開并使用指定的設(shè)備
      SETTING:
      size 顯示行(rows)列(columns)數(shù)。
      speed 顯示終端速率。
      例如:
      #stty -F /dev/console size 物理終端
      25 80 25行80列。
      #stty -F /dev/console speed
      38400 每秒38400個(gè)字符
      #chkconfig [OPTION]
      指定SysV風(fēng)格腳本,自動(dòng)在/etc/rcNUM.d下創(chuàng)建鏈接。
      [OPTION]
      --list SERVICE  列出所有獨(dú)立守護(hù)進(jìn)程的啟動(dòng)設(shè)定。不加參數(shù)顯示所有設(shè)定。
      --add SERVICE
      自動(dòng)創(chuàng)建鏈接,將SERVICE添加到chkconfig控制的服務(wù)列表中。下次系統(tǒng)啟動(dòng)生效。
      --del SERVICE
      刪除SERVICE所有鏈接文件。
      --level [RUNLEVELS] SERVICE on|off
      指定級(jí)別為RUNLEVELS,SERVICE啟動(dòng)或關(guān)閉。對(duì)于瞬時(shí)守護(hù)進(jìn)程不需要指定RUNLEVLES。RUNLEVELS可以省略,省略默認(rèn)為2345級(jí)別。
      linux常見的關(guān)機(jī)和重啟命令:
      shutdown
      halt
      -p 切斷電源
      需要配合exec命令使用。
      reboot
      poweroff
      init 0
      init 6
      #exec 執(zhí)行文件,并以子進(jìn)程替換父進(jìn)程。
      例如:
      #exec halt -p
      守護(hù)進(jìn)程的類型:
      獨(dú)立守護(hù)進(jìn)程
      瞬時(shí)守護(hù)進(jìn)程
      不需要關(guān)聯(lián)至運(yùn)行級(jí)別。
      xinetd:超級(jí)守護(hù)進(jìn)程。管理所有瞬時(shí)守護(hù)進(jìn)程。需要關(guān)聯(lián)運(yùn)行級(jí)別。
      本文永久更新鏈接地址http://www./Linux/2015-03/114679.htm

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

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多