欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
打造個(gè)人專(zhuān)屬的微型Linux --啟動(dòng)原理篇

首先此篇先大體介紹下整個(gè)系統的開(kāi)機流程,再來(lái)對其一一展開(kāi)進(jìn)行詳細的說(shuō)明

第一步:首先進(jìn)行開(kāi)機自檢POST,確認硬件正常后進(jìn)入下一步

第二步:BIOS initialization(BOOT SEQ)BIOS初始化,并按照BIOS中設定的開(kāi)機啟動(dòng)加載設備進(jìn)行依次的檢測

第三步:MBR(bootloader)在BIOS檢測到某一設備可以啟動(dòng)后,開(kāi)始加載MBR上的引導程序,在linux中,引導分為2個(gè)階段,首先加載在MBR上的一段極其精簡(jiǎn)的啟動(dòng)程序,由此啟動(dòng)程序引導boot目錄中的grub,再由grub進(jìn)行具體系統的引導啟動(dòng)(grub是一個(gè)很強大的系統啟動(dòng)引導管理軟件,也可以引導window)

第三步:Kernel initialization 在由grub引導linux內核后,啟動(dòng)內核,由內核檢測基本硬件設備裝載對應驅動(dòng),并裝載rootfs和啟動(dòng)init(/etc/inittab)

第四步:系統啟動(dòng)和初始化,在啟動(dòng)init后,才開(kāi)始真正的系統啟動(dòng),內核退居到后臺,由init來(lái)接管整個(gè)系統的加載和啟動(dòng),init會(huì )根據設定進(jìn)行系統進(jìn)一步的初始化,下面是init啟動(dòng)后進(jìn)行的一系列操作

1.完成系統整體初始化:/etc/rc.d/rc.sysinit (此腳本可以細細研讀)

2.啟動(dòng)對應級別的各個(gè)服務(wù):/etc/rc.d/rc 利用/etc/rc.d/ec[0-6].d/目錄下的所有腳本啟動(dòng)或者停止服務(wù)

/etc/rc.d/ec[0-6].d/下都是鏈接文件,鏈接到/etc/rc.d/init.d/下的各個(gè)腳本

3./etc/rc.local (鏈接到/etc/rc.d/rc.local)給用戶(hù)定義的額外開(kāi)機操作項

4.啟動(dòng)虛擬終端,驗證用戶(hù)登錄(圖形界面則調用其他如XDM來(lái)驗證用戶(hù)登錄)

至此 系統啟動(dòng)完整,可以說(shuō),整個(gè)系統的啟動(dòng)都是靠一堆腳本來(lái)完成的

第一二步驟涉及到硬件的POST和BIOS階段就不再細說(shuō)了,從bootloader開(kāi)始說(shuō)起

bootloader

這是一段放置在MBR錢(qián)446字節中的一段精簡(jiǎn)的引導程序(MBR一共有512字節,后64字節既是分區表,還有最后2個(gè)字節的填充)

常見(jiàn)的bootloader程序有

LILO:LInux LOader 可以引導多個(gè)操作系統,但不支持大硬盤(pán)

GRUB:GRand Unified Bootloader 目前比較常見(jiàn)的引導加載器,這是一個(gè)分段的引導加載器,在Ubunt上用的是GRUB1.9x。

時(shí)隔10年,最新的GRUB2在昨天正式發(fā)布了,有興趣的童鞋可以去關(guān)注下

可以在開(kāi)機時(shí)進(jìn)入GRUB的交互模式,直接輸入參數啟動(dòng)系統,在這里可以輸入單用戶(hù)啟動(dòng)參數直接進(jìn)入單用戶(hù)模式進(jìn)行密碼修改等操作

之前說(shuō)這是一個(gè)分段的引導程序這里來(lái)說(shuō)說(shuō)具體是怎么分段的

第一段:MBR

用來(lái)引導進(jìn)入第二段,在完成第一段后,初始化GRUB自我初始化后,并正常啟動(dòng)第二段

第二段:/boot/grub

由于MBR上的引導程序只有446字節,所以能放置的內容很少,功能很弱,所以通過(guò)引導啟動(dòng)第二段放置在磁盤(pán)中/boot/grub目錄下強大的GRUB程序,來(lái)擴展其更為強大的引導功能

此目錄下的配置文件

/boot/grub/grub.conf

搬照我的配置文件來(lái)詳細說(shuō)明

  1. # grub.conf generated by anaconda  
  2. #  
  3. # Note that you do not have to rerun grub after making changes to this file  
  4. # NOTICE:  You do not have a /boot partition.  This means that  
  5. #          all kernel and initrd paths are relative to /, eg.  
  6. #          root (hd0,0)  
  7. #          kernel /boot/vmlinuz-version ro  root =/dev/sda1  
  8. #          initrd /boot/initrd-[generic-]version.img  
  9. # boot =/dev/sda 
  10.  
  11. #以上是注釋說(shuō)明 
  12.  
  13. #以下是全局設定  
  14. default = 0  #默認啟動(dòng)的系統順序,從0開(kāi)始數 
  1. timeout = 5  #等待用戶(hù)選擇系統的超時(shí)時(shí)間  
  2.  
  3. splashimage =(hd0,0)/boot/grub/splash.xpm.gz #開(kāi)機圖片的位置,這里的位置,由于GRUB是直接識別硬盤(pán)的,所以和在linux的樹(shù)狀文件系統要區分一下,如果在linux中boot掛載點(diǎn)是和單獨分區,那么只要指向boot分區下的目錄,不用從boot開(kāi)始,直接寫(xiě)成 splashimage =(hd0,0)/grub/splash.xpm.gz 我這里將boot和根放在同一分區,所以從boot目錄開(kāi)始寫(xiě)  
  4.  
  5. hiddenmenu #是否隱藏菜單 
  6.  
  7.   
  8.  
  9. #以下是各個(gè)引導系統的設定  
  10. title CentOS (2.6.32-220.el6.i686) #菜單顯示名稱(chēng)  
  11.  
  12.     root (hd0,0) #內核所在分區  
  13.  
  14.     kernel /boot/vmlinuz-2.6.32-220.el6.i686 ro  root = UUID =f7ba45db-7d52-407e-996d-0d7c087f7a1a rd_NO_LUKS rd_NO_LVM  LANG = en_US .UTF-8 rd_NO_MD quiet  SYSFONT = latarcyrheb -sun16 rhgb  crashkernel = auto    KEYBOARDTYPE = pc   KEYTABLE = us  rd_NO_DM #內核所在位置和需要向內核傳遞的參數  
  15.  
  16.      initrd /boot/initramfs-2.6.32-220.el6.i686.img #這是一個(gè)小linux,完整,精悍。 為了防止內核中沒(méi)有根系統文件的驅動(dòng)產(chǎn)生系統啟動(dòng)死循環(huán)(比如根是放在lvm設備中),先加載initrd這個(gè)精簡(jiǎn)的linux,然后內核借助這個(gè)精簡(jiǎn)的linux加載根文件系統的驅動(dòng),然后切換到真正的根文件系統繼續進(jìn)行系統加載 
  17.  
  18.     password 123456 #啟動(dòng)此系統需要的密碼,也可以放在全局設定中,表示在開(kāi)機進(jìn)入交互式GRUB編輯需要輸入密碼 

Kernel initialization

1、硬件探測

2、硬件驅動(dòng)初始化(initrd)

3、掛載根文件系統(為了避免額外進(jìn)程寫(xiě)操作破壞文件系統,所以在這里是使用只讀掛載)

4、啟動(dòng)/sbin/init (PID:1)

在Kernel階段,需要掛在根目錄,而linux單內核系統,但它也吸收了微內核的特性,所以它包括了內核模塊。

內核:/boot/vmlinuz-version 模塊:/libmodules/version/

把模塊集成進(jìn)內核能提高效率,但也增大了內核體積,所以使用加載模塊的方式提高了可管理性

這里就造就了一個(gè)問(wèn)題,由于內核比較精簡(jiǎn),所以不可能集成進(jìn)很多的驅動(dòng)進(jìn)去,由內核初始化后是必須要加載根文件系統的,一旦根文件系統放在RAID或LVM設備上,由于內核缺少這些高級文件系統的驅動(dòng),會(huì )導致無(wú)法加載。于是就在這里加了一層中間層,就是這里的initrd了。initrd是一個(gè)微型的根文件系統,內置額外內核中沒(méi)有的驅動(dòng)模塊

首先內核借助initrd加載根文件系統,然后加載真實(shí)根文件系統驅動(dòng)和其它必須驅動(dòng)后,切換到真正的根文件系統。所以initrd只是起到一個(gè)過(guò)渡的作用

內核初始化產(chǎn)生的所有信息保存在/var/log/dmesg 二進(jìn)制文件,使用dmesg命令查看

init 系統初始化

加載完成內核后,啟動(dòng)整個(gè)系統的父進(jìn)程,PID為1 的init

init接管系統后,結合/etc/initab的配置,加載各種需要的庫文件,啟動(dòng)各個(gè)進(jìn)程,比如bash,用戶(hù)登錄驗證等。。。

此篇寫(xiě)述說(shuō)原理,具體打造過(guò)程請期待下一篇。 見(jiàn) http://www.linuxidc.com/Linux/2012-07/64754.htm

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Linux系統啟動(dòng)流程
Linux 系統啟動(dòng)過(guò)程分析
Linux系統啟動(dòng)詳解
一文看懂Linux開(kāi)機流程BIOS
Linux系統啟動(dòng)的基本過(guò)程和步驟--轉載??! - lanhaitaoa的個(gè)人空間 - C...
Linux系統啟動(dòng)過(guò)程詳解
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久