注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
oxlm_1的个人空间 https://home.eeworld.com.cn/space-uid-1076641.html [收藏] [复制] [分享] [RSS]
日志

《Linux内核深度解析》-文件系统总体架构

已有 45 次阅读2025-2-3 16:18 |个人分类:读书笔记

        在阅读此章节前,我对linux的认知为一切皆文件。实际上,在操作linux时,也是这么个思路,写驱动,通过DEVICE_ATTR的方式在文件系统中暴露读写接口,这样便变成了直接读写文件,在posix标准以外再增加一些通路去直接操作设备驱动。而这类接口是如何和文件系统挂钩的,此前并不清楚。
        通过阅读《Linux内核深度解析》,我发现linux文件系统思路和RTT很像(确切的说,应该是RTT使用了linux文件系统的思路),都是在各种文件系统上再封装了一层接口,使系统能够使用统一的方式操作不同种类的文件系统,这个封装的层面,在RTT中叫DFS,而在linux中叫VFS。
        再下到下一层,Linux是通过标准的文件系统类型接口file_system_type标准化的接口对接的各类文件系统,有对接存储的闪存文件系统,对接内存的内存文件系统,以及各类其他文件系统,由于这本书文件系统部分只讲了对接存储的文件系统,其他文件系统仅仅是一句话带过,因此这部分具体实现逻辑并不清楚。同样的,rtthread也是一样的套路,使用dfs_register调用dfs_filesystem_ops标准化接口注册文件系统,再下一层便是对接文件系统的elmfat(即我们常提的FAT16,FAT32等文件系统),对接设备的devfs,对接内存的ramfs,以及各类其他文件系统。
        而对接文件系统的接口中,又存在多种接口,比如对接闪存的MTD层(下一层为直接操作硬件的实际硬件操作接口),对接NVDIMM设备的DAX层(DAX层又通过libnvdimm子系统支持三类不同的设备(持久闪存模式的设备,块设备模式的设备和同时支持这两种模式的设备))。这一层rtthread的对接闪存的接口,完全的参考了linux的操作,也标准化了MTD层,唯一不足的是并没有实现对非易失性存储的支持(也可能我的使用过程中未涉猎,实际已支持)。
以下为两种操作系统的文件系统框架结构图
    rtthread
    linux(盗隔壁帖子的图,感觉也没必要重复再拍一次)

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章