“…In cases of SATA/IDE, the target system employs a hardware controller (i.e., disk controller) to manage their storage interface protocol, so the interface driver usually handles I/O interrupt or system memory management. In contrast, in the case of NVMe, a kernel module (NVMe driver) [11], [54], [55] Arrakis [14], [15], [16] Ishiguro et al [29] Aerie [17] RUMA [56] NVMeDirect [12] Moneta-D [20] Direct-FUSE [18] Strata [30] Breeze [57] Simurgh [25] XFUSE [58] SplitFS [21] HyCache [59] Quill [26] Son et al [60], [61] ZoFS [22] Davram [62] vNVML [27], [28] EvFS [19] Kuco [63] DLFS [64] URFS [65] UMFS [31] DevFS [23] CrossFS [24] FSP [32] directly accesses the PCIe bus over a memory mapped I/O and issues the request to the target SSD by composing an nvme_rw_command.…”