12.3.7 驱动核心层
归纳总结出核心层的三大职责:
1)对上提供接口。file_operations的读、写、ioctl都被中间层搞定,各种I/O模型也被处理掉了。
2)中间层实现通用逻辑。可以被底层各种实例共享的代码都被中间层搞定,避免底层重复实现。
3)对下定义框架。底层的驱动不再需要关心Linux内核VFS的接口和各种可能的I/O模型,而只需处理与具体硬件相关的访问。
这种分层有时还不是两层,可以有更多层,在软件上呈现为面向对象里类继承和多态的状态。
终端设备驱动,在软件层次上类似图12.12的效果。
图12.12 tty驱动各层泛化