2016-04-19 11 views
0

Я пытаюсь закодировать RAMDisk, но я не знаю, как смонтировать диск в ОЗУ. Я собираюсь писать это на Java. Но может ли кто-нибудь указать мне способ сделать диск в ОЗУ с буквой и именем.Как подключить диск в ОЗУ в Java

Спасибо!

EDIT: Для уточнения, я хочу сделать файл с виртуальными файлами, например, хранящимися в ОЗУ. DataRam's Ramdisk - хороший пример того, что я хочу сделать. Он создает файл и монтирует диск. Привод находится в ОЗУ и записывается в файл. Как я могу это достичь? (Я хотел создать RAMDisk для своего собственного проекта с расширенными идеями)

+2

Это очень неясно. Вы пытаетесь закодировать файловую систему RAMdisk в Java, а затем каким-то образом связать ее с Windows, чтобы Windows назначила ей букву диска? Это, безусловно, невозможно в чистой Java, поскольку вы могли бы внедрить интерфейс поставщика файловой системы Windows, который мог бы получать вызовы из ядра Windows. –

+0

Почему бы не использовать один из множества бесплатных RAM-дисков? Как вы будете лучше? Примечание: под Unix он имеет один встроенный. –

ответ

1

RAMDisk (как и любое другое виртуальное устройство) требует использования драйвера устройства. К счастью, драйверы устройств не написаны на Java или C# (особенно Xamarin, что для мобильных ОС, которые вообще не позволяют виртуальным дискам). Хотя вы можете использовать Java для бизнес-логики, часть вашего проекта должна быть написана на неуправляемом языке, а сам проект должен включать драйвер устройства. Не нужно говорить, что драйверы устройств отличаются для каждой операционной системы.

Теперь виртуальные диски могут быть нескольких видов - того, где у вас есть образ, отформатированный для определенной файловой системы и обрабатывающий запросы на уровне блоков, и тот, где вы обрабатываете запросы файловой системы и сами реализуете файловую систему.

У нас есть продукты для обоих случаев (CallbackDisk и система обратного вызова соответственно). У них обоих есть выборки для создания виртуального диска, но только для системы обратного вызова используется Java API. Оба продукта предназначены для Windows.

В Linux существует FUSE для реализации различных файловых систем, на OSX существует OSXFUSE, порт FUSE.