在了解虚拟文件系统之前,必须先知道什么是 Kernal  Space 与 User  Space。 Kernal Space 与User Space 的差别,在于内存使用上安全机制的差异。

kernal执行时会占据一段系统的内存空间, 这一段内存空间便是Kernal  Space.  所有用户是无法和kernal  space  直接交互的。    

  在/proc/iomem文件中所记录的kernal地址, 可以在命令行中执行: cat   /proc/iomem  | more

User  Space  则强调,用户执行任何的程序所占用的内存部分, 对这些User  Space 程序而言, 无法直接使用Kernal Space 中的资源,必须要经过一些系统所提供的system calls 才能使用Kernal   Space 的对象。

  这就涉及到操作系统中的Ring的主要概念, 整个操作系统分为: Ring 0, Ring 1, Ring 2 以及Ring 3,  Ring 0 是kernal所在的地方(也就是Kernal Space), 也是唯一可以和硬件直接交互的系统组件。所有Ring 0 以外的软件, 若须使用硬件时,都必须通过Ring 0 的执行;

                                                  

  Ring 0 是Kernal所在地方;

  Ring 1 和 Ring 2 是系统模块的部分;对于用户来说:就是经常看到的一些模块 例如: /dev ,  /proc ,  /sys  等虚拟文件系统;

  Ring 3 是所有用户正常使用的应用程序也就是User  Space

  因此: 当有有应用程序需要任何的硬件设备时, 要先通过虚拟文件系统 或系统模块, 向kernel 请求支持;

虚拟文件系统与一般的文件系统最大差别在于“虚拟” 二字, 因为只要是虚拟文件系统,就没有一定要在哪一个目录下查看的限制,并且目录下的任何文件都不会占用硬盘的空间,这是因为虚拟文件系统只是一个抽象的对应方式,并没有任何实体的文件存在硬盘中;

  

  

linux 虚拟文件系统----------Virtual File System VFSkky的更多相关文章

  1. Linux 虚拟文件系统四大对象:超级块、inode、dentry、file之间关系

    更多嵌入式原创文章,请关注公众号:一口Linux 一:文件系统 1. 什么是文件系统? 操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统. 通常文件系统是用于存储和组织文件的一 ...

  2. linux 虚拟文件系统

    转自:https://www.ibm.com/developerworks/cn/linux/l-cn-vfs/ Linux 允许众多不同的文件系统共存,并支持跨文件系统的文件操作,这是因为有虚拟文件 ...

  3. Linux虚拟文件系统

    从文件 I/O 看 Linux 的虚拟文件系统 1 引言 Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等.通过使用同一套文件 I/O 系统 调用即可对 Linux ...

  4. KASS分布式文件系统(Kass File System)

    KASS分布式文件系统(Kass File System),简称KFS,是开始公司自主研发的分布式文件存储服务平台.KFS系统架构及功能服务类似Hadoop/GFS/DFS,它通过HTTP-WEB为上 ...

  5. PatentTips – EMC Virtual File System

    BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention generally relates to net ...

  6. Linux虚拟文件系统(VFS)学习

    虚拟文件系统(Virtual Filesystem)也可称之为虚拟文件系统转换(Virtual Filesystem Switch),是一个内核软件层,用来处理与Unix标准文件系统相关的全部系统调用 ...

  7. HTML5之本地文件系统API - File System API

    HTML5之本地文件系统API - File System API 新的HTML5标准给我们带来了大量的新特性和惊喜,例如,画图的画布Canvas,多媒体的audio和video等等.除了上面我们提到 ...

  8. Linux虚拟文件系统VFS解决

    参考<Linux内核设计与实现> 虚拟文件系统(VFS)它是linux核心和详细I/O一个普通的访问接口之间的包装设备,通过这层界面,linux内核能够以同一的方式訪问各种I/O设备. 虚 ...

  9. linux虚拟文件系统2

    转自:http://rstevens.iteye.com/blog/849413 一.概述 Linux 文件系统是相当复杂的,本文只分析虚拟文件系统的实现,对具体的文件系统不涉及. 即使是虚拟文件系统 ...

随机推荐

  1. Follow your heart

    世界上最可怕的两个词,一个是执着,一个是认真.认真的人改变自己,执着的人改变命运.任何时候都别怕重来,每个看似低的起点,都是通往高峰的必经之路.不用抱怨那些不尽如人意,问问自己,你够努力了吗?转自人民 ...

  2. JDBC笔记

    简介 JDBC是Java规定的访问数据库的API,目前主流的数据库都支持JDBC.使用JDBC访问不同的数据库时需要安装不同的驱动. JDBC定义了数据库的链接,SQL语句的执行以及查询结果集的遍历等 ...

  3. HDU 5738 Eureka(极角排序)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5738 [题目大意] 给出平面中一些点,在同一直线的点可以划分为一个集合,问可以组成多少包含元素不少 ...

  4. Day1_PHP快速入门

    本人知识背景:行业软件C/C++开发两年经验,了解PHP, 所以学习日志偏向记录PHP相对于C的特性 测试环境:EasyPHP13.1 Day 1 学习时间:3小时 1. HTML触发PHP HTML ...

  5. applet部署,无需修改客户端设置。

    1  开发applet程序,编译成jar包 2  给jar包做数字签名: (1).用keytool生成密钥: keytool -genkey -keystore myapplet.keystore - ...

  6. JEECMS用法总结

    1.循环打印栏目: [@cms_channel_list] [#list tag_list as c] <li id="${c.path}"><a href=&q ...

  7. 修改spinner选中以后显示的字体颜色

    原来spinner选中以后显示的view  还是textview  ,这样就是可以设置它的字体颜色了 sp.setOnItemSelectedListener(new OnItemSelectedLi ...

  8. C++ - Vector 计算 均值(mean) 和 方差(variance)

    Vector 计算 均值(mean) 和 方差(variance) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24623187 ...

  9. Swift 闭包表达式

    闭包是功能性自包含模块,可以在代码中被传递和使用. Swift 中的闭包与 C 和 Objective-C 中的 blocks 以及其他一些编程语言中的 lambdas 比较相似. 闭包的形式主要有三 ...

  10. 使用window.postMessage实现跨域通信

    JavaScript由于同源策略的限制,跨域通信一直是棘手的问题.当然解决方案也有很多: document.domain+iframe的设置,应用于主域相同而子域不同: 利用iframe和locati ...