首页> 外文学位 >FiST: A system for stackable file-system code generation.
【24h】

FiST: A system for stackable file-system code generation.

机译:FiST:一种用于可堆叠文件系统代码生成的系统。

获取原文
获取原文并翻译 | 示例

摘要

File systems often need to evolve and require many changes to support new features. Traditional file-system development is difficult because most of the work is done in the kernel—a hostile development environment where progress is slow, debugging is difficult, and simple mistakes can crash systems. Kernel work also requires deep understanding of system internals, resulting in developers spending a lot of time becoming familiar with the system's details. Furthermore, any file system written for one system requires significant effort to port to another system. Stackable file systems promise to ease the development of file systems by offering a mechanism for incremental development building on existing file systems. Unfortunately, existing stacking methods often require writing complex low-level kernel code that is specific to a single operating system platform and also difficult to port.; We propose a new language, FiST, to describe stackable file systems. FiST uses operations common to file-system interfaces and familiar to user-level developers: creating a directory, reading a file, removing a file, listing the contents of a directory, etc. From a single description, FiST's compiler produces file-system modules for multiple platforms. FiST does that with the assistance of platform-specific stackable templates. The templates handle many of the internal details of operating systems, and free developers from dealing with these internals. The templates support many features: data copying and file name copying useful for applications that want to modify them; size-changing file systems such as compression; fan-out for access to multiple file systems from one layer; and more. The FiST language compiler uses the templates as a basis for producing code for a new file system, by inserting, removing, or modifying code in the templates.; This dissertation describes the design, implementation, and evaluation of FiST. Our thesis is that it is possible to extend file system functionality in a portable way without changing existing kernels. This is possible because the FiST language uses file-system functions that are common across many systems, while the templates execute in-kernel operating systems specific functions unchanged. We built several file systems using FiST on Solaris, FreeBSD, and Linux. Our experiences with these file systems show the following benefits: average code size is reduced ten times as compared to writing code given another null-layer stackable file system; average development time is reduced seven times compared to writing using another null-layer stackable file system; performance overhead of stacking is only 1–2% per layer.
机译:文件系统经常需要发展,并且需要进行许多更改以支持新功能。传统的文件系统开发非常困难,因为大多数工作都在内核中完成,而内核是一种敌对的开发环境,进展缓慢,调试困难,简单的错误可能会使系统崩溃。内核工作还需要深入了解系统内部,导致开发人员花费大量时间来熟悉系统的细节。此外,为一个系统编写的任何文件系统都需要大量工作才能移植到另一个系统。可堆叠文件系统有望通过提供一种在现有文件系统上进行增量开发的机制来简化文件系统的开发。不幸的是,现有的堆栈方法通常需要编写复杂的低级内核代码,这些代码特定于单个操作系统平台,并且也难以移植。我们提出了一种新的语言FiST,用于描述可堆叠文件系统。 FiST使用文件系统界面所共有的操作以及用户级开发人员所熟悉的操作:创建目录,读取文件,删除文件,列出目录的内容等。FiST的编译器通过一个描述就生成了文件系统模块。适用于多个平台。 FiST在特定于平台的可堆叠模板的帮助下做到了这一点。模板处理操作系统的许多内部细节,并使开发人员免于处理这些内部问题。模板支持许多功能:数据复制和文件名复制对想要修改它们的应用程序很有用;改变大小的文件系统,例如压缩;扇出,用于从一层访问多个文件系统;和更多。 FiST语言编译器通过在模板中插入,删除或修改代码,将模板用作为新文件系统生成代码的基础。本文介绍了FiST的设计,实现和评估。我们的观点是,可以在不更改现有内核的情况下以可移植的方式扩展文件系统功能。这是可能的,因为FiST语言使用了许多系统通用的文件系统功能,而模板则不变地执行了内核操作系统特定的功能。我们在Solaris,FreeBSD和Linux上使用FiST构建了多个文件系统。我们在这些文件系统上的经验显示出以下好处:与给定另一个空层可堆叠文件系统时编写代码相比,平均代码大小减少了十倍;与使用另一个空层可堆叠文件系统进行写入相比,平均开发时间减少了七倍;堆栈的性能开销仅为每层1-2%。

著录项

  • 作者

    Zadok, Erez.;

  • 作者单位

    Columbia University.;

  • 授予单位 Columbia University.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2001
  • 页码 236 p.
  • 总页数 236
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类 自动化技术、计算机技术;
  • 关键词

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号