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.
Features that vary from one package to another:
This 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 /mntTo create and mount memory disk with mdconfig: # mdconfig -a -t swap -s 5m -u 0
# newfs -U md0
# mount /dev/md0 /mntTo destroy previously created disk: # umount /mnt
# mdconfig -d -u 0
Modern Linux systems come pre-installed with a user-accessible ramdisk mounted at /dev/shm
.
RapidDisk 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]
Free 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/ramdiskOnce 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=28mNow 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.
ImDisk 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 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.
AMD 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'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]
A 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]
Can 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]
RAMDisk 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.
Gizmo 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'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]
Romex 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]
Available 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 makes a freeware RAM disk software for mounting memory as actual drives within Windows. Both x86 and x64 versions exist.
RAMDisk 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]
The 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]
An 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 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]
Microsoft provides source code for a RAM disk driver for Windows 7 and 8 [25]
Windows 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.
Ramdiskadm 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 100mTo destroy the RAM disk: $ ramdiskadm -d ramdisk1All 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]