当前位置: 首页 > news >正文

Linux 特殊文件系统

1. ramfs

  • 作用:最原始的内存文件系统,所有数据都常驻内存,没有 swap-out 机制。

  • 特点

    • 占用的内存不可回收,可能撑爆内存。

    • 简单,适合测试或教学。

  • 内核代码位置fs/ramfs/

    • 典型用法:很少直接用,更常见的是被 tmpfs 替代。


    2. tmpfs

    • 作用:改进版内存文件系统,支持内存与 swap 的动态回收。

    • 特点

      • 挂载点常见 /dev/shm/run、临时目录。

      • 可以限制大小(mount -t tmpfs -o size=64M tmpfs /mnt)。

    • 内核代码位置mm/shmem.c

      • 典型用法/tmp/dev/shmsystemd/run


      3. devtmpfs

      • 作用:内核维护的设备节点文件系统,自动为设备生成 /dev/*

      • 特点

        • 如果 CONFIG_DEVTMPFS_MOUNT=y,内核启动时自动挂载 /dev

        • 节省用户空间 init 脚本手动 mknod 的繁琐。

      • 内核代码位置drivers/base/devtmpfs.c

        • 典型用法:现代系统 /dev 的基础,udev/systemd 再补充管理权限与符号链接。


        4. procfs

        • 作用:进程信息和内核参数的虚拟文件系统。

        • 特点

          • /proc/<pid>/ 目录:进程状态、映射、文件句柄等。

          • /proc/sys/ 下的 sysctl 接口:可运行时调整内核参数。

        • 内核代码位置fs/proc/

          • 典型用法cat /proc/cpuinfoecho 1 > /proc/sys/net/ipv4/ip_forward


          5. sysfs

          • 作用:设备驱动和内核对象(kobject)信息的导出接口。

          • 特点

            • 每个内核对象(如设备、驱动、总线)都映射到 /sys/

            • 通过 sysfs + udev 完成设备发现。

          • 内核代码位置fs/sysfs/

            • 典型用法/sys/class/net/eth0 查看网络接口属性。


            6. debugfs

            • 作用:内核调试文件系统,用于导出调试信息。

            • 特点

              • 非生产环境使用,因为暴露了很多内核内部信息。

              • /sys/kernel/debug/ 默认挂载点。

            • 内核代码位置fs/debugfs/

              • 典型用法/sys/kernel/debug/gpio/sys/kernel/debug/tracing


              7. tracefs

              • 作用:专门为内核跟踪系统(ftrace、perf、eBPF)提供的文件系统。

              • 特点

                • 原本依附于 debugfs,后来独立出来。

                • 挂载点 /sys/kernel/tracing

              • 内核代码位置fs/tracefs/

                • 典型用法:内核 trace,cat /sys/kernel/tracing/trace


                8. configfs

                • 作用:用户空间配置内核对象的接口(和 sysfs 相反,sysfs 是只读信息导出)。

                • 特点

                  • sysfs:内核导出 → 用户读/写属性。

                  • configfs:用户创建对象 → 内核动态感知。

                • 内核代码位置fs/configfs/

                  • 典型用法:USB gadget 子系统、pcie ep 配置。


                  9. initramfs

                  • 作用:取代 ramdisk 的新机制,基于 cpio 打包内存文件系统。

                  • 特点

                    • 内核直接解压到内存,不需要块设备。

                    • 内容直接变成 rootfs

                  • 内核代码位置init/initramfs.c

                    • 典型用法:现代 Linux 的 initramfs 启动流程。


                    10. initrd / initramdisk

                    • 作用:早期机制,挂载一个临时 ramdisk 作为根文件系统,然后再 pivot_root 到真实 rootfs。

                    • 特点

                      • 较老,已逐步被 initramfs 取代。

                      • 使用方式:root=/dev/ram0 initrd=...

                    • 内核代码位置init/do_mounts_initrd.c

                      • 典型用法:早期发行版的启动过渡方案。


                      11. overlayfs

                      • 作用:联合挂载文件系统,支持 只读层 + 可写层

                      • 特点

                        • 底层有 lowerdir(只读),upperdir(可写),合成后对外呈现统一视图。

                        • docker、容器、LiveCD 常用。

                      • 内核代码位置fs/overlayfs/

                        • 典型用法

                        • mount -t overlay overlay -o lowerdir=/ro,upperdir=/rw,workdir=/work /merged

                        http://www.dtcms.com/a/359522.html

                        相关文章:

                      • LeetCode每日一题,2025-8-31
                      • k8s中 discovery-token和token 的区别
                      • COLA:大型语言模型高效微调的革命性框架
                      • Python:如何批量下载CLMS NDVI V3数据集?
                      • 论文翻译:VSA | Faster Video Diffusion with Trainable Sparse Attention
                      • Cesium 入门教程(十四):鼠标键盘交互
                      • 【读数笔记】《你的生存本能正在杀死你》
                      • 【LeetCode 热题 100】64. 最小路径和——(解法二)递推
                      • 需要固定一个指针,再遍历另一个指针的都可以用双指针方法
                      • 分布式锁和分布式事务
                      • 刷算法题-数组-02
                      • Wend看源码-marker(RAG工程-PDF文件解析)
                      • isp图像处理--bayer Binning
                      • UVM APB 验证 VIP Agent 逻辑架构与数据流图
                      • 大话 IOT 技术(1) -- 架构篇
                      • Week 14: 深度学习补遗:迁移学习
                      • 设计模式在Java中的应用:从单例模式到工厂模式的全面解析!
                      • C++11——万能模板及完美转发
                      • redis详解 (最开始写博客是写redis 纪念日在写一篇redis)
                      • 雪花算法实现分布式环境下的高效动态ID生成
                      • 扩展:如何设计与实现一个微服务架构下的跨服务异常处理适配器?
                      • redis----zset详解
                      • 数值分析——非线性方程与方程组的数值解法之二分法
                      • 创意无界:云渲染如何让视觉创作触手可及
                      • 责任链模式实践-开放银行数据保护及合规
                      • 模型系列(篇三)-Llama
                      • 分布式事务相关
                      • 【MYSQL】从混乱到清晰:联合查询帮你打通数据孤岛
                      • Python 实战:内网渗透中的信息收集自动化脚本(6)
                      • React前端开发_Day11