This document discusses userspace storage systems as an alternative to kernel-based storage for petascale workloads. It outlines several userspace filesystems, block storage systems, and object storage systems used in practice. Common languages used include C, Python, Java, and Golang. Interfaces to the kernel include FUSE, UIO, DPDK and libvma. Challenges include balancing performance, scalability, and complexity across unified, self-managing systems. Specific examples covered are NFS-Ganesha, GlusterFS, HDFS, NBD, tgt, and caching systems like Tachyon and Redis.