RAM drive software allows part of a computer's RAM (memory) to be seen as if it were a disk drive, with volume name and, if supported by the operating system, drive letter. A RAM drive has much faster read and write access than a hard drive with rotating platters, and is volatile, being destroyed with its contents when a computer is shut down or crashes[1]—volatility is an advantage if security requires sensitive data to not be stored permanently, and to prevent accumulation of obsolete temporary data, but disadvantageous where a drive is used for faster processing of needed data. Data can be copied between conventional mass storage and a RAM drive to preserve it on power-down and load it on start-up.
Overview
editFeatures
editFeatures that vary from one package to another:
- Some RAM drives automatically back up contents on normal mass storage on power-down, and load them when the computer is started.[2] If this functionality is not provided, contents can always be preserved by start-up and close-down scripts, or manually if the operator remembers to do so.
- Some software allows several RAM drives to be created; other programs support only one.[2]
- Some RAM drives when used with 32-bit operating systems (particularly 32-bit Microsoft Windows) on computers with IBM PC architecture allow memory above the 4 GB point in the memory map, if present, to be used; this memory is unmanaged and not normally accessible.[2] Software using unmanaged memory can cause stability problems.
- Specifically in IBMPC based 32-bit operating systems, some RAM drives are able to use any 'unmanaged' or 'invisible' RAM below 4 GB in the memory map (known as the 3 GB barrier) i.e. RAM in the 'PCI hole'. Note: Do not assume that RAM drives supporting 'AWE' (or Address Windowing Extensions) memory above 4 GB will also support unmanaged PAE (or Physical Address Extension) memory below 4 GB—most don't.
md – memory disk
editThis driver provides support for four kinds of memory backed virtual disks: malloc, preload, vnode, swap. Disks may be created with the next command line tools: mdconfig and mdmfs. An example of how to use these programs follows.[3]
To create and mount memory disk with mdmfs:
# mdmfs -F newimage -s 5m md0 /mnt
To create and mount memory disk with mdconfig:
# mdconfig -a -t swap -s 5m -u 0
# newfs -U md0
# mount /dev/md0 /mnt
To destroy previously created disk:
# umount /mnt
# mdconfig -d -u 0
Linux
editshm
editModern Linux systems come pre-installed with a user-accessible ramdisk mounted at /dev/shm
.
RapidDisk
editRapidDisk is a free and open source project containing a Linux kernel module and administration utility that functions similar to the Ramdiskadm of the Solaris (operating system). With the rxadm utility, the user is capable of dynamically attaching, removing, and resizing RAM disk volumes and treat them like any other block device.[4]
RAMDisk
editFree and open-source utility that allows using RAM as a folder.[5]
An example of how to use tmpfs and ramfs in a Linux environment is as follows:
$ mkdir /var/ramdisk
Once the mount point is identified the mount command can be used to mount a tmpfs and ramfs file system on top of that mount point:
$ mount -t tmpfs none /var/ramdisk -o size=28m
Now each time /var/ramdisk is accessed all reads and writes will be coming directly from memory.[6]
There are 2 differences between tmpfs and ramfs.[7]
1) the mounted space of ramfs is theorically infinite, as ramfs will grow if needed, which can easily cause system lockup or crash for using up all available memory, or start heavy swapping to free up more memory for the ramfs. For this reason limiting the size of a ramfs area can be recommendable.
2) tmpfs is backed by the computer's swap space
There are also many "wrappers" for the RAM disks for Linux as Profile-sync-daemon (psd) and many others allowing users to utilize RAM disk for desktop application speedup moving intensive IO for caches into RAM.
Microsoft Windows
editNon-proprietary
editImDisk
editImDisk Virtual Disk Driver is a disk image emulator created by Olof Lagerkvist. It is free and open-source software, and is available in 32- and 64-bit variants. It is digitally signed, which makes it compatible with 64-bit versions of Microsoft Windows without having to be run in Test mode. The 64-bit version has no practical limit to the size of RAM disk that may be created.
ImDisk Toolkit is a third-party, free and open-source software that embeds the ImDisk Virtual Disk Driver and adds several features.[8]
ERAM
editERAM is an open source driver that supports making a drive that is up to 4 GB of the total amount of RAM, uses paged/ non-paged memory and supports backing up the drive to an image. It works on Windows XP/ NT/ 2000/ 7/ 10 (32 and 64-bit). Its driver and source code can be found by going to https://github.com/Zero3K/ERAM.
Proprietary
editAMD Radeon RAMDisk
editAMD Radeon RAMDisk is available in free versions (RAM drive up to 4 GB, or 6 GB with AMD memory), and commercial versions for drives up to 64 GB. The free version is 'advertising supported'. Creates only a single drive (does not support multiple RAM drives). Can be backed up periodically to hard drive, and automatically loaded when the computer is started. AMD Radeon RAMDisk is a rebranded version of Dataram RAMDisk.[9]
Dataram RAMDisk
editDataram's RAMDisk is freeware (up to 1 GB (reduced from 4 to 1GB - per October 2015 site visit) disk size) and was originally developed and marketed by John Lajoie[10] through his private consulting company until 2001, when he sold his rights to Cenatek, before being acquired by Dataram. RAM disks larger than 4 GB require registration and a USD $18.99 single-user license. When purchasing physical RAM from Dataram, the RAMDisk license is provided free of charge. (Per DATARAM Government Sales on 4/25/2014, this is no longer the case.) Compatible with all 32-bit and 64-bit versions of Windows 10, Windows 8, Windows 7, Windows Vista, Windows XP, Windows Server 2008, and Windows Server 2003.[11]
Dimmdrive RAMDisk
editA RAMdisk built specifically for gamers which features real-time file-synchronization, Steam integration, "USB3 Turbo Mode". The interface was designed to support both technical and non-technical game enthusiasts. Cost is $29 at Dimmdrive.com and $30 on Steam. ($14.99 on Steam as of 2018) [12]
Gavotte RamDisk
editCan use Physical Address Extension to create a virtual disk in memory normally inaccessible to 32-bit versions of Microsoft Windows (both memory above the 4 GB point, and memory in the PCI hole).[13] There is also an open source plugin that replaces the RAM drive on Bart's PE Builder with one based on Gavotte's rramdisk.sys.[14]
Gilisoft RAMDisk
editRAMDisk software for Windows 2000/2003/XP/Vista/Windows 7 (x32 & x64)/Windows 10 with simple setup, permits mounting-and-unmounting of RAMDisk images to/from drive-image-files, along with automated/convenient startup/shutdown features, $25[citation needed].
Gizmo Central
editGizmo Central is a freeware program that can create and mount virtual disk files. It also has the ability to create a RAM disk up to 4GB in size as Gizmo is a 32 bit program.[15]
Passmark OSFMount
editPassmark's OSFMount supports the creation of RAM disks, and also allows you to mount local disk image files (bit-for-bit copies of a disk partition) in Windows with a drive letter. OSFMount is a free utility designed for use with PassMark OSForensics.[16]
Primo Ramdisk
editRomex Software Providing a fancy interface which is working with all windows environments from (XP to windows 10) and all windows servers editions from (2003 to 2019 currently) supports up to 128 Disks up to 32GB for Pro Version and 1TB for Ultimate and Server editions, supports to use invisible Memory in 32bit versions of windows, with saving at shut down or hibernate, Paid and trial versions available [17]
SoftPerfect RAM Disk
editAvailable for Windows 7 to 11, or Windows Server from 2008 R2 to 2022; 32/64-bit x86 or 64-bit ARM. SoftPerfect RAM Disk can access memory available to Windows, i.e. on 32-bit systems it is limited to the same 4 GB as the 32-bit Windows itself, otherwise for physical memory beyond 4 GB it must be installed on 64-bit Windows. Multiple RAM disks can be created, and these can optionally be made persistent by automatically saving contents to and restoring from a disk image file.[18] Version 3.4.8 and earlier didn't require a license for home (non-commercial) users.[19]
StarWind Software Virtual RAM Drive Emulator
editStarWind Software makes a freeware RAM disk software for mounting memory as actual drives within Windows. Both x86 and x64 versions exist.
Ultra RamDisk
editRAMDisk software which can also mount various CD images formats, like iso, ooo, cue, ccd, nrg, mds, img.[20] The application has two versions, paid and free where the latter allows to create a single ram disk up to 2GB in size.[21]
VSuite Ramdisk
editThe Free Edition (limited to Windows 32-bit Win2000 / XP / 2003) is able to use 'invisible' RAM in the 3.25 to 4 GB 'gap' (if your motherboard has i946 or above chipset) & is also capable of 'saving to hard disk on power down' (so, in theory, allows you to use the RAM disk for Windows XP swap file and survive over a 'Hibernate'). Whilst the free edition allows multiple RAM disk drives to be set up, the total of all drives is limited to 4096 MB. The current version, VSuite Ramdisk II, has been rebranded as 'Primo Ramdisk', all versions of which are chargeable.[22]
WinRamTech (QSoft) Ramdisk Enterprise
editAn affordable RAM Disk compatible with all Windows Workstation and Server OS versions (32- and 64-bit) starting from Windows 2000. The content of the RAM Disk can be made 'persisted' i.e. saved to an image file on the hard disk at regular times and/or at shutdown, and restored from the same image file at boot time. Because of the built-in disk format routines and the built-in load of the image file, the ram disk drive is already fully accessible at the boot stage where Services and automatically started programs are launched. Concurrent running benchmarks of two ram disks at the same time reveal that this ram disk is almost the fastest. Although the development of this ram disk has ended in 2017, version 5.3.2.15 runs on Windows 10/11 and by this, may still be purchased. The free 64bit 256 MB restricted evaluation version never expires. The company provides OEM personalized 64-bit 5.3.2.15 versions for Windows 10/11 ( unlimited site license ) [23]
Microsoft source code
editRamdisk.sys sample driver for Windows 2000
editMicrosoft Windows offers a 'demonstration' RAM disk for Windows 2000 as part of the Windows Driver Kit. Limited to using the same physical RAM as the operating system. It is available as free download with source code.[24]
RAMDisk sample for Windows 7/8
editMicrosoft provides source code for a RAM disk driver for Windows 7 and 8 [25]
Native
editWindows also has a rough analog to tmpfs in the form of "temporary files". Files created with both FILE_ATTRIBUTE_TEMPORARY and FILE_FLAG_DELETE_ON_CLOSE are held in memory and only written to disk if the system experiences high memory pressure.[26] In this way they behave like tmpfs, except the files are written to the specified path during low memory situations, rather than to swap space. This technique is often used by servers along with TransmitFile to render content to a buffer before sending to the client.
Solaris
editRamdiskadm
editRamdiskadm is a utility found in the Solaris (operating system) to dynamically add and destroy ramdisk volumes of any user defined sizes. An example of how to use ramdiskadm to add a new RAM disk in a Solaris environment is as follows:
$ ramdiskadm -a ramdisk1 100m
To destroy the RAM disk:
$ ramdiskadm -d ramdisk1
All created RAM disks can be accessed from the /dev/ramdisk
directory path and treated like any other block device; that is, accessed like a physical block device, labeled with a file system and mounted, to even be used in a ZFS pool.[27]
DOS
edit- FreeDOS includes SRDISK
- MS-DOS 3.2 includes RAMDRIVE.SYS
- PC DOS 3.0 includes VDISK.SYS
- DR-DOS included VDISK.SYS
- Multiuser DOS included an automatic RAM disk as drive M:
References
edit- ^ "AMD Radeon RAMDisk: How it works". Radeonmemory.com. Archived from the original on 2013-10-12. Retrieved 2013-11-17. – invalid link !
- ^ a b c "AMD Radeon RAMDisk FAQ: "Q: Can RAMDisk use memory not available or seen by 32-bit Windows? A: RAMDisk cannot make use of memory that is not available in 32-bit Windows systems between 3 and 4 GB. [Commercial] RAMDisk can use memory not "seen" by 32-bit Windows ABOVE 4 GB". Radeonmemory.com. Retrieved 2013-11-17.
- ^ "17.9. Memory Disks". www.freebsd.org. Retrieved 2016-06-24.
- ^ "RapidDisk Project Website".
- ^ "RAMDisk Project Website". github.io.
- ^ "Creating a RAM disk with Linux". Prefetch.net blog. January 2, 2012.
- ^ "Overview of ramfs and tmpfs on Linux". Thegeekstuff.com. November 1, 2013.
- ^ "ImDisk Toolkit website". Retrieved 2017-09-08.
- ^ "AMD Radeon RAMdisk Web page". Radeonmemory.com. Retrieved 2013-11-17.
- ^ JLC, Inc. (January 1, 2001). "John Lajoie Consulting".
- ^ "Official Dataram RAMDisk webpage". Memory.dataram.com. Retrieved 2013-11-17.
- ^ "Official Dimmdrive webpage". Dimmdrive.com. Archived from the original on 2013-11-12. Retrieved 2013-11-17.
- ^ Homepage of Jens Scheffler (2012-06-30). "How to use full 4 GB RAM in Windows 7 32 Bit (Gavotte RAMDisk in Windows 7)". Jensscheffler.de. Retrieved 2013-11-17.
- ^ "Sourceforge: Ramdisk plugin for Bart's PE Builder". Rramdisk.sourceforge.net. 2008-01-04. Retrieved 2013-11-17.
- ^ "Arainia Solutions website". Arainia.com. Retrieved 2013-11-17.
- ^ "OSFMount". osforensics.com. Retrieved 2013-12-30.
- ^ Romexsoftware. "Primo RamDisk".
- ^ "SoftPerfect RAM Disk". SoftPerfect.com.
- ^ Change Log; SoftPerfect.com
- ^ "Ultra RAMDisk - About". ultraramdisk.com. Retrieved 2020-01-14.
- ^ "Ultra RAMDisk - FAQ - Pro / Lite Edition What is the difference?". ultraramdisk.com. Retrieved 2020-01-14.
- ^ "Romex Software - High-Performance Storage Solutions & Computer Speed-Up Solutions".
- ^ QSoft RAMDisk becomes. "WinRamTech".
- ^ "ramdisk.sys". support.microsoft.com. January 2, 2012.
- ^ "RAMDisk Storage Driver Sample". support.microsoft.com. April 2, 2014.
- ^ "CreateFile Function". MSDN. October 15, 2010.
- ^ "Playing with RAM disks on Solaris 11.2". Open Storage & Virtualization Magazine. February 14, 2015. Archived from the original on April 3, 2015.