Flash memory is a non-volatile memory, which allows the user to electrically program (write) and erase information. The exponential growth of flash memory has made this technology an indispensable part of billions of electronic devices.

Flash memory has several significant differences with volatile (RAM) memory and hard drive technologies which requires unique software drivers and file systems. This paper provides an overview of file systems for flash memory and focuses on the unique software requirements of flash memory devices.