RamFS/TmpFS文件系统

2024-03-16 06:18
文章标签 文件系统 tmpfs ramfs

本文主要是介绍RamFS/TmpFS文件系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

RamFS/TmpFS(以下简称RamFS)是Linus Torvalds 开发的一种基于内存的文件系统,工作于虚拟文件系统层(VFS),不能格式化啊,可以创建多个,在创建时可以指定最大能使用的内存大小,并且读写。


       当Linux 运行于嵌入式设备上市,许多守护进程会在后台运行并生成许多日志消息。另外,内核日志记录机制,像syslogd、dmesg 和 klogd,会在 /var 和/tmp 目录下生成许多消息。由于这些进程长生了大量数据,而且只是为了记录系统当前的执行状态,在重新引导之后就丢弃了这些信息,所有如果解决这个问题的比较好的方案是使用RamFS。


       RamFS 文件系统把所有的文件都放在 RAM 中,所以读/写 操作发生在RAM中,可以用RamFS 来存储一些临时性或经常要修改的数据,例如 /tmp 和/var 目录,这样既避免了对Flash 存储器的读写损耗,也提高了数据读写速度。


       RamFS 相对于传统的Ramdisk 的不同之处主要在于:不能格式化,文件系统大小可以随所含文件内容大小变化。RamFS 相对于传统的 Ramdisk 的优点包括:


       > 动态文件系统大小。文件系统大小可以根据被复制、创建或删除的文件及目录的数据来缩放,使得能够以最理想的方式使用内存;


       > 速度。因为RamFS 驻留在RAM,所以读和写几乎都是瞬时的。即使以交换的形式存储文件,I/O操作的速度仍非常快。


       同样,RamFS 在系统重新引导时会丢失所有数据。因此,需要长期保存的数据不能存储在RamFS上。


       如果Linux 内核已经支持了RamFS,那么就可以随时可以使用RamFS 了。创建一个目录,加载RamFS 到该目录即可。


       与EXT2 和 JFFS2 等大多数其他文件系统都驻留在块设备之上不同,RamFS 直接位于VFS 上。因而,挂载 RamFS 文件系统的命令略有不同。如下所示:


       $ mkdir /mnt/Ramfs


       $ mount -t ramfs none /mnt/Ramfs 


       注意RamFS 没有对应的dev 目录下的设备文件。


       默认情况下,RamFS 被限制最多可使用的内存大小的一半。可以通过 maxsize (以KB 为单位)选项来改变。如:


       $ mount -t ramfs none /mnt/Ramfs -o maxsize=2000


       这个命令创建了一个限定最大使用内存为2M 的Ramdisk。


       在 /etc/rc.d 文件中,常常能看到这样的内容:


       $mount -t tmpfs /var -o size=512K


       $mkdir -p /var/tmp


       $mkdir -p /var/log


       $ln -s /var/tmp /tmp


       这段命令将在 /var 上创建的 RamFS 并将RamFS 的最大大小限制为512K。同时,tmp/ 和 log/ 目录成为 RmpFS 的一部分以便在RAM 中存储日志消息。可见 RamFS 还是相当实用的一种Ramdisk。


        如果想将 RamFS 的一项添加在 /etc/fstab,那么它可能看起来像这样:


        tmpfs /var tmpfs size=32m 0 0


        这将在 /var 上挂载一个新的 RamFS 文件系统。     

这篇关于RamFS/TmpFS文件系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/814558

相关文章

Linux中的缓冲区和文件系统详解

《Linux中的缓冲区和文件系统详解》:本文主要介绍Linux中的缓冲区和文件系统方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、FILE结构1、fd2、缓冲区二、文件系统1、固态硬盘2、逻辑地址LBA(一)数据块 Data blocks(二)inode表

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

使用jetty和mongodb做个简易文件系统

使用jetty和mongodb做个简易文件系统 - ciaos 时间 2014-03-09 21:21:00   博客园-所有随笔区 原文   http://www.cnblogs.com/ciaos/p/3590662.html 主题  MongoDB  Jetty  文件系统 依赖库: 1,jetty(提供http方式接口) 2,mongodb的java驱动(访问mo

Kubernetes集群安装、配置glusterfs文件系统

环境介绍: 3台Centos 7.4系统节点,已经部署好Kubernetes,同时复用这3台机器作为gluster存储节点: hostIPK8s roleg1-nasp12.12.10.11master + nodeg3-nasp12.12.10.13nodeg4-nasp12.12.10.14node 安装、配置glusterfs: 在物理主机上采用yum安装的方式,步骤如下: 1

Ubuntu构建只读文件系统

本文介绍Ubuntu构建只读文件系统。 嵌入式系统使用过程中,有时会涉及到非法关机(比如直接关机,或意外断电),这可能造成文件系统损坏,为了提高系统的可靠性,通常将根文件系统设置为只读,将其他需要读写的数据放置在另外开辟的一个磁盘分区,本文针对嵌入式系统常用的Ubuntu操作系统构建只读文件系统。 1.基本原理 1)OverlayFS简介 OverlayFS(Overlay File Sy

linux 文件系统与磁盘

总结 文件系统(1)磁道(2)扇区:一个磁道上分多个扇区,目前有 512bytes 和 4k 两种格式(3)分区:把多个扇区组合 做分区,每种分区类型下的分区表决定最大支持的磁盘容量,如MBR,GPT分区(4)文件系统:对每个分区格式化成不同的文件系统,如EXT2(5)inode /block/superblock:文件系统通常将文件数据和文件属性 这两部分数据放置到不同的区块,权限与属性放置到

服务器数据恢复—OneFS文件系统下数据被删除的数据恢复案例

服务器数据恢复环境&故障: EMC NAS(Isilon S200),共3个节点,每个节点配置12块STAT硬盘。数据分两部分:一部分数据为vmware虚拟机(WEB服务器),通过NFS协议共享到ESX主机;另一部分数据为视频教学文件,通过CIFS协议共享给虚拟机(WEB服务器)。 外部入侵导致视重要数据被删除,其中包括MSSQL数据库,MP4、ASF和TS类型的视频教学文件。主要是删除了NFS共

U盘 文件系统

Linux系统 U盘异常情况。 异常 描述 将文件(独立文件、文件夹、压缩包)从计算机复制(命令 或 图形界面)到U盘后,出现下述情形(1)复制到U盘的文件删除不掉,提示只读文件系统(2)从U盘复制回计算机,提示只读文件系统,输入/输出错误,文件损坏等。 解决方案 原因之一是U盘使用的文件系统有问题,可以通过格式化U盘为其他文件系统来解决(如ntfs)。

【Linux】深入理解Linux文件系统中的inode

文章目录 深入理解Linux文件系统中的inode1. 什么是inode?2. inode的结构示例: 3. inode的工作原理4. inode与文件系统的关系5. inode的实际应用6. 总结 深入理解Linux文件系统中的inode 在Linux文件系统中,inode是一个核心概念,它在文件的管理和操作中起着至关重要的作用。如果你是Linux系统的使用者或管理员,

Android14音频进阶之定制ramdisk文件系统init服务(八十三)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门视频实战课 🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧