[转载]VFS—Kernel Space & User Space
在了解虚拟文件系统之前 , 需要先了解 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的更多相关文章
- ARM64 Linux kernel virtual address space
墙外通道:http://thinkiii.blogspot.com/2014/02/arm64-linux-kernel-virtual-address-space.html Now let's ta ...
- ARM32 Linux kernel virtual address space
http://thinkiii.blogspot.jp/2014/02/arm32-linux-kernel-virtual-address-space.html The 32-bit ARM C ...
- 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. ...
- [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 ...
- JVM内存区域划分Eden Space\Survivor Space\Tenured Gen\Perm Gen
JVM区域分heap区和非heap区. 1)heap区:Eden Space(伊甸园),Survivor Space(幸存者区),Tenured Gen(老年代-养老区). 2)非heap区:Code ...
- java.lang.OutOfMemoryError: PermGen space及其解决方法(转载)
java.lang.OutOfMemoryError: PermGen space及其解决方法 分类: java2007-09-11 12:34 162242人阅读 评论(51) 收藏 举报 gene ...
- tomcat内存溢出 PermGen space
1. java.lang.OutOfMemoryError: PermGen space ---- PermGen space溢出. PermGen space的全称是Permanent Gene ...
- 解决 PermGen space Tomcat内存设置
转自:http://qwzhl100.blog.163.com/blog/static/2133124200932813148637/ 在 使用Java程序从数据库中查询大量的数据或是应用服务器(如t ...
- 解决 PermGen space Tomcat内存设置(转)
在使用Java程序从数据库中查询大量的数据或是应用服务器(如tomcat.jboss,weblogic)加载jar包时会出现java.lang.OutOfMemoryError异常.这主要是由于应用服 ...
随机推荐
- 23、jQuery九类选择器/jQuery常用Method-API/jQuery常用Event-API
1)掌握jQuery九类选择器及应用 2)掌握jQuery常用Method-API 3)掌握jQuery常用Event-API 一)jQuery九类选择器[参见jQueryAPI.chm手册] 目 ...
- ectouch第六讲 之表常用链接
ECTouch1.0 常用链接:精品属性商品mobile/index.php?m=default&c=category&type=best 新品属性商品mobile/index.php ...
- php连接函数implode()和分割explode()
php可以将字符串分割成数组,同时翻过了也可以将数组连接成字符串,确切的说是可以将数组元素连接成字符串,有了这两个函数我们就可以在数组与字符串之间进行自由转换了,下面看正文的例子吧. implode( ...
- 每日一九度之 题目1076:N的阶乘
时间限制:3 秒 内存限制:128 兆 特殊判题:否 提交:7601 解决:2749 题目描述: 输入一个正整数N,输出N的阶乘. 输入: 正整数N(0<=N<=1000) 输出: 输入可 ...
- ACM题目————Subsequence
Description A sequence of N positive integers (10 < N < 100 000), each of them less than or eq ...
- 怎么查看jar包版本
jar包根目录里的META-INF目录下的MANIFEST.MF文件里一般有会记录版本信息,可以到这个文件里查看 打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录,这个目录 ...
- Unity-Animator深入系列---StateMachineBehaviour状态机脚本学习
回到 Animator深入系列总目录 首先这个脚本必须继承自StateMachineBehaviour public class MySMB : StateMachineBehaviour { pub ...
- 记一次SortedDictionary的不当使用
起初想用SortedDictionary做游戏中的排行榜,代码如下: using UnityEngine; using System; using System.Collections; using ...
- 2016年11月11日 星期五 --出埃及记 Exodus 20:2
2016年11月11日 星期五 --出埃及记 Exodus 20:2 "I am the LORD your God, who brought you out of Egypt, out o ...
- android 入门 001 (界面布局)
学android 首先学会怎么布局界面,我开始是学.net的,因工作需要学习一下安卓,外行写的不好,请多多见谅指教 .这一篇文章然我们来学习一下四种布局吧! RelativeLayout(相对布局) ...