代码之家  ›  专栏  ›  技术社区  ›  Matt Joiner

创建文件系统原型

  •  3
  • Matt Joiner  · 技术社区  · 15 年前

    对文件系统进行原型设计的最佳实践是什么?

    我曾尝试使用 fusepy ,现在我很好奇:

    • 从长远来看,是否应该 值得尊敬的文件系统实现 可移植性,或最终导致
    • 还有其他类似的实现吗
    • 显然,核心文件系统技术进展缓慢(fat32、ext3、ntfs,其他都是小鱼),采用了哪些调试技术?
    • 在主要OSs中实现高度优化、完全支持的实现时,文件系统开发的一般过程是什么?
    4 回复  |  直到 15 年前
        1
  •  2
  •   Vinko Vrsalovic    15 年前

    从长远来看,是否应该 值得尊敬的文件系统实现 在C区吗?不在C里会妨碍你吗 可移植性,或最终导致

    不一定,有很多不同于C的执行语言(OcCAML,C++是最先想到的)。事实上,我希望NTFS是用C++编写的。问题是,您似乎来自Linux背景,而且由于Linux内核是用C编写的,任何希望合并到内核中的文件系统也必须用C编写。

    还有其他类似的实现吗 保险丝?

    比如说,有几个是针对Windows的, http://code.google.com/p/winflux/ http://dokan-dev.net/en/

    核心文件系统技术 是否采用了调试技术?

    ZFS ,在Linux中 ext4 btrfs 存在。调试技术通常包括在各种操作中间关闭机器,查看数据的状态,存储大量数据并查看性能。

    什么是普通课程 发展需要达到一个目标 高度优化,完全支持

    同样,这取决于哪个操作系统,但它确实涉及大量的测试,尤其是

        2
  •  4
  •   Alex Martelli    15 年前

    可移植性并不是一个真正的问题,除非你的目标是内存非常有限的“嵌入式”设备——除了这些设备,你可以在运行C的地方运行Python(如果有什么限制的话,那就是FUSE的可用性,而不是Python运行时的可用性)。但性能肯定是可以的。

        3
  •  1
  •   cmcginty    15 年前

    mock object 对于内核块设备API层。模拟层应该使用 mmap 'd文件作为文件系统的备份存储。这样做有很多好处:

    1. 能够将调试代码/断点插入模拟层以检查故障条件。
    2. 能够确定地引入块设备错误或文件系统必须处理的其他系统事件。
        4
  •  0
  •   Sean McMillan    15 年前

    值得尊敬的文件系统将是快速和高效的。对于Linux,这基本上意味着用C语言编写,因为如果不与内核一起分发,您就不会受到重视。

    至于其他工具,如保险丝,有 MacFUSE ,这将允许您在Mac和linux上使用相同的代码。

    推荐文章