操作系统设计与实现:基于LoongArch架构
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

0.1.4 外设驱动

为了提供基本的交互功能,MaQueOS实现了键盘和显示器驱动,它们共同组成了一个控制台。其中,显示器驱动程序实现了字符显示和擦除、回车换行、卷屏和删除字符的功能。键盘驱动程序实现了保存用户输入的按键信息,并为进程提供按键信息的功能。为了给应用程序提供从键盘获取字符和向显示器显示字符的功能,MaQueOS分别实现了2个系统调用:input和output(如图0.1所示)。

除了上述的键盘和显示器驱动,MaQueOS还实现了硬盘驱动,提供了读写硬盘数据的接口函数。为了加快访问硬盘数据的速度,MaQueOS在内存中申请了一个用于缓存硬盘数据的内存缓冲区。内存缓冲区由大小为512B的缓冲块组成,缓冲块的大小和硬盘中扇区的大小相同。当需要读写硬盘时,硬盘驱动程序首先会判断需要读写的数据是否在缓冲区中,若在缓冲区中,则直接读写缓冲区中的数据;若不在缓冲区中,则需要先将硬盘中的数据加载到缓冲区,再进行读写操作。因此,为了给应用程序提供将内存缓冲区中的数据写回到硬盘的功能,MaQueOS实现了sync系统调用(如图0.1所示)。