{'fraction_non_alphanumeric': 0.025039123630672927, 'fraction_numerical': 0.001564945226917058, 'mean_word_length': 4.536796536796537, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
fs-utils: File Systems Access Tools in Userland

Currently, file system access is done either through a kernel driver or a specialized userspace program. In the former case the file system is mounted with the mount utility and then accessed with standard userspace tools such as cat. An example of the latter case is the mtools utility suite which allows to access msdos file systems. The NetBSD Runnable Userspace Meta Program (RUMP) framework enables the use of kernel file system drivers as part of userspace programs. By building upon RUMP and NetBSD base system utilities such as ls and cp, we have created the fs-utils application suite. It provides mtools-like file system access without requiring mount privileges or an in-kernel driver. In contrast to mtools, fs-utils reuses the kernel file system drivers instead of relying on a userspace reimplementation, supports a total of 12 file systems from NetBSD plus FUSE file systems, and offers the same usage as the well-known tools (e.g. all of the flags of ls are supported). In addition to running on NetBSD, there has been initial success in running fs-utils on Linux. This paper explains how these programs were written and recounts the evolution of the project. It also shows the benefits and use-cases of fs-utils.