第二章 快速参考

本节中出现的条目会以它们在文中出现的顺序列出:

  • insmod
  • modprobe
  • rmmod

用来装载模块到正运行的内核和移除模块的用户空间工具:

  • #include <linux/init.h>
  • module_init(init_function);
  • module_exit(cleanup_function);

用于指定模块的初始化和清除函数的宏:

__init

__initdata

__exit

__exitdata

  • #include <linux/sched.h>最重要的头文件之一。该文件包含驱动使用的大部分内核API的定义,包括睡眠函数以及各种变量声明。
  • struct task_struct *current;当前进程
  • current->pid:当前进程ID
  • current->comm:当前进程命名名
  • obj-m:由内核构造系统使用的makefile符号,用来确定在当前目录中应构造哪些模块
  • /sys/module:早期用法,只在单个文件中包括这些信息,其中包括了模块名称、每个模块使用的内存总量一级使用计数等。每一行之后还追加额外的字符串,用来指定模块的当前活动标志。
  • /proc/modules: /sys/module是sysfs目录层次结构中包含当前已装载模块信息的目录。
  • vermagic.o:内核源代码目录中的一个目标文件,它描述了模块的构造环境。
  • #include <linux/module.h>:必须的文件,它必须包含在模块源代码中。
  • #include <linux/version.h>:包含所构造内核版本信息的头文件。
  • LINUX_VERSION_CODE:整数宏,在处理版本依赖的预处理条件语句中非常有用
  • EXPORT_SYMBOL(symbol);用来导出单个符号到内核的宏
  • EXPORT_SYMBOL_GPL(symbol);将导出符号的使用限于GPL许可证下的模块
  • MODULE_AUTHOR(author);
  • MODULE_DESCRIPTION(description);
  • MODULE_VERSION(version_string);
  • MODULE_DEVICE_TABLE(table_info);
  • MODULE_ALIAS(alternate_name);在目标文件中添加关于模块的文档信息
  • module_init(init_function);
  • module_exit(exit_function);用来声明模块初始化和清除函数的宏
  • #include <linux/moduleparam.h>
  • module_param(variable, type, perm);用来创建模块参数的宏,用户可在装载模块时调整这些参数的值。
  • #include <linux/kernel.h>
  • int printk(const char *fmt, ...);函数printk内核代码

LDD快速参考的更多相关文章

  1. Oracle安装部署,版本升级,应用补丁快速参考

    一.Oracle安装部署 1.1 单机环境 1.2 Oracle RAC环境 1.3 Oracle DataGuard环境 1.4 主机双机 1.5 客户端部署 二.Oracle版本升级 2.1 单机 ...

  2. Oracle 11.2.0.4单实例打PSU,OJVM PSU补丁快速参考

    写在前面: 1.Oracel打每个补丁的操作有时存在差异,所以不管多熟悉,都应该在打任何补丁之前阅读新补丁中附带的readme. 2.Oracle每季度都会更新一个最新的PSU,本文最新指的是当前最新 ...

  3. Oracle 11.2.0.4 DataGuard 环境打PSU,OJVM PSU补丁快速参考

    环境:RHEL6.5 + Oracle 11.2.0.4 DataGuard physical standby 主库和备库都是单节点. 需求:主备库同时应用160719的PSU和OJVM PSU补丁. ...

  4. 数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1)

    数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1)

  5. jenkins2 pipeline 语法快速参考

    jenkins2 pipeline中常用的语法快速参考. 文章来自:http://www.ciandcd.com文中的代码来自可以从github下载: https://github.com/ciand ...

  6. oracle数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1)

    数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1) 文档内容   用途   详细信息   Patchsets ...

  7. Razor 语法快速参考

    Razor 语法快速参考   本文引自:http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx 语法名称 Raz ...

  8. 转: seajs手册与文档之 -- 快速参考 ( ~~useful )

    目录 快速参考 seajs.use seajs.config define require require.async exports module.exports 快速参考 该页面列举了 SeaJS ...

  9. Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考

    Selenium 2.0 WebDriver 自动化测试 使用教程 实例教程 API快速参考 //System.setProperty("webdriver.firefox.bin" ...

随机推荐

  1. DB-MDM:MDM/主数据管理 百科

    ylbtech-DB-MDM:MDM/主数据管理 百科 主数据管理(MDM Master Data Management)描述了一组规程.技术和解决方案,这些规程.技术和解决方案用于为所有利益相关方( ...

  2. STM32 在串口通信时运用MODBUS协议

    最近一个项目用到了MODBUS协议,就学习了一下,这里做一下记录以免后续忘记. 要用到MODBUS肯定要先知道是MOBUS协议,这里呢我们就又要先理解协议的含义了. 所谓的协议是什么?就是互相之间的约 ...

  3. 16/7/14-MySQL-遇到的基本问题

    从一开始遇到的3534 ---------------------------------------------------------------------------------------- ...

  4. php的优势与缺点

    PHP即“超文本预处理器”,是一种通用开源脚本语言.PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言.PHP独特的语法混合了C.Java.Perl以及 PHP 自创的语法.利于学习 ...

  5. JavaScript Tre

    function BinarySearchTree() { var Node = function(key) { this.key = key; this.left = null; this.righ ...

  6. SpringCloud异常

    Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could ...

  7. 如何创建 Qt 插件?

    如何创建 Qt 插件? 简单三部曲 定义接口类或接口基类并使用 Q_DECLARE_INTERFACE 宏进行声明 所有的插件都需要继承该基类并继承 QObject(不带界面插件) or QWidge ...

  8. C# 下载PDF文件(http与ftp)

    1.下载http模式的pdf文件(以ASP.NET为例,将PDF存在项目的目录下,可以通过http直接打开项目下的pdf文件) #region 调用本地文件使用返回pdfbyte数组 /// < ...

  9. Linux查看关闭进程

    ps:进程的静态列表(Process status) - PID:进程号,每个进程独一无二的标识符(关闭进程需要使用) - TTY:终端所属,表明进程产生于哪一个终端,对于多用户使用的Linux服务器 ...

  10. elasticsearch 深入 —— 全文检索

    全文搜索 我们已经介绍了搜索结构化数据的简单应用示例,现在来探寻 全文搜索(full-text search) :怎样在全文字段中搜索到最相关的文档. 全文搜索两个最重要的方面是: 相关性(Relev ...