激情五月天婷婷,亚洲愉拍一区二区三区,日韩视频一区,a√天堂中文官网8

<ul id="buwfs"><strike id="buwfs"><strong id="buwfs"></strong></strike></ul>
    <output id="buwfs"></output>
  • <dfn id="buwfs"><source id="buwfs"></source></dfn>
      <dfn id="buwfs"><td id="buwfs"></td></dfn>
      <div id="buwfs"><small id="buwfs"></small></div>
      <dfn id="buwfs"><source id="buwfs"></source></dfn>
      1. <dfn id="buwfs"><td id="buwfs"></td></dfn>
        始創(chuàng)于2000年 股票代碼:831685
        咨詢熱線:0371-60135900 注冊(cè)有禮 登錄
        • 掛牌上市企業(yè)
        • 60秒人工響應(yīng)
        • 99.99%連通率
        • 7*24h人工
        • 故障100倍補(bǔ)償
        全部產(chǎn)品
        您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

        Linux操作系統(tǒng)自如的裝卸內(nèi)核模塊

        發(fā)布時(shí)間:  2012/8/26 18:30:15
        Linux是單內(nèi)核結(jié)構(gòu),也就是說, 它是一個(gè)大程序,其中任一函數(shù)都可以訪問公共數(shù)據(jù)結(jié)構(gòu)和其它函數(shù)調(diào)用。 (作為操作系統(tǒng))另外一種可能的結(jié)構(gòu)是多核式的, 各功能塊自成一體, 相互之間由嚴(yán)格的通信機(jī)制相連。單核結(jié)構(gòu)在添加新模塊時(shí),一種方法是重新調(diào)整設(shè)置,所以非常費(fèi)時(shí)。 比如,你想在內(nèi)核中加一個(gè)NCR 810 SCSI的驅(qū)動(dòng)程序, 你必須重新設(shè)置, 重建內(nèi)核。這也有另外一個(gè)辦法,Linux 允許動(dòng)態(tài)裝載和卸掉模塊. Linux 模塊是一段可以在機(jī)器起動(dòng)后任意時(shí)間被動(dòng)態(tài)連接的代碼. 在不需要時(shí), 它們可以被從內(nèi)核中卸掉. 大多數(shù)Linux 模塊是設(shè)備驅(qū)動(dòng)程序或偽設(shè)備驅(qū)動(dòng)程序, 如網(wǎng)絡(luò)驅(qū)動(dòng)程序, 文件系統(tǒng)等。

         

         
          你可以使用 insmod 和 rmmod 命令來裝載和卸掉 Linux 模塊, 內(nèi)核自己也可以調(diào)用內(nèi)核駐留程序(Kerneld) 來按需要裝載和卸掉模塊。

         

          按需動(dòng)態(tài)裝載模塊可以使內(nèi)核保持最小, 并更具靈活性. 我現(xiàn)在的 Intel 內(nèi)核由于大量使用動(dòng)態(tài)裝載模塊, 只有 406 K 字節(jié). 例如, 我很少用到 VFAT 文件系統(tǒng), 所以我讓 Linux 內(nèi)核只在我裝載 VFAT 分區(qū)時(shí), 才自動(dòng)上載 VFAT 文件系統(tǒng). 當(dāng)我卸掉 VFAT 分區(qū)時(shí), 內(nèi)核會(huì)檢測(cè)到, 并自動(dòng)卸掉 VFAT 文件系統(tǒng). 當(dāng)測(cè)試新程序時(shí), 你如果不想每次都重建內(nèi)核, 動(dòng)態(tài)裝載模塊是非常有用的. 但是, 運(yùn)用模塊會(huì)多消耗一些內(nèi)存, 并對(duì)速度有一定影響. 并且模塊裝載程序是一段代碼, 它的數(shù)據(jù)將占用一部份內(nèi)存. 這樣還會(huì)造成不能直接訪問內(nèi)核資源, 效率不高的問題.

          一旦 Linux 模塊被裝載后, 它就和一般內(nèi)核代碼一樣, 對(duì)其它內(nèi)核代碼, 享受同樣的訪問權(quán)限。換句話說, Linux 內(nèi)核模塊可以像其它內(nèi)核代碼, 或驅(qū)動(dòng)程序一樣使系統(tǒng)崩潰。模塊可以使用內(nèi)核資源,但首先它需知道怎樣調(diào)用. 例如, 一個(gè)模塊要調(diào)用 Kmalloc() (內(nèi)核內(nèi)存分配程序). 但在模塊建立時(shí), 它并不知道到哪兒去找 Kmalloc(), 所以在它被裝載時(shí), 內(nèi)核必須先設(shè)定模塊中所有 Kmalloc() 調(diào)用的函數(shù)指針. 內(nèi)核有一張所有資源調(diào)用的列表, 在模塊被裝載時(shí), 內(nèi)核重設(shè)所有資源調(diào)用的函數(shù)指針. Linux 允許棧式模塊, 即一個(gè)模塊調(diào)用另一個(gè)模塊的函數(shù). 例如, 由于 VFAT 文件系統(tǒng)可以看成是 FAT 文件系統(tǒng)的超集, 所以 VFAT 文件系統(tǒng)模塊需要調(diào)用 FAT 文件系統(tǒng)提供的服務(wù)。一個(gè)模塊調(diào)用另一模塊的資源與調(diào)用內(nèi)核資源很相似。唯一的不同是被調(diào)用的模塊需被先載入。一個(gè)模塊被載入后,內(nèi)核將修改它的內(nèi)核符號(hào)表(KERAEL SYMOBOL TABLE),加入新載入模塊提 供的所有資源和符號(hào)。所以另一個(gè)模塊被載入時(shí), 它就可以調(diào)用所有已載入模塊提供的服務(wù)。

          當(dāng)卸掉一模塊時(shí),內(nèi)核先確定該模塊不會(huì)再被調(diào)用,然后通過某種方式通知它。在該模塊被內(nèi)核卸掉以前,該模塊須釋放所有占用的系統(tǒng)資源。例如,內(nèi)存或中斷,當(dāng)模塊被卸掉后,內(nèi)核從內(nèi)核符號(hào)表中刪除所有該模塊提供的資源。

          如果模塊代碼不嚴(yán)謹(jǐn),它將使整個(gè)操作系統(tǒng)崩潰。另一個(gè)問題,如果你載入的是為其它版本服務(wù)的模塊,那怎么辦?例如,一個(gè)模塊凋用一個(gè)內(nèi)函數(shù),但提供了錯(cuò)誤的輸入?yún)?shù),這將導(dǎo)致運(yùn)行錯(cuò)誤。但內(nèi)核可以在模塊被載入時(shí)選擇性地通過嚴(yán)格版本檢查來杜絕這種現(xiàn)象。

          載入模塊有兩種方法。第一種是通過INSTALL 命令來載入;另一種更聰明的方法是在模塊被調(diào)用時(shí)自動(dòng)載入,這叫所需載入(DEMAND LOADING)。例如,當(dāng)用戶在裝一個(gè)不在內(nèi)核中的文件系統(tǒng),內(nèi)核會(huì)自動(dòng)調(diào)用內(nèi)核駐 留程序(KERNELD)來載入對(duì)應(yīng)的處理模塊。

          內(nèi)核駐留程序是一個(gè)具有超級(jí)用戶極限的普通用戶程序。當(dāng)它被啟動(dòng)時(shí)(通常在系統(tǒng)啟動(dòng)時(shí)),它將打開一個(gè)和內(nèi)核之間的進(jìn)程間通信管道(IPC CHANNEL)。 內(nèi)核將利用這條管道來通知進(jìn)程駐留程序去完成各種任務(wù)。內(nèi)核駐留程序的主要任務(wù)是載入和卸掉模塊,它也能完成其她一些任務(wù)。如按需打開和關(guān)掉一條通過串口的 DDD LINK。KERNELD 自己并不完成這些任務(wù)。它將調(diào)用如INSMOD 這樣的命令來完成,KERNELD 只是一個(gè)內(nèi)核的代理,協(xié)調(diào)完成各項(xiàng)任務(wù)。


        本文出自:億恩科技【mszdt.com】

        服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

      2. 您可能在找
      3. 億恩北京公司:
      4. 經(jīng)營(yíng)性ICP/ISP證:京B2-20150015
      5. 億恩鄭州公司:
      6. 經(jīng)營(yíng)性ICP/ISP/IDC證:豫B1.B2-20060070
      7. 億恩南昌公司:
      8. 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
      9. 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
      10. 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
      11. 專注服務(wù)器托管17年
        掃掃關(guān)注-微信公眾號(hào)
        0371-60135900
        Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
          1
         
         
         
         

        0371-60135900
        7*24小時(shí)客服服務(wù)熱線