High development velocity is critical for modern cloud systems. However, rapid development and release cycles have mostly skipped operating systems. Modifications to behavior in Linux, the most widely used server operating system in the cloud, must be done slowly to minimize risk of introducing bugs, be limited in scope, or be implemented in userspace with a potential performance penalty. We propose Bento, a framework for high velocity development of Linux kernel file systems. Bento is inspired by the recent availability of type-safe, non-garbage collected languages like Rust. It interposes a thin layer between kernel calls to the file system and file system calls back to the kernel, exposing alternative interfaces to enable kernel file systems written in safe Rust. Future work will provide support for online upgrades, userspace debugging, and composable filesystems. We evaluate Bento by using it to implement the xv6 file system and comparing against baselines written using the kernel VFS layer and FUSE. We find that the Bento filesystem achieves comparable performance to the VFS version and much better performance than the FUSE version. We also evaluate against ext4 on the macrobenchmarks and find that ext4 performs between 33% and 3.2x better than the Bento xv6 file system.
翻译:高速开发对于现代云层系统至关重要 。 但是, 快速开发和释放周期大多已经跳过操作系统 。 Linux 是云中最广泛使用的服务器操作系统, 改变 Linux 的行为必须缓慢地进行, 以尽量减少引入错误的风险, 限制范围, 或者在用户空间实施, 并可能执行性能处罚 。 我们提议 Bento, 这是Linux 内核文件系统高速开发的框架 。 Bento 受最近提供的诸如 Rust 等安全型非垃圾收集的语言的启发。 它在文件系统与文件系统之间的内核呼叫和文件系统回至内核之间插入一个薄层, 暴露替代界面以启用安全内核文件系统 。 未来的工作将为在线升级、 用户空间调试和可兼容的文件系统提供支持 。 我们用它来实施 xv6 文件系统, 比较使用内核VFS 层和 FUSE 等书写的基线。 我们发现, Bento系统在 VFFS 版本和 FUS 3x 版本之间实现比 FS4 3 和 Ben 3x 3 3 3 3 也比我们评估更好的业绩。