国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

從GRUB到內核 從內核到根文件系統

2024-08-27 23:58:13
字體:
來源:轉載
供稿:網友

按下電源,咔一下,電腦啟動啦,接著BIOS的畫面出來啦,不一會,GRUB的界面出來,然后就是一行接一行的字符在黑屏上閃動,不時地有OK的字樣出現.呵呵,不要走神哈,該輸入用戶名和密碼啦,….成功地進入了系統,這算是系統啟動完成啦。那么這個過程到底有什么事情發生啦,哪些值得我們學習呢?本文就以linux 開機為線索,講述引導器,內核,根文件系統的關系。

1)引導器

這個是大家所熟知的吧,linux下常用的就有:grub,這是當今主流啦;lilo,這啊,曾經風光過,現在讓grub接了重任;syslinux這是個輕量級的引導器,一般在光盤,USB上做引導器,做個liveUSB的應該很清楚哦,無盤啟動的應用中也能找到它的身影.

引導器的主要功能就是找到內核(vmlinuz),然后把它載入內存,當然還有initrd啦,以GRUB為例,在我的系統(centos5.2)里是這么寫的:

  1. #/boot/grub/menu.lst 
  2. title Centos 5.2 kernel-2.6.18-92.1.17.el5 
  3. root (hd0,7) 
  4. kernel /vmlinuz-2.6.18-92.1.17.el5 root=/dev/VolGroup00/LogVol00 
  5. initrd /initrd-2.6.18-92.1.17.el5.img 
  6. boot 

在這明確了內核的位置,并向內核傳遞了一些參數,initrd扮了一個很重要的角色,負責在內核訪問根文件系統前加載驅動。

2)內核

一個完整的內核就是由內核源碼產生的,在這kernel.org 能找到源碼,壓縮后有50M左右,解開后有好幾百M呢,我們可以重新編譯源碼來更新我們已有的內核,以提高性能和兼容能力。那么這個源碼經編譯后產出了哪些東東呢,出以我的機子為例:

A)內核部分,在/boot分區下

  1. /boot/initrd-2.6.18-92.1.17.el5.img 
  2. /boot/System.map-2.6.18-92.1.17.el5…………….這是符號表,函數與地址的映射關系 
  3. /boot/vmlinuz-2.6.18-92.1.17.el5 
  4. /boot/config-2.6.18-92.1.17.el5………………………..內核的配置文件,由make xconfig命令產生的 

B)內核模塊部分,在/lib/modules/2.6.18-92.1.17.el5目錄下,2.6.18-92.1.17.el5這是版本號,每一個人的機子上可能會不同,所有模塊都在這,還有它們之間的依賴關系

  1. [root@xx 2.6.18-92.1.17.el5]# pwd 
  2. /lib/modules/2.6.18-92.1.17.el5 
  3. [root@xx 2.6.18-92.1.17.el5]# ls -l 
  4. 總計 1128 
  5. lrwxrwxrwx 1 root root 48 11-11 20:14 build -> ../../../usr/src/kernels/2.6.18-92.1.17.el5-i686 
  6. drwxr-xr-x 2 root root 4096 11-05 03:09 extra 
  7. drwxr-xr-x 10 root root 4096 11-11 20:28 kernel ……………………………內核模塊就中此目錄 
  8. drwxr-xr-x 2 root root 4096 11-13 14:50 misc 
  9. -rw-r–r– 1 root root 252332 11-13 14:50 modules.alias 
  10. -rw-r–r– 1 root root 69 11-13 14:50 modules.ccwmap 
  11. -rw-r–r– 1 root root 209702 11-13 14:50 modules.dep………………….模塊間的依賴關系 
  12. -rw-r–r– 1 root root 147 11-13 14:50 modules.ieee1394map 
  13. -rw-r–r– 1 root root 375 11-13 14:50 modules.inputmap 
  14. -rw-r–r– 1 root root 2314 11-13 14:50 modules.isapnpmap 
  15. -rw-r–r– 1 root root 74 11-13 14:50 modules.ofmap 
  16. -rw-r–r– 1 root root 191108 11-13 14:50 modules.pcimap……………….物理設備與內核模塊的對應關系 
  17. -rw-r–r– 1 root root 589 11-13 14:50 modules.seriomap 
  18. -rw-r–r– 1 root root 105259 11-13 14:50 modules.symbols 
  19. -rw-r–r– 1 root root 322731 11-13 14:50 modules.usbmap 
  20. lrwxrwxrwx 1 root root 5 11-11 20:14 source -> build 
  21. drwxr-xr-x 2 root root 4096 11-05 03:09 updates 
  22. drwxr-xr-x 4 root root 4096 11-11 20:14 weak-updates 

注意source,build這兩個目錄,在裝顯卡驅動時就認識它們倆了吧.

C)頭文件及相關的內核配置文件

/usr/src/kernels/2.6.18-92.1.17.el5-i686,在構造或者是編譯相關內核模塊就要用到這個地方的文件,在安裝顯卡驅動的時候就是這個目錄下的東東,有沒有什么映象啊,為什么呢?當然是想看看3D桌面啦,是不是啊。。。。

  1. [root@xx 2.6.18-92.1.17.el5-i686]# pwd 
  2. /usr/src/kernels/2.6.18-92.1.17.el5-i686 
  3. [root@xx 2.6.18-92.1.17.el5-i686]# ls 
  4. arch drivers init kernel mm net sound 
  5. block fs ipc lib Module.kabi scripts symsets-2.6.18-92.1.17.el5.tar.gz 
  6. crypto include kabi_whitelist Makefile Module.symvers security usr 

頭文件在include目錄下

3)根文件系統

根文件系統很熟悉撒,開機后進入的系統就在根文件系統里,有/boot,/usr,/bin,/var等等,引導器,內核,根文件系統,有了一個大概的映象了,現在就說說它們之事有一些事兒.

引導器找內核,如GRUB它自代了一點驅動可以讀內核所處的文件系統,如syslinux它是通過扇區地址找到的內核,initrd內有個名叫linuxrc或init的可執行文件(shell腳本也可以),提供一個虛根環境,加載硬盤驅動,讀取根文件系統,為內核換根(從虛根環境到根文件系統)做個物質準備,內核換到根文件系統后,以前的虛根環境被umount掉啦,至此內核就可加載它所需要的內核模塊啦,然后系統就啟動啦.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石阡县| 宝兴县| 乳山市| 乐山市| 阜新| 岚皋县| 新晃| 永胜县| 隆化县| 石柱| 冀州市| 徐水县| 广宗县| 高雄市| 余干县| 江油市| 许昌市| 禄劝| 高邮市| 平乡县| 龙泉市| 普定县| 临安市| 莆田市| 金湖县| 潼南县| 南投市| 太和县| 舟山市| 全南县| 郸城县| 永川市| 盐池县| 麻江县| 仪征市| 万宁市| 沐川县| 天峻县| 淮南市| 靖江市| 建昌县|