在驱动程序内部,阻塞在read调用的进程在数据到达时被唤醒;通常硬件会发一个中断来通知这个事件,然后作为中断程序处理的一部分驱动程序会唤醒等待进程。当没有硬件或中断处理程序时(如示例scull字符设备模拟程序)我们可以使用一个缓冲区和另一个进程写进程来产生数据并唤醒读取进程;类似的,阻塞在缓冲区write调用上的写进程也可以有另一读进程唤醒。这就是实现类管道设备的一种特殊设备驱动。请将示例scull设备驱动改造为这种管道类设备驱动程序。