【问题标题】:How to mount a drive in RAM in Java如何在 Java 中将驱动器挂载到 RAM 中
【发布时间】:2016-08-10 22:27:58
【问题描述】:

我正在尝试编写 RAMDisk,但我不知道如何在 RAM 中安装驱动器。我打算用 Java 写这个。但是谁能指出我用字母和名称在 RAM 中制作磁盘的方法。

谢谢!

编辑:为了澄清,我想用虚拟文件制作一个文件,比如存储在 RAM 中。 DataRam 的Ramdisk 是我想做的一个很好的例子。它创建一个文件并安装一个驱动器。驱动器在 RAM 中,它写入文件。我怎样才能做到这一点? (我想用扩展的想法为我自己的项目创建一个 RAMDisk)

【问题讨论】:

  • 这个很不清楚。您是否尝试用 Java 编写 RAMdisk 文件系统,然后以某种方式将其绑定到 Windows 以便 Windows 为其分配驱动器号?这在纯 Java 中肯定是不可能的,因为您需要实现一个可以接收来自 Windows 内核的调用的 Windows 文件系统提供程序接口。
  • 为什么不使用许多免费的 RAM 磁盘之一?你的会怎么样?注意:在 Unix 下它有一个内置的。

标签: java ram disk drive ramdisk


【解决方案1】:

RAMDisk(以及任何其他虚拟设备)需要使用设备驱动程序。幸运的是,设备驱动程序不是用 Java 或 C# 编写的(尤其是 Xamarin,它适用于根本不允许虚拟磁盘的移动操作系统)。虽然您可以将 Java 用于业务逻辑,但您的项目的某些部分需要用非托管语言编写,并且项目本身应该包含一个设备驱动程序。不用说,每个操作系统的设备驱动程序都不同。

现在,虚拟磁盘可以有多种类型 - 一种用于将映像格式化为特定文件系统并处理块级请求,另一种用于处理文件系统请求并自行实现文件系统。

我们有适用于这两种情况的产品(分别为 CallbackDisk 和 Callback File System)。它们都有用于创建虚拟磁盘的示例,但只有 Callback File System 包含要使用的 Java API。这两种产品都适用于 Windows。

在 Linux 上存在 FUSE 来实现各种文件系统,在 OSX 上存在 OSXFUSE,FUSE 的一个端口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    相关资源
    最近更新 更多