解析Linux中的VFS文件系统之文件系统的来源与简介(一)

最近挂载了N多的文件系统,大致了不同文件系统的相应特性及挂载方式,却还是对Linux的文件系统没有从源码方面去了解。不求甚解确实不好不好。

于是借鉴一些大牛的博客及自己的理解,总结了博客系列:

一、VFS是什么:

VFS是Linux中的一个虚拟文件文件系统,也称为虚拟文件系统交换层(Virtual Filesystem Switch),是一种软件机制。它为应用程序员提供一层抽象,屏蔽底层各种文件系统的差异。如下图所示:

引入文件系统的目的是:为了屏蔽各种文件系统的差异

(1)VFS对实际文件系统进行抽象,采用统一的文件系统向用户提供相应的一组统一的标准的文件操作接口(open,read,close,select,poll等);

(2)通过系统调用到VFS到实际文件系统的操作。

二、文件系统种类:

(1)基于磁盘的文件系统;

(2)网络文件系统(NFS);

(3)伪文件系统(sysfs、proc);

VFS 目录树结构:

Reference:

https://www.ibm.com/developerworks/cn/linux/l-vfs/

在链接中,文章选用的是Linux2.4.20,我选择Linux3.4.2来分析源码。

分析过程如上文链接所讲:

这篇文章不拘泥于细节,是一篇极好的文章。我将详细的讲解代码,并从代码细节处理。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

快速搭建主从的脚本和问题排查

今天写了一个快速搭建MySQL主从环境的脚本,思路和前几天发布的MGR快速搭建的有一点像,但是最根本的差别就是这个脚本支持5.6,5.7版本。其实san...

4087
来自专栏Java帮帮-微信公众号-技术文章全总结

简单到没朋友,微信小程序开发实录【面试+工作】

在准备微信小程序开发之前,希望你已经在微信·公众平台 https://mp.weixin.qq.com/注册了小程序。微信小程序账号注册入口 https://...

1304
来自专栏后端技术探索

mysql 主从同步详解分析

Mysql为了解决这个风险并提高复制的性能,将Slave端的复制改为两个进程来完成。提出这个改进方案的人是Yahoo!的一位工程师“Jeremy Zawodny...

731
来自专栏DT乱“码”

原 如何保障数据库的高可用

1842
来自专栏owent

对atbus的小数据包的优化

atbus是我按之前的思路写得服务器消息通信中间件,目标是简化服务器通信的流程,能够自动选择最优路线,自动的断线重连和通信通道维护。能够跨平台并且高效。

762
来自专栏林冠宏的技术文章

Go 实现 自动检索 API 错误码代码行 并 打印成文档,例 markDown 形式等

1113
来自专栏pythonlove

DNS服务器的基础应用及主从同步

域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互...

732
来自专栏魏艾斯博客www.vpsss.net

windows VPS 搭建 wordpress 博客

1796
来自专栏数据库架构设计

mysql高可用架构设计

主要介绍:复制功能介绍,mysql二进制日志,mysql复制拓扑,高可用框架,单点故障,读写分离和负载均衡

300
来自专栏杨建荣的学习笔记

从零开始搭建Nginx和Tomcat的web集群环境

一直以来对于web服务器对tomcat还是很熟悉了,但是很对于nginx还是有些陌生,一看到nginx的配置就让人有一种莫名的排斥,这就是对于陌生的恐惧,我们今...

3615

扫码关注云+社区