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

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.xdnf.cn/news/19356.html

                        相关文章:

                      • 二、程序设计语言基础知识
                      • 预售破 500 万!淮北吾悦广场京东奥莱8月29日开业燃动皖北
                      • Pytest+Selenium4 Web自动化测试框架(三日速通)
                      • ANR InputDispatching TimeOut超时判断 - android-15.0.0_r23
                      • python如何打开显示svg图片
                      • react-beautiful-dnd ​React 拖拽(Drag and Drop)库
                      • Scikit-learn Python机器学习 - 类别特征提取- OneHotEncoder
                      • 人工智能-python-深度学习-
                      • RPC个人笔记(包含动态代理)
                      • HarmonyOS 应用开发:基于API 12+的现代化开发实践
                      • shell编程基础入门-2
                      • 层次分析法
                      • 现代C++特性 并发编程:线程管理库 <thread>(C++11)
                      • dayjs 常用方法总结
                      • MySQL—— 概述 SQL语句
                      • MSVC---编译器工具链
                      • 【CUDA入门·Lesson 1】Ubuntu实战:CUDA 概念、nvidia-smi 工具与 GPU 参数详解
                      • Docker从零学习系列之Dockerfile
                      • 蓓韵安禧活性叶酸独立包装防漏贴心设计
                      • 策略模式:模拟八路军的抗日策略
                      • 性能测试工具-Slow Query Log
                      • React学习教程,从入门到精通, ReactJS - 架构(6)
                      • Java GC 销毁机制 与 Redis 过期策略深度对比
                      • AI+IP双驱动:效率提升的关键
                      • 查漏补缺——与日期有关的字符串
                      • SAP Business One的设计哲学
                      • Linux 网络编程:深入理解套接字与通信机制
                      • 在Windows系统Docker中使用wsl2、容器、windows文件路径三种不同挂载方式的区别和性能差异
                      • 大话 IOT 技术(1) -- 架构篇
                      • 【代码随想录day 22】 力扣 39. 组合总和