本书的第526页操作系统 - 内部和设计原则'第8版,由William Stallings撰写,说明如下。
'在最低级别,设备驱动程序直接与外围设备或其控制器或通道通信。设备驱动程序负责启动设备上的I / O操作并处理I / O请求的完成。对于文件操作,控制的典型设备是磁盘和磁带驱动器。设备驱动程序通常被认为是操作系统的一部分。'
继续说下面的内容。
'下一级别称为基本文件系统或物理I / O级别。这是计算机系统外部环境的主要接口。它处理与磁盘或磁带系统交换的数据块。'
设备驱动程序和基本文件系统的功能与我相同。因此,我并不完全确定Stallings如何区分它们。如果有人能够澄清并详细说明这两者之间的差异,我将不胜感激。感谢。
答案 0 :(得分:1)
将其分解为图层:
第1层)磁盘的物理I / O需要指定要读取或写入块的盘片,扇区和磁道。
第2层)磁盘的逻辑I / O按数字顺序排列块,读取或写入特定的逻辑块号,然后转换为轨道/盘片/扇区。
操作系统通常支持磁盘的逻辑I / O和物理I / O.也就是说,如今大多数磁盘都是逻辑到物理翻译。只有旧磁盘才需要O / S支持。
如果设备支持逻辑I / O,则设备驱动程序执行I / O.如果设备仅支持物理I / O,则设备驱动程序通常会处理逻辑层和物理层。因此,物理I / O层仅存在于不在硬件中执行逻辑I / O的磁盘的驱动程序中。如果磁盘支持逻辑I / O,则驱动程序中没有第1层。
以上所有内容都是您的第一句话所针对的内容。
第3层)虚拟I / O写入文件的特定字节或块(取决于O / S)。该层通常在设备驱动程序外部处理。在该层,每个支持的文件系统都有单独的模块。对使用相同文件系统的所有磁盘的虚拟I / O请求将通过同一模块。
处理虚拟I / O比简单地读取写入磁盘块要复杂得多。虚拟I / O层需要使用底层磁盘文件系统结构将块分配给特定文件。
这似乎是第二个引用中提到的内容。令我感到困惑的是,为什么它将这称为物理I / O"层而不是"虚拟I / O"层
我到处都是物理I / O和逻辑I / O是将原始块写入磁盘而不考虑磁盘上的文件系统。