以下是引用pangding在2012-7-30 21:48:09的发言:
如果你会 C++ 的话,其实你也可以这么理解。把 vfs 看成是一个基类,驱动可以看成是一个子类。
read write 之类的看成虚函数。操作系统只管调 vfs 的里的 read, write 就行了。至于到底多态了之后是调的那个驱动,系统也不关心。用户就更不用关心了。除非你的任务是去实现那个子类。
如果你会 C++ 的话,其实你也可以这么理解。把 vfs 看成是一个基类,驱动可以看成是一个子类。
read write 之类的看成虚函数。操作系统只管调 vfs 的里的 read, write 就行了。至于到底多态了之后是调的那个驱动,系统也不关心。用户就更不用关心了。除非你的任务是去实现那个子类。
应该认为是函数指针更为贴切,module或者driver里面是不会有C++的任何概念的。
module和driver会去实现kernel里面对block 设备的定义的IO 函数指针,包括同步或者异步的读写。