Following FUSE & CUSE, Now There Is "MUSE" For MTD In Userspace
The Memory Technology Device (MTD) subsystem for Linux is working on the FUSE-based MUSE for being able to support emulators in user-space. MTD is a kernel abstraction layer for raw flash devices and various memory technologies. Currently there are a number of emulators within the MTD subsystem for driving their development but extending those emulators has been a headache. With MUSE they aim to punt all their advanced emulator work into user-space while having just a small kernel driver. It's similar in nature to CUSE but rather than being a character device exposed is a memory technology device.
MUSE allows implementing a MTD in userspace. So far userspace has control over mtd_read, mtd_write, mtd_erase, mtd_block_isbad, mtd_block_markbad, and mtd_sync. It can also set the following MTD parameters: name, flags, site, writesize and erasesize.
That way advanced simulators for many type of flashes can be implemented in userspace.
More details on the in-development MUSE or interested in Linux's MTD subsystem in general can see this patch series with the latest tentative work around this functionality.