随着大数据时代到来,人们对于数据处理的性能和功耗都提出了更高的要求。近年来发展出的新型非易失性内存(NVM),拥有可持久化的数据、读写速度快、低功耗、按字节寻址等优点,具有取代磁盘等块设备,成为新一代数据存储的潜力。然而,传统的文件系统是针对慢速块设备而设计的,文件读写流程需要经过多个软件层次,产生极大开销,因此并不能充分发挥NVM的优势。为此,已经有多个面向NVM存储介质的内存文件系统。内存文件系统的读写方式和块设备文件系统有很大不同,性能也远远超过传统块设备文件系统。但是现有内存文件系统都有一个共同的特点,即文件访问时会经过内核软件栈,例如虚拟文件系统(VFS)。这将会产生大量的状态切换和访问软件层次的开销并降低文件读写性能。为避免内核软件栈的开销,文件系统使用内存映射技术(MMAP)和FUSE(File System In User Space)来提供在用户空间访问文件。但是MMAP把文件数据映射到用户空间会产生巨大的开销;FUSE在文件操作时会多次的在内核空间和用户空间互相切换,则会承受多次的内核软件栈的开销。为此,本文分析MMAP技术和FUSE技术的优缺点,并提出一种真正的用户态内存文件系统,简称为UMFS(User-space in-Memory File System)。UMFS文件系统的主要研究内容如下:(1)直接利用用户进程的虚拟地址读写文件。通过打开操作,文件数据能够在用户空间被直接访问。打开操作能够在常数时间内完成,文件大小并不会对打开操作时间造成影响。(2)用户态文件操作流程。传统的内存文件系统存在于内核空间,应用程序访问文件数据需要把数据从内核空间拷贝到用户空间。与传统文件系统相比,UMFS访问数据时省略大量的内核态流程,减少内核态开销,提升性能。(3)设计一个与POSIX标准兼容的函数库。UMFS把文件系统的操作封装在函数库中,函数库中的操作是在用户空间完成的,例如读写操作。利用与POSIX标准兼容的函数库,现有应用程序不需要修改就可以直接使用UMFS。(4)文件系统的写一致性。UMFS提供一个用户态的日志用于保证写操作的数据一致性。该日志持久化存放在非易失性内存中,可以同时映射到不同进程的虚拟地址空间,在保证一致性的同时提供进程间的同步机制。本文还对提出的文件系统进行验证实验,并与当前最先进的3种内存文件系统进行对比,包括SIMFS,NOVA和EXT4-DAX。实验结果表明本文设计的用户态文件系统UMFS的吞吐量高于其他几种内存文件系统。例如单线程顺序读文件时,UMFS的吞吐量分别是SIMFS、NOVA、EXT4-DAX的1.4倍,1.8倍和2倍。