tmpfs和sysfs
来源:互联网 发布:网络教育专本科 编辑:程序博客网 时间:2024/06/06 01:23
tmpfs是一种基于内存的文件系统,它和虚拟磁盘ramdisk比较类似像,但不完全相同,和ramdisk一样,tmpfs可以使用RAM,但它也可以使用swap分区来存储。而且传统的ramdisk是个块设备,要用mkfs来格式化它,才能真正地使用它;而tmpfs是一个文件系统,并不是块设备,只是安装它,就可以使用了。tmpfs是最好的基于RAM的文件系统。
tmpfs 和VM(虚拟内存)
tmpfs 的优势
3使用 tmpfs
sysfs 文件系统
linux2.6内核引入sysfs文件系统,sysfs可以看成与proc,devfs和devpty同类别的文件系统,该文件系统是虚拟的文件系统,可以更方便对系统设备进行管理。它可以产生一个包含所有系统硬件层次视图,与提供进程和状态信息的proc文件系统十分类似。
sysfs把连接在系统上的设备和总线组织成为一个分级的文件,它们可以由用户空间存取,向用户空间导出内核的数据结构以及它们的属性。sysfs的一个目的就是展示设备驱动模型中各组件的层次关系,其顶级目录包括block,bus,drivers,class,power和firmware等.
它把实际连接到系统上的设备和总线组织成一个分级的文件,用户空间的程序同样可以利用这些信息以实现和内核的交互,该文件系统是当前系统上实际设备树的一个直观反应,它是通过kobject子系统来建立这个信息的,当一个kobject被创建的时候,对应的文件和目录也就被创建了,位于 /sys下的相关目录下,既然每个设备在sysfs中都有唯一对应的目录,那么也就可以被用户空间读写了。
你可能根本没有去关心过sysfs文件系统的挂载过程,它是这样被挂载的。
mount -t sysfs sysfs /sys
sysfs是一个特殊文件系统,并没有一个实际存放文件的介质。sysfs的信息来源是kobject层次结构,读一个sysfs文件,就是动态的从kobject结构提取信息,生成文件。重启后里面的信息当然就没了
我们要实现一种文件系统就是要实现VFS所定义的一系列接口,file_operations, dentry_operations, inode_operations等,供上层调用。file_operations是描述对每个具体文件的操作方法(如:读,写),dentry_operations结构体指明了VFS所有目录的操作方法, 而inode_operations提供所有结点的操作方法。
举个例子,我们写C程序,open(“hello.c”, O_RDONLY),它通过系统调用的流程是这样的
open() -> /*用户空间*/
-> 系统调用-> /*通过系统调用,程序进程内核状态*/
sys_open() -> filp_open()-> dentry_open() -> file_operations->open() /*内核空间*/
我们使用不同的文件系统,就是将它们各自的文件信息都抽象到dentry和inode中去。这样对于高层来说,我们就可以不关心底层的实现,我们使用的都是一系列标准的函数调用。这就是VFS的精髓,实际上就是面向对象。
注意sysfs是典型的特殊文件。它存储的信息都是由系统动态的生成的,它动态的包含了整个机器的硬件资源情况。从sysfs读写就相当于向 kobject层次结构提取数据。
kobject_add() -> create_dir() -> sysfs_create_dir()
- tmpfs和sysfs
- debugfs, tmpfs, proc, sysfs 介绍
- Linux┊理解devfs、sysfs、udev、tmpfs
- Linux┊理解devfs、sysfs、udev、tmpfs
- debugfs, tmpfs, proc, sysfs 对比介绍
- sysfs与ramfs、tmpfs、devtmpfs的一点区别
- ramdisk,ramfs和tmpfs
- ramfs 和 tmpfs
- tmpfs 和 /dev/shm
- tmpfs
- tmpfs
- tmpfs
- tmpfs
- tmpfs
- USB和sysfs文件系统
- USB和sysfs文件系统
- USB和sysfs文件系统
- USB和sysfs文件系统
- WPF 多国语言 localization
- 对“啊哈C v2.0”集成开发环境的一些感受 (LTS)
- proc/c++(二)
- 个人计划!
- springmvc 注解版helloworld
- tmpfs和sysfs
- Oracle DB 使用闪回技术2
- 牛逼的Android UI--第18章 与用户交互相关的设计模式 (下1)
- android开发案例之使用JSON数据向服务器提交和获取服务器传递的Json数据
- Android MediaRecorder获取音频流的方法
- 程序的链接与装入(动、静态重定位)
- javascript json
- sqlserver 数据行统计,秒查语句
- ubuntu12.04之疑难杂症--broadcom无线网卡安装失败解决办法