Как смонтировать диск в ОЗУ в Java

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

Спасибо!

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


person WampyCakes    schedule 19.04.2016    source источник
comment
Это очень неясно. Вы пытаетесь закодировать файловую систему RAMdisk на Java, а затем каким-то образом связать ее с Windows, чтобы Windows присвоила ей букву диска? Это, безусловно, невозможно в чистой Java, поскольку вам пришлось бы реализовать интерфейс поставщика файловой системы Windows, который мог бы принимать вызовы от ядра Windows.   -  person Jim Garrison    schedule 19.04.2016
comment
Почему бы не использовать один из множества бесплатных RAM-дисков? Чем ваш будет лучше? Примечание: в Unix он встроен.   -  person Peter Lawrey    schedule 19.04.2016


Ответы (1)


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

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

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

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

person Eugene Mayevski 'Callback    schedule 19.04.2016