当前位置: 首页 > 装修知识 > 正文
设备层|一文理解Linux数据驱动
2022-10-04 11:52:36一. 说明
本文是对《存储技术原理分析:基于.6内核源代码》部分章节学习总结,旨在对文中知识点的记录,缺少系统全局性的视图。书中对scsi驱动结构设计及代码细节分析很多,如果想系统性学习可以去查阅。
二. 文件系统层
Linux的文件系统被分为两层,如下图
上层:为虚拟文件系统层,简称VFS层。它是具体的文件系统和上层应用之间的接口层,可以理解为具体文件系统的统一框架,使得用户不需要关心不同文件系统细节。需要注意的是,VFS不是一种实际的文件系统,只存在与内存之中,在系统启动时建立,系统关闭时消亡。
下层:为具体的文件系统,如minix、ext2/3/4、sysfs等。通过向VFS层注册回调函数,处理文件系统的相关操作。
三. 块I/O子系统
块设备是支持以固定长度的块为单位读/写数据的存储设备统称。块设备支持随机访问的硬件设备,如磁盘、软盘、CDROM或基于块设备之上的逻辑设备,如分区、MD、 等。
Linux内核负责处理块设备IO请求的子系统称为Linux块设备层,分层如下图所示:
通用块层:接收上层发出的磁盘请求,并最终发出IO请求。该层隐藏了底层硬件块的特性,为块设备提供了通用抽象视图。
IO调度层:接收通用块层的IO请求设备层,缓存请求并试图合并请求,并根据设置好的调度算法,处理具体的IO请求。该层集成了很多优秀的调度算法,NOOP(No )、及CFQ( )等。
块设备驱动层:该层不需要直接与硬件打交道,只是机械的重定向IO。对于scsi块设备,其块设备驱动层即scsi磁盘驱动,为scsi子系统的高层驱动,从而将块IO子系统与scsi子系统联系了起来。
I/O,简单的将,就是将数据从内存写入磁盘,或从磁盘读入内存。
块I/O子系统处理I/O的处理流程是:上层调用通用层提供的接口向块IO子系统提交IO请求,这些请求首先放入IO调度层的调度队列,经过合并与排序,最终将转换后的IO请求派发到具体块设备的等待队列,由后者的驱动进一步处理。
四. SCSI子系统
Linux的scsi子系统是一种分层架构,如下图所示,共分为三层。
scsi高层,代表各种scsi设备类型的驱动,如sd、st、sr、sg。高层驱动负责根据底层驱动发现的scsi设备而分配设备名,并将上层的IO命令转化为scsi命令,交给底层驱动处理。
scsi中层,也称为公共层。包含了一些公共服务函数,如错误恢复设备层,策略例程等。
scsi底层,代表适用于scsi的实际物理接口的驱动器。作用主要是发现连接到主机适配器后面的scsi设备,在内存中为塔门建立好数据结构,并提供消息传递接口,将scsi命令的接收与发送解释为主机适配器的操作。
五. I/O物理通路
以下简述了数据I/O由CPU经内存到磁盘的物理连接通路。
系统内存总线:互连CPU和系统内存、缓存。高速总线
主机I/O总线:上联桥接系统总线,下联I/O控制器与网络适配器,即HBA卡与网卡。
存储I/O总线:下联存储设备和存储子系统;存储设备即磁盘控制器,存储子系统即RAID系统;最后I/O到达终点站存储介质:磁盘、磁带等。
六. I/O逻辑通路
了解了数据I/O物理连接通路后,再更为详细阐述下逻辑通路。其中,左边为存储I/O数据通路,右边为网络I/O数据通路。
大部分I/O开始于用户态应用程序,通过系统调用进入内核态;存储数据在虚拟文件系统被假定为一个个“文件”,左边是存储I/O的执行通路,右边是网络I/O的执行通路。
存储I/O:经过具体的文件系统到达块设备层,经过通用块层、I/O调度层,最终到达块驱动层,如果是虚拟块设备层,经过多次反复来到物理块设备层,由它进入SCSI子系统。在其中经过高层、中层公共层和底层驱动层,最终数据到达固件/硬件。
网络I/O:经过BSD套接口层(该层为各种网络协议提供统一接口),如果是TCP/IPv4,则从IPv4协议簇层,经TCP协议到达网卡驱动层;通过物理网卡驱动,最后数据到达固件/硬件。
持续更新中…
以上内容为蝴蝶兰风评投稿者为大家精心整理,希望对大家有所帮助!
猜你喜欢
- 09-29 离婚又复婚还能幸福吗_离婚又复婚了感情会好吗?
- 09-29 盲目钢琴考级,孩子却没有这五种学习能力!
- 09-29 不是所有的“奉子成婚”都会幸福,这种婚姻潜在的矛盾你要记清楚
- 09-29 灭火器的使用方法|灭火器的正确使用方法及注意事项
- 09-29 水泥密度|散装水泥的密度大致为多少?
- 09-29 家装网站|国内十大优秀家居装修网站类大全推荐与介绍
留言与评论(共有 条评论) |
- 搜索
-
- 10-18APF防水卷材
- 10-18液压油过滤器规格型号
- 10-18玻璃胶多久能干?使用注意事项请谨记
- 10-18防雷接地检测主要都检测什么?
- 10-18空调大插头买什么插板(空调插头应该买多大的插排)
- 10-18粘贴钢板加固怎么施工?注意事项是什么?如何选材料、粘钢胶标准是什么
- 10-18干货 | 岩板界的什么规格才能稳占家居空间的C位?
- 10-18不锈钢锅烧黑了怎么办 怎么清理 锅烧干后能直接倒水吗?
- 10-18一寸水管直径是多少0
- 10-18冰箱温度调到多少合适 细节决定保鲜