1. Introduction
We have developed a prototype file system, mramfs, intended for use with byte-addressable non-volatile RAM (NVRAM). It is intended to explore the value of metadata and small-file compression for such a file system. It differs from common in-memory file systems in that it is not tied to volatile main memory through tight integration with the VFS caches like ramfs or tmpfs [25], and it is tuned for byte-addressable NVRAM rather for flash memory's particular constraints. Its support for compression notwithstanding, mramfs is most closely comparable in function to running a disk file system such as ext2fs or ReiserFS on a RAM disk or emulated block device. However, with compression and structures tuned specifically for random access memory, it offers greater space efficiency and potentially better performance.