从文件系统看系统架构

简介:

linux实现了vfs,几乎任何一个可以交换数据的存在(我这里用一个很大的词:存在)都可以有一个vfs的代理,内存中就是一个inode结构,如果 你要操作它,那么需要一个file结构,而file结构拥有file_operations结构,该结构内存放有很多函数指针,指向一些具体的操作,这些操作将来都要和inode打交道,内核给用户一个统一的系统调用接口,然后这个系统调用的实现用来在file_operations里分发操作,这个系统 调用实际上就是一个多路复用的设施,这就是linux的vfs的全部了。 
但是像没想过扩展,比如一个分层的驱动,这在linux下是完全可以实现的,实际上没有linux实现不了的,前面说过,linux都是小对象的组合,耦 合性低,扩展性炒好,很容易就可以组合成你需要的样子,比如usb驱动,块设备驱动,包括网络协议栈都是分层的驱动,但是这些东西给人的感觉很松散,(linux本身就是很松散,这才是linux,使他的杀手锏)我从来不敢奢望从网络协议栈驱动来学习怎么写一个块设备过滤器驱动,网络协议栈上可以用成熟的netfilter框架,这个框架是自成体系的,但是块设备呢?我无语... 
还是不说的罢,windows的我就不说了,看看《天数夜读》吧,很详细。说说bsd吧(当然我可以说,看看源码吧,都在眼前...想不开了,寻短见了,看看这个世界吧,多美好...真是那样世界就完蛋了) 
bsd提供了一个从用户接口到最底层的通用直通式通道,和linux一样,系统调用接口下面也是一个多路复用器,将请求分发到管道,套接字,文件...不同的是,bsd将各个驱动之间的关系处理得相当好,它让这些模块间联系更加紧密但是不增加耦合性,也就是说,这个通道我方那儿了,谁都可以用,只要遵守约定,这个和windows有点像,应该说windows和unix有点像才对,linux则相反,一切自己动手丰衣足食,linux简直就是高手们的玩 具,菜鸟的地狱!还是代码里见吧,搞程序只会说文解字,没用。

struct vop_vector {



 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1274165

相关文章
|
1月前
|
存储 分布式计算 Hadoop
带你了解文件系统架构的演变:从传统到分布式
带你了解文件系统架构的演变:从传统到分布式
66 0
|
1月前
|
存储 数据安全/隐私保护 云计算
带你了解文件系统架构的演变:从传统到分布式
带你了解文件系统架构的演变:从传统到分布式
73 0
|
10月前
|
存储 分布式计算 Hadoop
大数据数据存储的分布式文件系统的HDFS的基本概念和架构的概念的Hadoop 分布式文件系统
Hadoop 分布式文件系统 (HDFS) 是一个开源的分布式文件系统,是 HttpFS 的后继者。
87 2
|
存储 固态存储 索引
Ext4文件系统架构分析(一)
本文描述Ext4文件系统磁盘布局和元数据的一些分析,同样适用于Ext3和Ext2文件系统,除了它们不支持的Ext4的特性外。整个分析分两篇博文,分别概述布局和详细介绍各个布局的数据结构及组织寻址方式等。
1290 0
|
存储 索引
Ext4文件系统架构分析(二)
接着上一篇博文,继续分析Ext4磁盘布局中的元数据。 1.7 超级块 超级块记录整个文件系统的大量信息,如数据块个数、inode个数、支持的特性、管理信息,等待。 如果设置sparse_super特性标志,超级块和块组描述符表的冗余备份仅存放在编号为0或3、5、7的幂次方的块组中。
1270 0