Linux文件系统阅读清单,里面包含了大量以文件系统为主题的文章, 可以完善对文件系统的了解。
http://linuxfs.pbworks.com/w/page/17647516/ReadingList (该地址已被墙)
This page lists useful reading for people interested in Linux file systems development. Please include a description with each link and keep things organized.
Ext2/Ext3 improvement project is dealing with 64 bitness
File and Storage System Design at Harvard has some publication links.
The 2006 Linux File Systems Workshop Summary at Linux Weekly News is a good summary of the problems Linux file systems will be facing in the next 5 years, and the ideas people have for tackling them. Includes information on chunkfs, doublefs, and more.
Here is a description of chunkfs, an idea for splitting up file systems into small, individually fsck-able chunks, which results in many advantages in both performance and repairability.
Some documentation on how to write a Linux filesystem includes this OLS Tutorial and a paper describing a simple Linux fs.
The adaptable filesystems framework paper explores the possibility of easing the problem of switching formats by supporting on-disk layout flexibility at a per-element level.
Exploring High Bandwidth Filesystems on Large Systems - some testing of filesystem throughput by SGI. Focuses on XFS, of course, but there's some comparison with other common Linux filesystems.
Practical File System Design with the Be File System - A book (now out of print) on how to design your own filesystem, which is illustrated with examples from the author's own experience designing BeOS's BFS. The author also provides the filesystem construction kit mentioned in the book (a userspace test harness for experimenting with on-disk layout).
LinLogFS - A Log-Structured Filesystem For Linux gives an overview and discusses some implementation issues of LinLogFS. The lessons learned led to new, but yet unimplemented ideas for a log-structured/copy-on-write file system.
Log-structured file system for Linux 2.6 has fairly extensive documentation covering an implementation of a log-structured file system for Linux which has a working garbage collector. The site also contains the file system source code and results of a number of measurements that nicely show how it performs, often compared to ext3.
WinFS - WinFS was a data storage and management system based on relational databases, developed by Microsoft from 2003 to 2006 for use as an advanced storage subsystem for the Microsoft Windows operating system. It has since been cancelled as a separate product, and some of its technologies will be moved into future versions of ADO.NET and Microsoft SQL Server.
LogFS - LogFS is the next generation file system for flash media and a replacement for jffs2. It provides support for large partitions and has good scalability to the size of the file system, while keeping all the good stuff from jffs2, like wear levelling, compression, and robustness.
Union Mounts - VFS based union mounts let you mount multiple file systems to a single mount point and see the files on each of them simultaneously. This approach adds a much cleaner abstraction than UnionFS, which has similar goals but is implemented as a stacked file system.
The Box: A Replacement for Files - The file is a well-understood and very simple abstraction, which has been successfully used in both centralized and distributed systems. However, files are not expressive enough to capture high-level data semantics and relationships, including sharing and data dependencies. How many times has your operating system translated a JPEG figure into postscript, automatically when needed? How do files help applications to deal with heterogeneity? Moreover, optimization opportunities are lost due to the low-level nature of read and write; e.g. in NFS data is sent twice through the network when copying a remote file within the same file server. We feel that a better abstraction is needed and propose an alternate abstraction, the "box", to solve the problems mentioned above. Boxes, while being as simple as files, are more expressive. We intend to use boxes as a central abstraction for a distributed adaptable operating system we are building.
Design Issues: Architectural and philosophical points - These statements of architectural principle explain the thinking behind the specifications. These are personal notes by Tim Berners-Lee: they are not endorsed by W3C. They are aimed at the technical community, to explain reasons, provide a framework to provide consistency for for future developments, and avoid repetition of discussions once resolved.
The Naming System Venture - The utility of an operating system is more proportional to the number of connections possible between its components than it is to the number of those components. Namespace fragmentation is the most important determinant of that number of possible connections between OS components. Unix at its beginning increased the integration of I/O by putting devices into the file system name space. This is a winning strategy, let's take the file system name space, and one-by-one eliminate the reasons why the filesystem is inadequate for what other name spaces are used for, one missing feature at a time. Only once we have done so will the hobbles be removed from OS architects, or even OS conspiracies.
This may be too far off topic for this page. Edit it out if it's the case. But concider that HCI concideration should have an impact on FS design
Exploring the Mnemonic user interface - This article is an offspring of personal reflections over too much time being spent traversing file structures and organizing windows in the user interfaces of today’s modern operating systems.
File types revisited - An analyais of Apples "Uniform Type Identifiers" (kind of a replacement for file extensions and mime-types)
GNOME Storage - Storage is an exciting project to replace the traditional filesystem with a new document store. Storage is part of a larger design for a new desktop environment.