如同你想象的, 注册设备编号仅仅是驱动代码必须进行的诸多任务中的第一个. 我们将很 快看到其他重要的驱动组件, 但首先需要涉及一个别的. 大部分的基础性的驱动操作包括 3 个重要的内核数据结构, 称为 file_operations, file, 和 inode. 需要对这些结构的 基本了解才能够做大量感兴趣的事情, 因此我们现在在进入如何实现基础性驱动操作的细 节之前, 会快速查看每一个. 3.3.1. 文件操作 init 脚本 scull.init 不在命令行中接受驱动选项, 但是它支持一个…