CentOS系列啟動流程(5系列,6系列,7系列)

來源:互聯網
上載者:User

標籤:linux   核心   啟動流程   

一、Linux啟動核心檔案

    1.Linux系統組成

       動態視角:核心+根檔案系統

       靜態視角:磁碟分割+相關檔案

    2.Kernel特點

        (1)支援某塊化:.ko (kernel object)檔案

    centos7的ko檔案:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/80/69/wKiom1dAWsqgGSJbAAGIzZrrfQg922.jpg" title="ko檔案" alt="wKiom1dAWsqgGSJbAAGIzZrrfQg922.jpg" />

    centos6的ko檔案:

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/80/69/wKiom1dAW9PSC1y-AAGLXq46iqM024.jpg" title="ko檔案2.jpg" alt="wKiom1dAW9PSC1y-AAGLXq46iqM024.jpg" />

    注意:

    Linux核心模組檔案的命名方式通常為<模組名稱.ko>

    centos6系統的核心模組被集放在/lib/modules/‘uname -r ‘/目錄下

    centos7系統的核心模組被集放在/usr/lib/modules/‘uname -r ‘/目錄下


        (2)支援模組運行時動態裝載或卸載;

        模組的相關命令:

            a)載入模組:insmod   modprobe

                 insmod和modprobe的區別:

                 當a模組與b模組有依賴關係時,假設安裝b模組需先安裝a模組。

                 如果用insmod命令那麼需要先insmod  a.ko 然後再insmod  b.ko。

                 如果用modprobe命令那麼直接可以modprobeb.ko。

                 其中/lib/modules/“核心版本號碼”/modules.dep中記錄了模組之間的依賴關係。

                 通過modprobe載入的核心均在當前的電腦內有效,電腦重新啟動後需要重新載入才有效。
                 如果想要開機後自動掛載核心,需要將modprobe命令寫入/etc/rc.sysint檔案中

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/80/69/wKiom1dAYD_w1ssNAAEwyRfwgfg333.jpg" title="ip_vs.jpg" alt="wKiom1dAYD_w1ssNAAEwyRfwgfg333.jpg" />

            b)卸載模組:rmmod    modprobe -r

                rmmod:只需要調用模組名即可,比如安裝的時候是inmod  a.ko 安裝完畢後該模組存在於核心中的名字為a,那麼卸載該模組只需要rmmod  a即可。

                modprobe -r:能將依賴的模組一併卸載掉

                [[email protected] ~]# modprobe ip_vs  #動態載入ip_vs模組
                [[email protected] ~]# lsmod |grep ip_vs #查看模組是否載入成功

                ip_vs                 125220  0
                libcrc32c               1246  1 ip_vs
                ipv6                  317340  289 ip_vs
                [[email protected] ~]# modprobe -r ip_vs #卸載動態模組

                [[email protected] ~]# lsmod |grep ip_vs #模組已經卸載乾淨

            c)查看模組:lsmod

                輸出三列資訊

                分別為模組 佔用記憶體 是否被調用

                如果第三列為0則該模組可以隨時可以卸載。

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/80/69/wKiom1dAXiWCynvDAAB99f8BiMk997.jpg" title="lsmod.jpg" alt="wKiom1dAXiWCynvDAAB99f8BiMk997.jpg" />


        總結:Linux kernel在單核心設計模型上,吸取了多核心設計的優點,使用了模組化設計

            單核心設計:把所有功能整合於同一個程式;如Linux

            微核心設計:每種功能使用一個單獨的子系統實現;如Windows,Solaris


    3.kernel組成

       (1)核心檔案

              1)/boot/vmlinuz-VERSION-release

                      註: vmlinuz最後一一個z表示壓縮格式的kernel檔案

              2)ramdisk(中間臨時檔案根系統,動態建立出來的,使用緩衝和緩衝來加速對磁碟上的檔案訪問)

        安裝作業系統後臨時產生的檔案,能夠掃描當前作業系統的硬碟驅動,裝載對應的模組

        用於實現系統初始化的基於記憶體的磁碟裝置,把記憶體中的一段空間當記憶體使用量

        CentOS 5:/boot/initrd-VERSION-release.img  

        工具程式:mkinitrd

        CentOS 6,7:/boot/initramfs-VERSION-release.img 

        工具程式:dracut,mkinitrd

        注意:

            a)不是必須的,當自編譯核心時候知道硬碟介面時候將硬碟驅動編譯進kernel,ramdisk就不用了

            b)initrd,基於ramdisk的磁碟映像檔案;initramfs,基於ramdisk的檔案系統

                initrd啟動該後用free查看memory時候,有一段空間被buffers和cached佔用,二次緩衝


本文出自 “2913680” 部落格,謝絕轉載!

CentOS系列啟動流程(5系列,6系列,7系列)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.