九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Linux系統(tǒng)啟動(dòng)流程


POST(加電自檢)-->bootsequence(引導(dǎo)次序,BIOS-->Boot LoaderMBR-->Kernel+ramdisk(臨時(shí)根,initrdinitramfs-->mount rootfs(根切換)-->/sbin/init(配置文件,CentOS 5:/etc/inittab, CentOS6 /etc/init/*.conf


設(shè)置默認(rèn)運(yùn)行級(jí)別-->指定系統(tǒng)初始化腳本-->初始化額外的硬件設(shè)備并加載驅(qū)動(dòng)程序-->啟動(dòng)(關(guān)閉)服務(wù)(/etc/rc.d/rc#.d,/etc/rc.d/init.d/-->/etc/rc.d/rc.local-->設(shè)置CtrlAltDel組合的功能-->啟動(dòng)終端(mingetty),并在終端附加登錄程序(login-->如果級(jí)別為5,則要啟動(dòng)X server;


一、POST加電自檢:

  當(dāng)我們打開計(jì)算機(jī)電源,計(jì)算機(jī)首先會(huì)讀取BIOS信息,BIOS中記錄了CPU、內(nèi)存、設(shè)備啟動(dòng)序列、硬盤等信息;然后對(duì)系統(tǒng)啟動(dòng)關(guān)鍵硬件設(shè)備進(jìn)行檢測(cè),如果出現(xiàn)嚴(yán)重故障則停機(jī);如果是一般故障,會(huì)發(fā)出報(bào)警提示,等待故障清楚;如果沒有故障,加電自檢完成。

  BIOSBasic Input Output System是保存于主板CMOS芯片中的程序代碼;

  CMOSComplementaryMetal Oxide Semiconductor):是主板上的ROM芯片;


二、獲取引導(dǎo)次序,讀取MBR

  加電自檢完成之后:CPU會(huì)讀取BIOS信息中的設(shè)備啟動(dòng)序列,按照次序引導(dǎo),按次序找引導(dǎo)設(shè)備,第一個(gè)有引導(dǎo)程序(MBR)的設(shè)備即為啟動(dòng)PC server所用到的設(shè)備;

 

  可作為啟動(dòng)設(shè)備:光驅(qū),便攜式移動(dòng)設(shè)備,硬盤,網(wǎng)卡(系統(tǒng)引導(dǎo),PXE

    PXE實(shí)現(xiàn)系統(tǒng)引導(dǎo)DHCP,tftp(kernel+ramdisk)


  MBR(主引導(dǎo)記錄,Master BootRecord):

  MBR位于磁盤的0磁道0扇區(qū),占用512個(gè)字節(jié):

1
2
3
446bytes:Boot Loader,主程序;
64bytes:PartitionTable,硬盤分區(qū)表,每16bytes標(biāo)記一個(gè)分區(qū),一共4分區(qū);3個(gè)主分區(qū),1個(gè)擴(kuò)展分區(qū),擴(kuò)展分區(qū)還可以劃分為若干個(gè)邏輯分區(qū);
2bytes:MBR有效性標(biāo)記;



三、Boot Loader

  操作系統(tǒng)內(nèi)核運(yùn)行之前的一段小程序,選擇要啟動(dòng)的內(nèi)核(在當(dāng)前磁盤的某或某些分區(qū)上);


1、Boot Loader比較常見的有GRUBLILO

1
2
3
4
5
LILO:LInux Loader
  0-1023范圍內(nèi)的柱面構(gòu)成的分區(qū)的內(nèi)核文件,通常應(yīng)用與嵌入式計(jì)算機(jī);
GRUB:GRand Unified Bootloader
  CentOS 5&6:Grub 0.97
  CentOS7:Grub2 1.96


2、GRUBGRand Unified Bootloader

  1)、grub程序由兩段組成:

    

1
2
3
stage1:位于MBR中(0柱面 0磁道 1扇區(qū));
stage1_5:位于MBR隨后的扇區(qū);
stagr2:讀取grub.conf配置文件,并實(shí)現(xiàn)引導(dǎo)功能的擴(kuò)展;


   grub目錄和配置文件位置:


  2)、grub的功能:

1
2
3
4
5
6
7
8
9
10
1、提供菜單,并提供交互式接口;
  e:進(jìn)入編輯模式;
  a:直接修改內(nèi)核參數(shù);
  c:進(jìn)入grub命令行模式;
2、允許用戶選擇要啟動(dòng)的內(nèi)核或系統(tǒng);
  允許傳遞引導(dǎo)參數(shù)給內(nèi)核;
  選擇界面可隱藏;
3、為編輯功能提供保護(hù)機(jī)制;
  啟用內(nèi)核文件:選擇運(yùn)行制定的內(nèi)核需要先輸入密碼;
  傳遞參數(shù):使用e命令需要先輸入密碼;


 

    在菜單選擇倒計(jì)時(shí)界面按任意鍵進(jìn)入grub菜單:


    按e鍵進(jìn)入編輯菜單可以看到kernelinitrd


  3)、grub命令行接口:

1
2
3
4
5
6
7
8
9
10
11
>root(DEVICE):指定哪個(gè)分區(qū)為接下來要啟動(dòng)的系統(tǒng)或內(nèi)核文件所在的分區(qū);
  所有硬盤都識(shí)別為hd;
 不同的硬盤基于數(shù)字標(biāo)識(shí):如hd0,hd1等;
 同一個(gè)硬盤上的不同分區(qū),也使用數(shù)字標(biāo)識(shí),如hd0,0 hd1,5;
  
>find(DEVICE)/path/to/file:查找文件
  
>kernel:指定要運(yùn)行的內(nèi)核文件;
>initrd:為要運(yùn)行的內(nèi)核指定其可用的ramdisk文件;
  
>boot:啟動(dòng)此前配置好的內(nèi)核或系統(tǒng);


 

  按c鍵進(jìn)入grub命令行接口:


  4)、配置文件grub.conf

    文件位置:/boot/grub/grub.conf


  參數(shù):

1
2
3
4
5
6
7
8
default=:選擇第幾個(gè)title配置的內(nèi)核或系統(tǒng),各title從0開始編號(hào);
timeout=#:菜單顯示的超時(shí)時(shí)長;
splashimage=/path/to/some_image_file:指定菜單的背景圖片;此圖片只能為14bits色,xpm格式,gzip壓縮;
hiddenmenu:隱藏菜單
titleTILTE STRING:顯示于菜單中的標(biāo)題;
root:指定引導(dǎo)分區(qū);
kernel:指定kernel位置;
initrd:指定initramfs位置;


  在grub菜單按a鍵可在內(nèi)核加載前編輯內(nèi)核參數(shù):


  常用參數(shù):

1
single:單用戶模式啟動(dòng);


  5)、grub保護(hù)機(jī)制:

1
2
3
4
5
6
1、生成密碼:
  #grub-md5-crypt
2、保護(hù)編輯功能,則需要title之外的添加:
  #password--md5 密碼串
3、保護(hù)使用某內(nèi)核,則需要內(nèi)核對(duì)應(yīng)的title之下添加:
  #password--md5 密碼串


  6)、安裝grub的方式:

1
2
3
4
5
6
7
8
使用grub-install命令:
  #grub-install [--root-directory=/path/to/somewhere] DEVICE
    --root-directory=/path/to/somewhere
  /path/to/somewhere:內(nèi)核及initrd文件所在的分區(qū)的掛載點(diǎn)的父目錄,且此掛載點(diǎn)必須叫boot;
例如:/dev/sdb1:/mnt/boot
  #grub-install --root-directory=/mnt /dev/sdb

 

四、kernel+ramdisk

  根據(jù)grub設(shè)定的內(nèi)核映像所在路徑,系統(tǒng)讀取內(nèi)核文件,并進(jìn)行解壓縮操作;系統(tǒng)將解壓縮后的內(nèi)核放在內(nèi)存中,完成內(nèi)核自身初始化;探測(cè)所能識(shí)別的硬件設(shè)備,并加載驅(qū)動(dòng)程序,完成核心環(huán)境建立;


  要讀取內(nèi)核文件必須訪問根文件系統(tǒng)要加載根文件系統(tǒng)所在的設(shè)備,而此時(shí)根文件系統(tǒng)沒有掛載,要掛載根文件系統(tǒng)需要根文件系統(tǒng)所在設(shè)備的驅(qū)動(dòng)程序。為解決這個(gè)問題,grub在加載內(nèi)核同時(shí),也把ramdisk加載到內(nèi)存中并運(yùn)行;


  展開ramdisk鏡像文件:


  ramdisk在內(nèi)存中表現(xiàn)為一個(gè)虛擬根文件系統(tǒng)initfs,里面有如同Linux根目錄下的binsbin、dev、etclib、proc、usr、vartmp等目錄;initfs將內(nèi)核與真實(shí)根建立聯(lián)系,內(nèi)核通過initfs加載驅(qū)動(dòng)程序,然后進(jìn)行根切換,掛載真實(shí)根目錄;至此內(nèi)核加載完成;


1、kernel:

  內(nèi)核的功能:進(jìn)程管理、文件系統(tǒng)、硬件驅(qū)動(dòng)(在內(nèi)核模式下運(yùn)行)、內(nèi)存管理、安全功能(SELinux)、網(wǎng)絡(luò)子系統(tǒng);


  1)、內(nèi)核設(shè)計(jì)流派:

1
2
3
4
5
6
7
8
9
10
單內(nèi)核體系結(jié)構(gòu):
  linux:支持模塊化,模塊可以動(dòng)態(tài)裝卸載
  linux內(nèi)核:核心+外圍模塊
    核心:/boot/vmlinux-VERSION-release
    模塊:/lib/modules/VERSION-release
      .ko:kernel object
    ramdisk:/boot/initramfs-VERSION-release.img
      在內(nèi)核啟動(dòng)過程中裝載根文件系統(tǒng)時(shí)有用;模塊間有可能存在依賴關(guān)系;
微內(nèi)核體系結(jié)構(gòu):
  windows、solaris


  2)、內(nèi)核的某些功能:

1
2
3
編譯進(jìn)內(nèi)核本體 [*]
編譯成內(nèi)核模塊 [M]
不選擇使用     [ ]

 

  3)、內(nèi)核模塊管理:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#lsmod:顯示內(nèi)核已裝載模塊
  
動(dòng)態(tài)裝卸載模塊:
  #modprobe -rMOD_NAME:卸載;
  #modprobe MOD_NAME:裝載;
  #insmod/path/to/module_file:裝載;
  #rmmod MOD_NAME:卸載;
查看某模塊的詳細(xì)信息:
  #modinfo MOD_NAME
                                     
檢查并生成模塊間依賴關(guān)系的命令:
  #depmod


2、ramdisk

1
2
3
4
5
6
CentOS 5:SysV,init;/etc/inittab--/etc/rc.d/rc.sysinit;
CentOS 6:upstart,init;/etc/init/*.conf(/etc/inittab) --> /etc/rc.d/rc.sysinit
  #chkconfig
CentOS 7:systemd, init;/usr/lib/systemd/system/;借鑒MAC OS X;
  #systemctl

 

五、/sbin/init

  內(nèi)核加載完成之后,第一個(gè)運(yùn)行的程序就是/sbin/init,該文件會(huì)先讀取/etc/init/rcS.conf文件:


設(shè)定系統(tǒng)運(yùn)行級(jí)別:

1
2
3
4
5
6
7
8
9
10
0-6:7個(gè)運(yùn)行級(jí)別:
  0:關(guān)機(jī);
  1:single usermode,single,s,S,不啟動(dòng)網(wǎng)絡(luò)功能,不啟動(dòng)用戶認(rèn)證,單用戶模式(維護(hù)模式);
  2:multi usermode,不支持NFS功能;
  3:完全多用戶模式,文本接口,不啟動(dòng)圖形界面;
  4:未使用;預(yù)留級(jí)別;
  5:完全多用戶模式,圖形接口;
  6:重啟;
#init:切換運(yùn)行級(jí)別;

 


 

六、/etc/rc.d/rc.sysinit:系統(tǒng)初始化腳本

查看/etc/rc.d/rc.sysinit文件部分內(nèi)容:


初始化設(shè)置流程:

1
2
3
4
5
6
7
8
9
10
11
設(shè)定主機(jī)名:讀取/etc/sysconfig/network文件中的HOSTNAME參數(shù),并以之設(shè)定主機(jī)名;
打印文本歡迎信息:
激活SELinux和udev;
掛載/etc/fstab文件中定義的其他文件系統(tǒng);
激活swap;
檢測(cè)根文件系統(tǒng),并以讀寫方式重新掛載;
設(shè)置系統(tǒng)時(shí)鐘;
根據(jù)/etc/sysctl.conf設(shè)置內(nèi)核參數(shù);
激活LVM和RAID設(shè)備;
加載額外設(shè)備的驅(qū)動(dòng)程序;
清理操作;


七、啟動(dòng)內(nèi)核模塊:

  依據(jù)/etc/modprobe.d/*.conf文件裝載內(nèi)核模塊:


八、執(zhí)行指定運(yùn)行級(jí)別的腳本程序:

  /etc/rc.d/rc#.d/:啟動(dòng)指定的默認(rèn)級(jí)別的默認(rèn)為啟動(dòng)的服務(wù),停止指定的級(jí)別下默認(rèn)為關(guān)閉的服務(wù);


  查看/etc/rc.d/rc3.d/目錄:


1、目錄中為鏈接文件指向服務(wù)腳本:

1
2
3
4
S##:默認(rèn)啟動(dòng)的服務(wù);
K##:默認(rèn)停止的服務(wù);
##:01-99,數(shù)字越小,越優(yōu)先啟動(dòng)或關(guān)閉;
  先啟動(dòng)的后關(guān)閉(自動(dòng)解決依賴關(guān)系);


2、chkconfig:創(chuàng)建或改變連接文件;

1
2
3
4
5
6
7
8
9
10
11
#chkconfig --add SRV_SCRIPT:創(chuàng)建;
#chkconfig --del SRV_SCRIPT:刪除;
#chkconfig SRV_SCRIPT {on|off}:開機(jī)自動(dòng){啟動(dòng)|關(guān)閉};
  默認(rèn)為2345級(jí)別;
  --level######
腳本如果期望能夠被chkconfig命令使用,要在腳本中添加如下行:
  #chkconfig:- 85 15
    -:當(dāng)此腳本由chkconfig控制時(shí),默認(rèn)哪些級(jí)別就是開啟的;
    85:啟動(dòng)優(yōu)先級(jí);
    15:關(guān)閉優(yōu)先級(jí);


 

九、/etc/rc.d/rc.local

  是一個(gè)腳本,通常為系統(tǒng)啟動(dòng)完成的最后運(yùn)行一個(gè)腳本;

    定義一些組合鍵的功能:通常是Ctrl+Alt+Delete

    初始化字符終端;

    如果有需要,啟動(dòng)圖形終端;


十、/bin/logon

  登陸程序:顯示登陸提示符,等待用戶輸入usernamepasswd;


本文出自 “小馬的學(xué)習(xí)記錄” 博客,請(qǐng)務(wù)必保留此出處http://masachencer.blog.51cto.com/8683770/1672797

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
centos5,6 系統(tǒng)啟動(dòng)流程
Liunx 下 rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d 介紹
linux開機(jī)啟動(dòng)腳本的順序 - linux內(nèi)核以及高級(jí)編程 - Lover 七亦
一種創(chuàng)建小型化Linux系統(tǒng)的方法
Linux服務(wù)器啟動(dòng)過程詳解(引載)_江海川行
Linux啟動(dòng)過程詳解-《別怕Linux編程》之八
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服