亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Linux內(nèi)核設(shè)備驅(qū)動(dòng)之Linux內(nèi)核模塊加載機(jī)制筆記整理

 更新時(shí)間:2018年12月17日 10:05:56   作者:Engineer-Bruce_Yang  
今天小編就為大家分享一篇關(guān)于Linux內(nèi)核設(shè)備驅(qū)動(dòng)之Linux內(nèi)核模塊加載機(jī)制筆記整理,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧

#include <linux/moduleparam.h>

1. 模塊參數(shù)

在驅(qū)動(dòng)定義變量

static int num = 0; //當(dāng)加載模塊不指定num的值時(shí)則為0
  • module_param(變量名, 類(lèi)型, 權(quán)限);類(lèi)型: byte, int, uint, short, ushort, long, ulong, bool, charp,權(quán)限不能有寫(xiě)的權(quán)限
  • 傳參數(shù): insmod test.ko 變量名1=值1  變量名2=值2

module_param的調(diào)用關(guān)系如下:

#define module_param(name, type, perm) \
module_param_named(name, name, type, perm)
#define module_param_named(name, value, type, perm)  \
param_check_##type(name, &(value));  \
module_param_call(name, param_set_##type, param_get_##type, &value, perm); \
__MODULE_PARM_TYPE(name, #type)
#define module_param_call(name, set, get, arg, perm)   \
__module_param_call(MODULE_PARAM_PREFIX,   \
  name, set, get, arg,   \
  __same_type(*(arg), bool), perm)
#define __module_param_call(prefix, name, set, get, arg, isbool, perm) \
static int __param_perm_check_##name __attribute__((unused)) = \
BUILD_BUG_ON_ZERO((perm) < 0 || (perm) > 0777 || ((perm) & 2)) \
+ BUILD_BUG_ON_ZERO(sizeof(""prefix) > MAX_PARAM_PREFIX_LEN); \
static const char __param_str_##name[] = prefix #name; \
static struct kernel_param __moduleparam_const __param_##name \
__used \
  __attribute__ ((unused,__section__ ("__param"),aligned(sizeof(void *)))) \
= { __param_str_##name, perm, isbool ? KPARAM_ISBOOL : 0, \
  set, get, { arg } }

多個(gè)c文件編成一個(gè)模塊,可以使用xxx-objs這個(gè)Makefile中的指令來(lái)實(shí)現(xiàn),如下:

test-objs := a.o b.o //由a.c, b.c 編成test.ko, 注意不能有.o文件與目標(biāo)ko文件同名
obj-m += test.o

可在/sys/module/模塊名/下查看模塊在系統(tǒng)的信息

1. 查看elf文件的信息

readelf test.ko -a

ko文件組成

  • 1. elf文件頭
  • 2. text data ...
  • 3. sections table
  • 4. symbol table

2. EXPORT_SYMBOL(函數(shù)名/變量的地址) //把函數(shù)/或者變量的地址導(dǎo)出到內(nèi)核的符號(hào)表中

EXPORT_SYMBOL_GPL(函數(shù)名)
///////////

/proc/kallsyms 查看當(dāng)前系統(tǒng)的符號(hào)表

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • Linux系統(tǒng)用戶(hù)管理命令小結(jié)

    Linux系統(tǒng)用戶(hù)管理命令小結(jié)

    這篇文章主要介紹了Linux系統(tǒng)用戶(hù)管理命令小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Linux 查看磁盤(pán)IO并找出占用IO讀寫(xiě)很高的進(jìn)程

    Linux 查看磁盤(pán)IO并找出占用IO讀寫(xiě)很高的進(jìn)程

    這篇文章主要介紹了Linux 查看磁盤(pán)IO并找出占用IO讀寫(xiě)很高的進(jìn)程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 通過(guò) SSH 在遠(yuǎn)程 Linux 系統(tǒng)上運(yùn)行命令的方法

    通過(guò) SSH 在遠(yuǎn)程 Linux 系統(tǒng)上運(yùn)行命令的方法

    這篇文章主要介紹了通過(guò) SSH 在遠(yuǎn)程 Linux 系統(tǒng)上運(yùn)行命令的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 關(guān)于將Web項(xiàng)目部署到阿里云服務(wù)器(5個(gè)步驟搞定)

    關(guān)于將Web項(xiàng)目部署到阿里云服務(wù)器(5個(gè)步驟搞定)

    這篇文章主要介紹了關(guān)于將Web項(xiàng)目部署到阿里云服務(wù)器(5個(gè)步驟搞定),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 詳細(xì)講解西軟FOXHIS增量備份與恢復(fù)方法

    詳細(xì)講解西軟FOXHIS增量備份與恢復(fù)方法

    西軟在實(shí)施階段時(shí),會(huì)設(shè)置好幾個(gè)Linux shell的自動(dòng)任務(wù),把數(shù)據(jù)每天全庫(kù)備份兩次,并且并把數(shù)據(jù)通過(guò)ftp拷至備份庫(kù),其實(shí)這樣做存在非常大的安全隱患,數(shù)據(jù)庫(kù)服務(wù)器如果給KO了,您酒店只有當(dāng)天的兩次備份,數(shù)據(jù)損失將是12個(gè)小時(shí)來(lái)計(jì)算,對(duì)酒店經(jīng)營(yíng)非常不利
    2017-01-01
  • 在IDEA中使用Linux命令的操作方法

    在IDEA中使用Linux命令的操作方法

    這篇文章主要介紹了在IDEA中使用Linux命令的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 在Linux環(huán)境下安裝Kafka

    在Linux環(huán)境下安裝Kafka

    本文以安裝Kafka的步驟做了圖文詳細(xì)介紹,Kafka是一種高吞吐量 的分布式發(fā)布訂閱消息系統(tǒng),對(duì)Kagka感興趣的小伙伴可以參考參考本篇文章
    2021-08-08
  • CentOS7下安裝yum源及上傳下載命令rz、sz安裝方法(圖解)

    CentOS7下安裝yum源及上傳下載命令rz、sz安裝方法(圖解)

    這篇文章主要介紹了CentOS7下安裝yum源及上傳下載命令rz、sz安裝方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 在AWS的Linux服務(wù)器部署Flask預(yù)演(詳細(xì)步驟)

    在AWS的Linux服務(wù)器部署Flask預(yù)演(詳細(xì)步驟)

    這篇文章主要介紹了在AWS的Linux服務(wù)器部署Flask預(yù)演,部署Flask應(yīng)用程序到AWS Linux服務(wù)器,你可以選擇多種方式,本文分步驟給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Linux scp命令用法及實(shí)例分享

    Linux scp命令用法及實(shí)例分享

    Linux scp命令用于Linux之間復(fù)制文件和目錄。scp是 secure copy的縮寫(xiě), scp是linux系統(tǒng)下基于ssh登陸進(jìn)行安全的遠(yuǎn)程文件拷貝命令。下面我們來(lái)詳細(xì)看下scp命令的用法以及實(shí)例
    2017-03-03

最新評(píng)論