第2章编写和运行模块.docVIP

  • 2
  • 0
  • 约1.93万字
  • 约 15页
  • 2019-12-29 发布于天津
  • 举报
第2章 编写和运行模块 非常高兴现在终于可以开始编程了。本章将介绍模块编程和内核编程所需的所有必要的概念。我们将要不多的篇幅来编写和运行一个完整的模块。这种专业技术(expertise)是编写如何模块化设备驱动程序的基础。为了避免一下子给你很多概念,本章仅介绍模块,不介绍任何类别的设备。 这里介绍的所有内核内容(函数,变量,头文件和宏)也将在本章最后的参考部分再次介绍。 如果你已经座不住了,下面的代码是一个完整的“Hello, World”模块(这个模块事实上并没什么功能)。它可以在Linux 2.0或以上版本上编译通过,但不能低于或等于1.2,关于这一点本章将在稍后的部分解释* * 正如第1章,“Linux内核简介”,中所述,这个例子和本书中的所有其他例子都可以从O’Reilly的FTP站点上下载。 (代码) 函数printk是由Linux内核定义的,功能与printf相似;模块可以调用printk,这是因为在insmod加载了模块后,模块就被连编到内核中了,也就可以调用内核的符号了。字符串1是消息的优先级。我之所以在模块中使用了高优先级是因为,如果你使用的是内核2.0.x和旧的klogd守护进程,默认优先级的消息可能不能显示在控制台上(关于这个问题,你可以暂且忽略,我们将在第4章,“调试技术”,的“Printk”小节中详细解释)。 通过执行insmod和rmmod命令,你可以

文档评论(0)

1亿VIP精品文档

相关文档