(笔记)Linux内核学习(十)之虚拟文件系统概念
虚拟文件系统
虚拟文件系统:内核子系统VFS,VFS是内核中文件系统的抽象层,为用户空间提供文件系统相关接口;
通过虚拟文件系统,程序可以利用标准Linux文件系统调用在不同的文件系统中进行交互和操作。
VFS作为抽象层:
    
文件系统被安装在一个特定的安装点上,该安装点在全局层次结构中被称作命名空间,
所有的已安装文件系统都作为根文件系统树的枝叶出现在系统中。
     
文件系统主要的对象:
超级块对象:代表一个已安装文件系统;struct super_block {}
索引节点对象:代表一个文件;struct inode {}
目录项对象:代表一个目录项,路径的一个组成部分;struct dentry {}
文件对象:进程打开的文件;struct file {}
特定文件系统类型:struct file_system_type {}
安装文件系统的实例:struct vfsmount {}
对象之间的结构关系如下:
    
Linux 中的 VFS 文件系统机制:
https://www.ibm.com/developerworks/cn/linux/l-vfs/
(笔记)Linux内核学习(十)之虚拟文件系统概念的更多相关文章
- Linux内核入门到放弃-虚拟文件系统-《深入Linux内核架构》笔记
		
VFS的任务并不简单.一方面,它用来提供了一种操作文件.目录及其他对象的统一方法.另一方面,它必须能够与各种方法给出的具体文件系统的实现达成妥协,这些实现在具体细节.总体设计方面都有一些不同之处. 文 ...
 - (笔记)Linux内核学习(九)之内核内存管理方式
		
一 页 内核把物理页作为内存管理的基本单位:内存管理单元(MMU)把虚拟地址转换为物理 地址,通常以页为单位进行处理.MMU以页大小为单位来管理系统中的也表. 32位系统:页大小4KB 64位系统:页 ...
 - (笔记)Linux内核学习(一)之内核介绍
		
内核与操作系统: 内核是操作系统的核心部分,包含了系统运行的核心过程,决定系统的性能,操作系统启动内核被装入到RAM中: 操作系统与底层硬件设备交互和为运行应用程序提供执行环境. Linux内核与微内 ...
 - linux内核(五)虚拟文件系统
		
虚拟文件系统(VFS)是linux内核和具体I/O设备之间的封装的一层共通访问接口,通过这层接口,linux内核可以以同一的方式访问各种I/O设备. 虚拟文件系统本身是linux内核的一部分,是纯软件 ...
 - (笔记)Linux内核学习(四)之系统调用
		
一 用户空间和内核空间 Linux内核将这4G字节虚拟地址空间的空间分为两部分: l 将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为“内核空间”. l ...
 - (笔记)Linux内核学习(二)之进程
		
一 进程与线程 进程就是处于执行期的程序,包含了独立地址空间,多个执行线程等资源. 线程是进程中活动的对象,每个线程都拥有独立的程序计数器.进程栈和一组进程寄存器. 内核调度的对象是线程而不是进程.对 ...
 - (笔记)Linux内核学习(十一)之I/O层和I/O调度机制
		
一 块I/O基本概念 字符设备:按照字符流的方式被有序访问的设备.如串口.键盘等. 块设备:系统中不能随机(不需要按顺序)访问固定大小的数据片(chunk 块)的设备. 如:硬盘.软盘.CD-ROM驱 ...
 - (笔记)Linux内核学习(三)之进程调度
		
进程调度: 在可运行态进程之间分配有限处理器时间资源的内核子系统. 一 调度策略 1 进程类型 I/O消耗型进程:大部分时间用来提交I/O请求或是等待I/O请求,经常处于可运行状态,但运行时间短,等待 ...
 - (笔记)Linux内核学习(八)之定时器和时间管理
		
一 内核中的时间观念 内核在硬件的帮助下计算和管理时间.硬件为内核提供一个系统定时器用以计算流逝的时间.系 统定时器以某种频率自行触发,产生时钟中断,进入内核时钟中断处理程序中进行处理. 墙上时间和系 ...
 
随机推荐
- PHP文件相关
			
<?php class FileDemo { function Test() { print __FILE__."<br/>"; //返回文件完整路径,如 E:/ ...
 - thinkphp支持大小写url地址访问,不产生下划线
			
from:http://www.111cn.net/phper/thinkPhp/57748.htm 一.在配置文件中开启了thinkphp的大小写识别功能,使链接大小写都可以正常访问: ‘URL_C ...
 - Backbone Model——数据模型
			
Model是Backbone中所有数据模型的基类,用于封装原始数据,并提供对数据进行操作的方法,我们一般通过继承的方式来扩展和使用它. 如果你做过数据库开发,可能对ORM(对象关系映射)不会陌生,而B ...
 - lucene索引文件大小优化小结
			
http://www.cnblogs.com/LBSer/p/4068864.html 随着业务快速发展,基于lucene的索引文件zip压缩后也接近了GB量级,而保持索引文件大小为一个可以接受的范围 ...
 - atitit.条形码的原理与生成总结java Barcode4j barcode o5
			
atitit.条形码的原理与生成总结java Barcode4j barcode o5 条形码类库使用报告Barcode4j, ZXing 1 使用成果图片 1 条形码标准code 128和code ...
 - paip.编程语言方法重载实现的原理及python,php,js中实现方法重载
			
paip.编程语言方法重载实现的原理及python,php,js中实现方法重载 有些语言,在方法的重载上,形式上不支持函数重载,但可以通过模拟实现.. 主要原理:根据参数个数进行重载,或者使用默认值 ...
 - hdu 1284完全背包
			
http://acm.hdu.edu.cn/showproblem.php?pid=1284 New~ 欢迎“热爱编程”的高考少年——报考杭州电子科技大学计算机学院关于2015年杭电ACM暑期集训队的 ...
 - log4qt的使用
			
Log4Qt替换成新版本使其支持Qt5:https://github.com/devbean/log4qt/tree/master/src/log4qt 1. 解压log4qt到目标文件夹,如D:\Q ...
 - linux 下查找大于100M的文件(转)
			
命令行如下 find . -type f -size +1000000k Linux系统下查找大文件或目录的技巧 当硬盘空间不够时,我们就很关心哪些目录或文件比较大,看看能否干掉一些了,怎么才能知道呢 ...
 - Disable multi finger touch in my app
			
http://stackoverflow.com/questions/12777435/disable-multi-finger-touch-in-my-app android:splitMotion ...