在了解虚拟文件系统之前 , 需要先了解 Kernel Space 和 User Space 的区别 . 二者的差别在于内存使用上安全机制的差异 .
kernel 执行时会占据一段系统的内存空间 , 这段空间便是 Kernel Space , 所有的用户无法和 Kernel Space 直接交互 .

/proc/iomem 中的 Kernel Space

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

也是 Ring 的主要概念 , 操作系统分为 Ring 0 , Ring 1 , Ring 2 , Ring 3 . Ring 0 是
kernel 存在的地方 ( 也就是 Kernel Space ) , 也是唯一可以和硬件直接交互的系统组件 . 所有 Ring 0 以外的软件
, 若需要用到硬件 , 都必须通过 Ring 0 执行 .
Ring
1 和  Ring 2 则是系统的模块部分 , 对用户来说 , 就是经常看到的一模块或者 /dev , /proc , /sys
等虚拟文件系统 (VFS) . 所以用户正常使用的应用程序 (也就是 User Space) 则是被限制在 Ring 3 ,
其目的就是让应用程序与 kernel 分开 , 当应用程序需要任何硬件设备时 , 要先通过虚拟文件系统或虚拟模块向 Kernel 请求支持 .

用户如果在正常的使用环境下想得知一些 kernel Space 的信息 , 必须通过中间的虚拟文件系统 – User Space 与 Kernel Space 的信息才可以交互 .
只要是 VFS 就没有一定要在哪一个目录下查看的限制 , 并且目录下的任何文件都不会占用硬盘空间 . 可以按如下方式挂载 VFS:

挂载 proc
# mount -t proc /mnt/vfs /mnt/vfs
或者
# mount -t proc proc /mnt/vfs

挂载 sys
mount -t sysfs /mnt/vfs /mnt/vfs
或者
mount -t sysfs sysfs /mnt/vfs

挂载 dev
mount –bind /dev /mn/vfs

[转载]VFS—Kernel Space & User Space的更多相关文章

  1. ARM64 Linux kernel virtual address space

    墙外通道:http://thinkiii.blogspot.com/2014/02/arm64-linux-kernel-virtual-address-space.html Now let's ta ...

  2. ARM32 Linux kernel virtual address space

    http://thinkiii.blogspot.jp/2014/02/arm32-linux-kernel-virtual-address-space.html   The 32-bit ARM C ...

  3. java.lang.OutOfMemoryError: PermGen space PermGen space & java.lang.OutOfMemoryError: Java heap space Heap siz

    java.lang.OutOfMemoryError: PermGen space PermGen space 由-XX:PermSize  -XX:MaxPermSize 引起 java.lang. ...

  4. [ERROR] InnoDB: Trying to access page number 7 in space 957, space name XXX which is outside the tablespace bounds

    早上,测试说演示环境mysql老实断开重连,一update就挂,经查日志,有如下异常: 2017-04-05T23:13:01.729250+08:00 17065 [ERROR] InnoDB: T ...

  5. JVM内存区域划分Eden Space\Survivor Space\Tenured Gen\Perm Gen

    JVM区域分heap区和非heap区. 1)heap区:Eden Space(伊甸园),Survivor Space(幸存者区),Tenured Gen(老年代-养老区). 2)非heap区:Code ...

  6. java.lang.OutOfMemoryError: PermGen space及其解决方法(转载)

    java.lang.OutOfMemoryError: PermGen space及其解决方法 分类: java2007-09-11 12:34 162242人阅读 评论(51) 收藏 举报 gene ...

  7. tomcat内存溢出 PermGen space

    1. java.lang.OutOfMemoryError: PermGen space  ---- PermGen space溢出.  PermGen space的全称是Permanent Gene ...

  8. 解决 PermGen space Tomcat内存设置

    转自:http://qwzhl100.blog.163.com/blog/static/2133124200932813148637/ 在 使用Java程序从数据库中查询大量的数据或是应用服务器(如t ...

  9. 解决 PermGen space Tomcat内存设置(转)

    在使用Java程序从数据库中查询大量的数据或是应用服务器(如tomcat.jboss,weblogic)加载jar包时会出现java.lang.OutOfMemoryError异常.这主要是由于应用服 ...

随机推荐

  1. jquery easyui常见问题:

    1.jquery easyui1.4.2 demo在ie10 上加载json的时候没有效果 从官网上下载了jquery easyui1.4.2 里面有个demo文件夹,但是发现底下的demo在IE.3 ...

  2. 七牛开发文档php

    http://developer.qiniu.com/docs/v6/sdk/php-sdk.html#overview http://developer.qiniu.com/docs/v6/sdk/ ...

  3. discuz阅读权限的设置作用

    为什么要有阅读权限?偶想很多新手有这个疑问吧,所以特开此帖说明下. 阅读权限的设置是帖子作者为了部分限制帖子的读者群.虽然网上发帖重在分享,但帖子(尤其精华帖子)是作者花时间和经历而写成的,不加阅读权 ...

  4. [BIM]案例

    以下是中建三局BIM小组的项目,用以参考: BIM协同设计与质量控制 现实建筑物实体都是以三维空间状态存在,若用三维设计表达更具有优势.如复杂管综设计,一般情况下,二维AutoCAD设计是在建筑.结构 ...

  5. [ios]纯代码实现UITableViewCell的自定义扩展

    (转)参考:http://blog.sina.com.cn/s/blog_65cbfb2b0101cd60.html 第一种, 简单的增加UITableViewCell一些小功能 例如在cell上面添 ...

  6. ado.net基础思想-abstract

    抽象类用做基类不能被实例化用途是派生出其他非抽象类 接口主要是实现多重继承 abstract 修饰符用于表示所修饰的类是不完整的,并且它只能用作基类.抽象类与非抽象类在以下方面是不同的:• 抽象类不能 ...

  7. windows上安装apache python mod_python

    综述:   windows上安装apache python mod_python的例子.教程甚至图解都不少:但作为新手还是会出错,而且一时无法快速排解. 在此笔者将根据自己的实践经验,给出几个需要注意 ...

  8. 【20160924】GOCVHelper MFC增强算法(1)

        //递归读取目录下全部文件(flag为r的时候递归)     void getFiles(string path, vector<string>& files,string ...

  9. Servlet基础简单总结(上)

    Servlet基础一些简单总结(上): 1.Java Servlet是运行在Web服务器上的Java程序2.Java平台给Servlet开发者提供了强大的API/面向对象编程平台无关/强类型/垃圾回收 ...

  10. promise理解

    每个操作都返回一样的promise对象,保证链式操作 每个链式都通过then方法 每个操作内部允许犯错,出了错误,统一由catch error处理 操作内部,也可以是一个操作链,通过reject或re ...