tmpfs小结

linux tmpfs文件系统 本文介绍了linux tmpfs 文件系统的概念和使用场景。 阅读详情

什么是tmpfs

tmpfs是Linux/Unix系统上的一种基于内存的文件系统。tmpfs可以使用您的内存或swap分区来存储文件。

实现原理:基于VM子系统

tmpfs是基于Linux的虚拟内存管理子系统,面向普通用户的,根据用户需要随时可以创建此类型目录,以方便快捷地获得飞一样的读写速度。

当用户创建了此类型的目录后,剩下的工作就交给MMU来完成,不论是最终是在物理内存中还是在SWAP中,都尽可能地满足用户的需求。

linux内核中的VM子系统负责在后台管理虚拟内存资源Virtual Memory,即RAM和swap资源,透明地将RAM页移动到交换分区或从交换分区到RAM页,tmpfs文件系统需要VM子系统的页面来存储文件。tmpfs自己并不知道这些页面是在交换分区还是在RAM中;做这种决定是VM子系统的工作。tmpfs文件系统所知道的就是它正在使用某种形式的虚拟内存。

内核支持

编译内核时,启用“Virtual memory file system support”就可以使用tmpfs,linux kernel从2.4以后都开始支持tmpfs。目前主流的linux系统默认已启用tmpfs,如Redhat。

关于tmpfs和VM:

大家已经知道linux的虚拟内存(VM),包括ram和swap两部分,ram就是你的物理内存,swap就是在装系统的时候划分的swap分区(在win下叫做页面文件,默认位于C:\pagefiles.sys),VM也是程序所能使用的最大内存上限,tmpfs本质上也是VM,前者划出后者的部分页面作为一个文件系统.

关于tmpfs和ramdisk:

linux下的ramdisk是由内核提供的,要使用之,mount命令挂载即可,不需要第三方工具:)
但因为它会被视为块设备,所以仍然需要格式化该文件系统:使用mkfs命令格式化,
而tmpfs不需要ramdisk一旦创建就会占用固定大小的物理内存,tmpfs则是动态分配

tmpfs的优点: 

一句话概括:像使用磁盘一样简单,获得飞一样的速度

  • 使用方便:因为tmpfs是建立在VM上的,而不是物理磁盘上,所以不需要格式化就可以使用,所以不用尝试mkfs.tmpfs了:没有这条命令
  • 动态调节大小:tmpfs的大小是动态的,用多少才分配多少,删除文件则会释放相应的VM空间,=.=这一点非常令人激动
  • 扩展性好:当您的物理内存不足以支撑分配为tmpfs的大小时,它会自动使用swap的页面
  • 快:tmpfs大部分时间是驻留在物理内存中,这使得其读写速度超快=.=

tmpfs的缺点:

  • 不可持久保存:tmpfs的先天优势变成了他的先天劣势:内存的特性导致位于tmpfs上的数据断电会丢失
  • 成本高:相比较硬盘的价格来说,内存无疑还是很昂贵的,所以用tmpfs的目录不要放太大的东西

tmpfs的应用:

应用场景

  • 天生就是为临时目录而生的。
    例如:作为程序运行产生的临时文件目录,特别是针对服务器上某些Web服务更是前途无量,比如squid,网站,那将如虎添翼,飞一般的感觉啦。

  • Linux系统中的应用

magc@magc-pc:~$ df
文件系统          1K-块     已用    可用 已用% 挂载点
udev            4033116        0 4033116    0% /dev
tmpfs            810744     9452  801292    2% /run
/dev/sda5      39253420 31068724 6167680   84% /
tmpfs           4053708    94236 3959472    3% /dev/shm
tmpfs              5120        4    5116    1% /run/lock
tmpfs           4053708        0 4053708    0% /sys/fs/cgroup
tmpfs            810744       24  810720    1% /run/user/1000

可见,在Linux系统中tmpfs的用武之地还是很多的。

43 tmpfs/devtmpfs 文件系统 文件系统这一套体系在 linux 有一层 vfs 抽象, 用户程序不用关心 底层文件系统的具体实现, 用户只用操作 open/read/write/ioctl/close 的相关 系统调用, 这一层系统调用 会操作 vfs 来处理响应的业务。基于磁盘的文件系统, ext2, ext3, ext4, xfs, btrfs, jfs, ntfs。内存文件系统, procfs, sysfs, tmpfs, squashfs, debugfs。闪存文件系统, ubifs, jffs2, yaffs。 阅读详情

相关推荐

BK7238(XH-WB3S)固件烧录实战:从AT固件选择到稳定下载全解析

本文详细解析了BK7238(XH-WB3S)模组固件烧录的全过程,从AT固件版本选择到稳定下载的实战技巧。重点介绍了烧录前的准备工作、硬件连接的正确姿势、烧录软件的实战技巧以及疑难问题排查指南,帮助开发者高效完成BK7238模组的固件烧录。

weixin_29159441的博客 246

Linux文件系统Tmpfs

Linux文件系统tmpfs简介

小立仔 5290

Java课程设计——扫雷游戏程序

使用Java语言对扫雷游戏的复刻

m0_60671275的博客 3496

tmpfs文件系统介绍

tmpfs文件系统介绍

a2591748032的博客 4307

ArduPilot + Gazebo + Mavros + QGC + 遥控器:从仿真到实机的自主轨迹控制实践

本文详细介绍了基于ArduPilot、Gazebo、Mavros和QGC的无人机自主轨迹控制全流程实践。从仿真环境搭建、多终端协同配置,到遥控器集成与自主圆形轨迹算法实现,提供了完整的代码示例和实机迁移要点,帮助开发者快速掌握无人机自主控制技术。

corn8的博客 940

知识检索中的四大评估指标:准确率、精确率、召回率与F1分数详解

摘要:NLP算法面试中,评估知识检索系统的核心指标包括准确率、精确率、召回率和F1分数。准确率衡量整体预测正确性,但在样本不均衡时可能失真;精确率关注预测正类中的真实比例(查准能力),召回率衡量真实正类被预测的比例(查全能力)。F1分数是两者的调和平均,提供综合评估。这些指标通过混淆矩阵计算,并存在制约关系:提高召回率往往降低精确率,反之亦然。应用场景包括文档检索(评估结果质量和覆盖度)和文本分类(如垃圾邮件过滤)。面试需掌握指标区别、适用场景及平衡方法(如调整阈值)。F1分数在样本不平衡时比准确率更具参考

Ven%的博客 1762

tmpfs详解

tmpfs是一种基于内存的文件系统,不像其他的文件系统需要格式化后才可以挂载,而是直接使用,由于是在内存中存储数据,那么在断电后会导致数据丢失。在使用到tmpfs文件系统存储数据效率会得到一定的提升。 一、特点: 1.基于内存的文件系统 2.没有持久性,重启服务器后文件就会丢失 3.能够动态地使用虚拟内存 4.不需要格式化文件系统 二、应用场景: 1.需要动态空间使用和动态变化; 2.php session; 3.存放socket; 4.自定义缓存,比如存放临时文件等等; 5.降低开发人员代码编写难度; 6

sinat_24354307的博客 8119

笔记:使用Materials Studio计算聚合物的玻璃化转变温度

使用Materials Studio计算聚合物的玻璃化转变温度。

FXJgogogo的博客 1935

GLM-5 系列开源模型技术指南:从 Vibe Coding 到 Agentic Engineering 的部署、参数调优与微调实战

GLM-5 系列是面向复杂系统工程与长周期智能体任务(Agentic Engineering)的开源大模型家族,本指南基于仓库 [README.md](https://link.gitcode.com/i/88ce33769bd8e8b0058a07d443287726) 的官方内容,系统梳理 GLM-5 / GLM-5.1 / GLM-5.2 / GLM-5.3 四代模型的架构演进、基准表现、模

gitblog_00610的博客 407

Hopfield神经网络(HNN)详解

Hopfield神经网络是一种比较特殊的网络,它不像一般的神经网络那样有输入层和输出层,并且通过训练来改变神经网络中的参数,最终实现预测、识别等功能。Hopfield网络只有一群神经元节点,所有节点之间相互连接,形式如下: 虽然有些文章会画出像深度神经网络那样有输入输出的图,并且输出后又返回输入,但本质上就是多个节点之间的全连接,也就是上面的图形。Hopfield神经网络主要有两个应用:一是起到类似储存器的作用,也就是我们把多个序列或图片输入这个网络,最终这个网络会以神经元之间连接权重的形式储存这

weixin_60737527的博客 4万+

华为OD机试真题 新系统2026-04-01 C++ 实现【计算数列位置N的值】

如果其前面的M个元素中,存在值相同的元素,则该位置上的数值等于前面M个数中最大的数值与最小的数值之如果其前面的M个元素中,不存在值相同的元素,则该位置上的数值等于前面M个数中最大的数值与最小的数值之差;1、输入M、N两个数,则按照以下规则形成一个数列;两个整数,用逗号分割,分别表示M和N。一个整数,表示数列第N个位置上的数值。2、数列的前M个元素的值为1到M;请计算该数列第N个位置上的数值。N取值范围:1<= N<=50。M取值范围:3<=M<=10。

MISAYAONE的博客 1149

Kernel中Kconfig小结

前言 当执行#make menuconfig时会出现内核的配置界面,所有配置工具都是通过读取"arch/$(ARCH)Kconfig"文件来生成配置界面,这个文件就是所有配置的总入口,它会包含其他目录的Kconfig 注:对于uboot来讲,配置的总入口在uboot/Kconfig 作用 Kconfig用来配置内核,它就是各种配置界面的源文件,内核的配置工具读取各个Kconfig文件...

私房菜 3180

手把手教你学simulink实例--基于Simulink的船舶动力装置性能评估与仿真

船舶动力装置是船舶运行的核心系统,其性能直接影响船舶的安全性、经济性和环保性。基于MATLAB/Simulink平台进行船舶动力装置性能评估与仿真是研究和优化船舶动力系统的重要手段。通过建模与仿真,可以分析动力装置在不同工况下的性能表现,并验证控制策略的有效性。本项目旨在构建一个完整的船舶动力装置性能评估与仿真模型,包括发动机建模、传动系统建模、负载分析以及性能评估模块,并通过仿真分析其动态响应和性能指标。

MHD0815的博客 971

docker学习(2)存储与挂载

Docker数据持久化方式对比及命令解析 容器删除后数据的去向 默认情况下,容器删除时其可写层数据会丢失。只有使用外部存储方式的数据才会保留,主要包括: Volume(Docker管理的专用数据目录) Bind Mount(直接挂载宿主机路径) Tmpfs Mount(仅内存存储) 三种持久化方式对比 特性 Volume Bind Mount Tmpfs 存储位置 Docker管理 宿主机指定路径 内存 容器删除后保留 ✅ ✅ ❌ 多容器共享 ✅ ✅ ❌ 速度 中等 中等 极快 命令解析 -v(简写)和--

PLANTTHESON的博客 911

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

什么是 KernelSU metamodule?用 Mountify 理解下一代模块挂载架构

KernelSU metamodule 是一种全新的模块挂载架构:它允许一个"元模块"接管其他模块的挂载工作,统一通过 OverlayFS 进行全局挂载。Mountify 正是这一理念的典型实践——一个自称"Globally mounted modules via OverlayFS"的开源项目,同时兼容 KernelSU、APatch 与 Magisk。本文将为新手彻底讲清 KernelSU m

gitblog_00180的博客 581

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

openinterpreter 中 Bubblewrap 沙箱解析:基于 Linux 用户命名空间的无特权容器隔离机制

本文以仓库内 vendored 的 bubblewrap 说明文档([codex-rs/vendor/bubblewrap/README.md](https://link.gitcode.com/i/27763a0034ed3e35ce84a359cb394eaa))为主体,系统讲解 bubblewrap 的设计动机、基于 Linux 用户命名空间的无特权沙箱原理、核心命令行选项与典型用法,并结合

gitblog_00411的博客 1103

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

GeoLibre 免费教程:20 分钟在浏览器跑通空间 SQL 与可分享地图

用传统 GIS 做一张分析图,往往要先装软件、等数据、再折腾服务器。GeoLibre 是一个免费开源的云原生 GIS 平台,把浏览、查询与地理处理直接搬进浏览器,数据默认留在本地,浏览器、桌面、移动端与 Jupyter 同一套代码。跟完本教程,你大约 20 分钟就能从零加载一份远程矢量数据,跑完缓冲、叠加与空间 SQL 分析,并把成品地图以链接和 iframe 嵌入你自己的网页。 ## 能力一览

gitblog_00892的博客 152

opc-cli ASR四阶段Pipeline深度解析:强制对齐、两遍断句、CSV修正与SRT/ASS渲染

OPC 仓库里的 `opc-cli` 内置了一条**本地化 ASR 四阶段 Pipeline**:从 Qwen3-ASR 语音识别 + 强制对齐(Forced Alignment),到两遍断句(Two-Pass Sentence Breaking)、CSV 批量修正,最终一次渲染出 **SRT + ASS(卡拉OK)** 双格式字幕。整条链路离线可跑,长音频自动切片,每个阶段都能断点续跑。 [!

gitblog_00073的博客 207

Crawl4AI Docker 镜像安全加固:从离线测试到构建/运行验证的完整操作手册

Crawl4AI 的 Docker 服务端在默认配置下已启用一系列安全加固措施(fail-closed 的 socket 级认证、只读根文件系统、Redis 环回加密码、浏览器出口代理防 DNS 重绑定等),但其中若干项只能靠一次真实的 `docker build` + 启动、甚至浏览器操作才能最终确认。本文基于仓库内的 [SECURITY-VERIFY.md](https://link.gitc

gitblog_00646的博客 770

Linux文件系统之根文件系统rootfs

1.rootfs是需要Linux系统启动初期能够识别的,因此最好的方案是使用ram filesystem;2.包含基本的目录结构和启动程序;3.Linux设备的rootfs一般作为过渡使用,Android不仅用作启动,还作为文件系统的顶层框架;4.Linux和Android上的rootfs一般为initrd和initramfs (有ramfs和tmpfs),它们都是ram filesystem;5.ramdisk依赖VFS?所有文件系统都需依赖VFS。

STCNXPARM的博客 428

容器管理之---数据管理

前面学习了镜像的管理、容器的管理,今天学习数据的管理,毕竟一个服务或一个程序的发布是离不开数据的,数据才是企业的核心。 # 一、数据的存放形式我们在部署容器的时候往往将数据是存放宿主机目录的,你想如果把数据存放容器上,一不小心删除了容器,就哭瞎眼了;而且放宿主机更便于维护和管理。将数据从宿主机挂载到容器中的三种方式:1、 Volume:Docker会管理宿主机文件系统的一部分(/var/lib...

chalielang2804的博客 266

docker管理应用程序数据

将数据从宿主机挂载到容器中的三种方式 1. Docker提供三种方式将数据从宿主机挂载到容器中: volumes:Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)。保存数据的最佳方式。 bind mounts:将宿主机上的任意位置的文件或者目录挂载到容器中。 tmpfs:挂载存储在主机系统的内存中,而不会写入主机的文件系统。如果不希望将数据持久存储在任何位...

love8753的博客 249

20分钟完成DeepTutor部署:从一条安装命令到离线跑通

DeepTutor 是一个 Agent 原生的个性化学习平台,把答疑、解题、研究报告、可视化和知识库装进同一个工作区。本文只讲三件事:跑通 DeepTutor 部署、启动后先看哪几处界面、再配好本地模型离线运行。前提是你机器上装了 Python 3.11 以上和 Node.js 20 以上,够了。 无论走哪条安装路线,配置文件都落在你启动目录下的 `data/user/settings/` 里,

gitblog_00860的博客 604

Linux/Android文件系统架构深度剖析

1)文件系统作为内核的五大模块之一1、Linux的运行离不开文件系统;2、驱动开发更离不开文件系统这个框架 (用户态与内核态的交互的基础);2)虽然文件系统实现极其庞大复杂,但实际开发项目中,很少去开发文件系统功能,bring up阶段,我们要做的是几类工作:1、配置文件系统类型;2、配置分区 - GPT、fstab1)增加customer客制化的分区;2)制作烧录bin、升级固件;3、裁剪内容 - 根据存储器件容量调整分区3)文件系统本质是内核和用户空间交互的”中间件“!

STCNXPARM的博客 504

Docker 入门第五阶段:网络、存储与生产实践

本文是Docker入门系列第五阶段教程,重点讲解网络配置、存储方案和生产环境实践。主要内容包括:深入Docker网络模型(bridge/host模式、端口映射原理)、使用自定义网络实现服务隔离;对比命名卷、绑定挂载和tmpfs三种存储方式;引入healthcheck健康检查确保服务依赖顺序;将多阶段构建与Compose结合优化生产镜像;提供生产环境配置要点(资源限制、日志管理)。通过实战演示如何配置前端/后端网络隔离、数据库备份等场景,帮助开发者从"能运行"进阶到"稳定运行、安全部署"的生产级应用水平。

jieyucx的博客 368
上一篇: 几个软件研发团队管理的小问题
下一篇: Linux主机和VirtualBox之间实现串口通信
Linux先生
博客等级 码龄20年 97粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值