在了解虚拟文件系统之前 , 需要先了解 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. 手机端上传未知图片大小,js设置宽高比例

    <style rel="stylesheet" type="text/css"> .lunboimg{ width: 100%; height: a ...

  2. AreYouBusy

    AreYouBusy Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  3. interrupt ,interrupted 和 isInterrupted

    1.interrupt  interrupt方法用于中断线程.调用该方法的线程的状态为将被置为"中断"状态. 注意:线程中断仅仅是置线程的中断状态位,不会停止线程.需要用户自己去监 ...

  4. LINUX 产生PPM 驱动例子

    APP: //author:DriverMonkey //phone:13410905075 //mail:bookworepeng@Hotmail.com //qq:196568501 #inclu ...

  5. jack报错

    [ 29% 17593/59326] Ensure Jack server is installed and startedFAILED: /bin/bash -c "(prebuilts/ ...

  6. reactjs入门到实战(七)---- React的组件的生命周期

    React的组件的生命周期有三个状态分别是:挂载(生产组件示例化.准备挂载到页面.挂载到页面).更新(更新值.更新DOM).和卸载(卸载后). >>>其他     getInitia ...

  7. Jams倒酒(pour)

    1.Jams倒酒(pour) Jams是一家酒吧的老板,他的酒吧提供2种体积的啤酒,a ml 和 b ml,分别使用容积为a ml 和 b ml的酒杯来装载. 酒吧的生意并不好.Jams发现酒鬼们都很 ...

  8. IOSFramework打包。

    http://www.cocoachina.com/ios/20150127/11022.html

  9. Json 入门例子【3】

    Javascript 和Jquery 通过ID 获取值. <script> var txt1 = [{ "CityId": 18, "CityName&quo ...

  10. 【MySQL】过滤后的结果集较大,用LIMIT查询分页记录,查询效率不理想

    > 参考的优秀文章 优化LIMIT分页--<高性能MySQL>(电子工业出版社) > 场景描述 遇到一个场景:查询排序后的结果集较大,我们采用分页显示,每页显示20条记录,但是 ...