无码视频在线观看,99人妻,国产午夜视频,久久久久国产一级毛片高清版新婚

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

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

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

     

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

     

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

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

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

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

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

      內(nèi)核駐留程序是一個具有超級用戶極限的普通用戶程序。當(dāng)它被啟動時(通常在系統(tǒng)啟動時),它將打開一個和內(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 只是一個內(nèi)核的代理,協(xié)調(diào)完成各項任務(wù)。


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

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

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

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