1.基本上所有通用操作系统都需要块设备的配合才能使得系统本身正常运行,块设备的存在才让操作系统功能变得强大。块设备可以用于保存操作系统启动参数,提供给进程运行所需的数据以及永久保存进程生成的或从外界读取的数据,使得进程的工作方式显得有意义;
2.对于应用层,块设备以文件系统的形式存在,用户以操作文件和目录的方式访问块设备;
3.可将块设备定义为:每次只能以数据块的方式进行数据写入和读取的设备;
4.块设备最大的优势是容量大,不足是操作时间常;
5.flash设备本质上也是一类块设备,但是其操作方式与硬盘设备有些区别;
6.rawFs文件系统将整个硬盘设备当做一个单一的文件进行读写。对于多个任务同时写硬盘设备的操作,每个任务一般都需要指定其写入的偏移位置,使得各个任务写入的数据不至于相互覆盖;
7.rawFs没有dosFs文件系统中诸如超级块、文件节点位图等结构概念。
8.硬盘不能单个字节地进行数据读写,每次必须以一个扇区为单位进行数据的读写。实际底层块设备驱动直接打交道的是硬盘控制器,硬盘控制器之下是硬盘驱动器,硬盘驱动器才是真正完成数据在物理存储戒指上的读写;
9.CBIO中间层:是基于块设备读写操作时间相对较长而在内核所作的缓冲中间层。CBIO中间层内部又可以划分为3层:
- CBIO分区管理层;
- CBIO数据缓冲层;
- CBIO基本功能层;
10.硬盘驱动实际上驱动的硬盘控制器,与硬盘驱动器之间进行的数据交互。交互的通信手段就是中断;
11.dosFs文件系统提供一种文件和目录的层次性视图,使得应用层对块设备的操作转换成存储在块设备之上的文件和目录的操作。块设备的文件和目录层次视图完全由文件系统本身提供,从底层块设备驱动以及设备本身的角度而言,其只是看到数据流,并不对数据本身的含义进行解释。
12.概念:文件、目录、超级块;
13.格式化的过程就是在块设备之上创建dosFs文件系统管理用的数据结构数据;
14.超级块:实际上是一个数据结构,其占用一个块(如1KB,两个扇区)的块设备存储容量,存储文件系统总体信息,文件系统的挂载就是根据超级块中的信息进行的;
15.dosFs文件系统初始化过程:
(1)dosFs主模块初始化;
(2)dosFs格式化功能模块初始化;
(3)FAT文件分配表管理模块初始化;
(4)dosFs一致性检查功能模块初始化;
(5)dosFs长文件名处理模块初始化;
16.对于小于2GB的块设备,dosFs默认使用FAT16进行格式化,大于等于2GB的块设备默认使用FAT32进行格式化;
17.引导块之后的超级块、节点位图、逻辑块位图、节点信息等都是文件系统本身的信息。是挂载块设备、维护块设备文件和目录结构视图的基本文件系统元数据。基本原理都是:建立一种机制对块设备空间进行有序的管理,为应用层提供文件和目录结构视图;
18.对于块设备而言,CBIO数据缓冲层一般都是必须使用的,其中CBIO分区管理层在底层块设备被分为多个分区时使用。CBIO分区管理层在块设备只能创建主分区(最多支持4个分区),不支持扩展分区的创建。由CBIO分区管理层创建的分区只能使用在VxWorks下,与其他操作系统不兼容,即使是使用dosFs文件系统;
19.在中断工作方式下,底层驱动与内核耦合较为紧密,必须尽量去除操作系统本身以及底层块设备驱动之间的耦合性,所以VxWorks下块设备的工作方式必须是方阻塞模式,即轮询式;
20.CBIO中间层对每个块设备都在内存中分配一块专门的缓冲区进行数据缓冲;
例如:执行块设备数据读取操作时,文件系统层调用CBIO中间层函数发出块设备数据读取请求,CBIO中间层将首先从内存缓冲区进行查找:
- 如果找到对应块,则直接从内存缓冲区中拷贝数据给文件系统层;
- 如果没有找到,则创建一个新的块,而后调用底层驱动读设备函数,将数据从块设备中读取到新创建的块中,之后从这个块中将数据拷贝给文件系统层。
综上,在初次读取一个块时,将存在较大的延迟,之后由于内存缓冲区已经保留了数据,所以此后的读取操作都不需要经过底层块设备读函数,效率将大大提高;
21.ATA(IDE)硬盘三大构成部件:
(1)硬盘控制器(电子控制电路部分),通过IDE接口(40针)完成与主机(板)之间的数据通信,即进行数据和命令的收发,其内部集成有数据缓冲区,在硬盘读操作中存储从硬盘读取的数据,再通过IDE接口传递给主机,在硬盘写操作中用以存储从主机读取的数据,在驱动硬盘驱动器将数据写入硬盘对应扇区;
(2)硬盘驱动器(机械控制部分),完成磁头等机械部分的驱动,具体完成硬盘的读写;
(3)用作物理存储介质的磁盘片,对于硬盘设备而言,将由多个盘片构成;