2016-04-19 5 views
0

Ich versuche, eine RAMDisk zu programmieren, aber ich weiß nicht, wie man ein Laufwerk im RAM mount. Ich werde das in Java schreiben. Aber könnte mir jemand auf die Art und Weise hinweisen, wie ich die Diskette mit einem Buchstaben und einem Namen in den RAM-Speicher bringe?Wie mounte ich ein Laufwerk im RAM in Java

Danke!

EDIT: Zur Klarstellung, ich möchte eine Datei mit virtuellen Dateien wie im RAM gespeichert machen. DataRams Ramdisk ist ein gutes Beispiel für das, was ich tun möchte. Es erstellt eine Datei und mountet ein Laufwerk. Das Laufwerk befindet sich im RAM und es schreibt in die Datei. Wie kann ich das erreichen? (Ich wollte eine RAMDisk für mein eigenes Projekt mit erweiterten Ideen erstellen)

+2

Dies ist sehr unklar. Versuchen Sie, ein RAMdisk-Dateisystem in Java zu codieren und es dann irgendwie an Windows zu binden, damit Windows ihm einen Laufwerksbuchstaben zuweist? Das ist in reinem Java sicher nicht möglich, da Sie eine Windows-Dateisystemprovider-Schnittstelle hätten, die Aufrufe vom Windows-Kernel empfangen könnte. –

+0

Warum nicht eine der vielen freien RAM-Festplatten verwenden? Wie geht es dir besser? Hinweis: Unter Unix ist ein eingebaut. –

Antwort

1

RAMDisk (wie jedes andere virtuelle Gerät) benötigt einen Gerätetreiber. Glücklicherweise sind Gerätetreiber nicht in Java oder C# geschrieben (besonders Xamarin, das für mobile Betriebssysteme gedacht ist, die keine virtuellen Festplatten zulassen). Während Sie Java für Geschäftslogik verwenden können, müsste ein Teil Ihres Projekts in nicht verwalteter Sprache geschrieben werden, und das Projekt selbst sollte einen Gerätetreiber enthalten. Es muss nicht gesagt werden, dass die Gerätetreiber für jedes Betriebssystem unterschiedlich sind.

Nun können die virtuellen Festplatten von verschiedenen Arten sein - die eine, in der Sie ein Bild für ein bestimmtes Dateisystem formatiert haben und Anfragen auf Blockebene behandeln und die Dateisystemanforderungen und das Dateisystem selbständig implementieren.

Wir haben Produkte für beide Fälle (CallbackDisk bzw. Callback File System). Sie haben beide Beispiele zum Erstellen eines virtuellen Laufwerks, aber nur das Callback-Dateisystem enthält die zu verwendende Java-API. Beide Produkte sind für Windows.

Unter Linux gibt es FUSE, um verschiedene Dateisysteme zu implementieren, auf OSX gibt es OSXFUSE, ein Port von FUSE.

Verwandte Themen