I am currently a Research Staff Member at the IBM T. J. Watson Research Center working in the Network Server Systems Software group.
Previously, I was a Ph.D. student at The
State University of New York at Stony Brook majoring in Computer Science affiliated with the File Systems and Storage Lab, with Erez Zadok as my advisor. My primary
interest was in data and operating system security. My disseratation topic was
extending transactional semantics (atomicity, consistency, isolation, and
durability) to the file system. I defended my dissertation and graduated in
May 2006.
I graduated with a B.S. from SUNY Stony Brook in May 2003 (Summa
Cum Laude) majoring in Computer Science and Applied Mathematics and
Statistics. I obtained a 4.0 GPA in both of my majors, and
received departmental honors in Computer Science. My honors project
was NCryptfs: A Secure and Convenient Cryptographic File
System, with Erez Zadok acting as my advisor.
I also received an M.S. in Computer Science from SUNY Stony Brook in May
2003. My thesis was Operating Systems Support for Extensible Secure File
Systems.
Research Interests
My area of interest is operating systems with a focus on file systems.
Data is the central part of most computer systems, and file systems are tasked
with most data management. Through these projects I have gained extensive
experience with Linux kernel internals, the VFS, and storage technologies.
Within this field I want to investigate how file systems can be made more
secure, yet remain a convenient and fast interface for programmers, system
administrators, and users. To these ends I am leading several projects:
- Amino: a system that extends transaction semantics
(atomicity, consistency, isolation, and durability) to applications that use the
POSIX interface. Amino is built on top of Sleepycat's Berkeley Database using a
user-level ptrace monitor. Amino provides end-to-end
transactions for file system operations and also application data structures.
I am currently developing this project into my thesis.
Abstract (PDF)
- Unionfs: a fan-out unification
file system that supports Unix semantics. We have released Unionfs for Linux
2.4 and 2.6 under the GPL, and it is available for download. Unionfs
is in use by more than a dozen other distributions (including Knoppix
and SLAX), and has been downloaded by thousands of users.
- Auto-pilot: a suite for benchmarking systems software. Auto-pilot
includes a scripting language for defining benchmarks, a tools to statistically
analyze, and a Gnuplot front-end for graphing the results. We have used
Auto-pilot for benchmarking dozens of file systems, and it has saved us quite
a bit of time.
This work appeared in the FREENIX track of Annual USENIX Technical Conference in April 2005.
- nCryptfs: a next generation cryptographic file system. nCryptfs aims to balance the competing concerns of security and convenience. nCryptfs supports multiple ciphers, authentication methods, and key timeouts with transparent process suspension and resumption.
This work appeared in the Annual USENIX Technical Conference in June 2003.
There are also several projects that I am working on, but not as the primary
author:
- Avfs: an on-access
anti-virus file system. By scanning on page reads and writes, Avfs detects a
virus before it is committed to stable storage or returned to the user. Avfs
uses a state-oriented design for improved
performance, as well as improving the scalability of the ClamAV open-source virus scanner.
This
work appeared will appear the 2004 USENIX Security Symposium in August
2004.
- Tracefs: Tracefs is a stackable file system that records file system
operations, including mmap reads and writes. Tracefs
allows arbitrarily complex expressions to determine what should be traced, and a rich set of output filters to perform transformations on the traced output.
This work appeared at the Third USENIX Conference on File and Storage
Technologies (FAST '04).
- Versionfs: A Versatile and User-Oriented File System. Versionfs
transparently creates backups when a file is modified using copy-on-change.
Versionfs allows the user to select a variety of retention policies to
determine what versions to save (based on time, extension, space usage, and
number of versions) . Versionfs has multiple storage policies that determine
how a file is stored: full backups, compressed backups, or block differences.
This work appeared at the Third USENIX Conference on File and Storage Technologies (FAST '04).
- OS Performance Profiling: Modern
Operating Systems consist of a number of components that despite having
different purposes strongly influence each other. Unfortunately, existing OS
profiling systems concentrate on some particular OS component or profile only
CPU or I/O activity. Therefore, the information collected is often not
sufficient to discover and easily understand possible OS performance problems.
In this project we investigate techniques that allow to capture, visualize, and
analyze statistical information about the OS operation as a whole, as well as
several OSs that communicate over the network.
- Cosy: a project aimed at improving
system performance through system call composition. This is somewhat similar
to compound operations in NFSv4.
This work appeared at the Ninth Workshop on Hot Topics in Operating Systems (HotOS-IX).
- Elastic Quotas: a novel method for
disk space management. Elastic quotas allow a user to exceed their persistent
disk space quota while disk space is available. The user guarantees that the
system will be able to reclaim this additional space when resources become
scarce.
This work appeared at the 2004 NASA/IEEE Conference on Mass
Storage Systems and Technologies.
Last Updated: October 11, 2005
Charles P. Wright