Work and Research

|
My research interests at Princeton University span several areas of
experimental systems including operating systems, programming
languages and their runtime systems, compilers, and networks.
My current focus is on version management of operating systems
using program analysis techiques.
|

|
PlanetLab is an open platform for developing, deploying, and
accessing planetary-scale services. Princeton University hosts a
research, development, and operations team for PlanetLab.
|

|
PlanetWorks is a spinoff from Princeton that I co-founded
to deliver next generation solutions for managing machines,
services and data at scale.
|
Recent Papers
- Container-based Operating System Virtualization: A Scalable, High-performance Alternative to Hypervisors
- By Stephen Soltesz, Herbert Poetzl, Marc E. Fiuczynski, Andy Bavier, and Larry Peterson.
- In Proceedings of the 2nd EuroSys Conference, Lisbon, Portugal, March 2007.
- Experiences Building PlanetLab
-
- By Larry Peterson, Andy Bavier, Marc E. Fiuczynski and Steve Muir.
- In Proceedings of the 7th USENIX Operating System Design and Implementation conference, Seattle, WA, November 2006.
- Making Extensibility of System Software Practical with the C4 Toolkit
-
- By Marco Yuen, Marc E. Fiuczynski, Robert Grimm, and Yvonne Coady.
- In Proceedings of the 4th AOSD Workshop on Software Engineering Properties of Langauges and Aspect Technologies (SPLAT), Germany, March 2006.
- Better tools for kernel evolution, please!
- By Marc E. Fiuczynski.
- In ;LOGIN: Vol. 30, No. 5, October 1st, 2005
- HEY... You got your Paradigm in my Operating System!
- By Chris Matthews, Owen Stampflee, Yvonne Coady, Jonathan Appavoo, Marc E. Fiuczynski, and Robert Grimm.
- In Proceedings of the 2nd ECOOP Workshop on Programming Languages and Operating Systems, Glasgow, UK, July 2005.
- patch (1) Considered Harmful.
- By Marc E. Fiuczynski, Robert Grimm, Yvonne Coady, and David Walker.
- In Proceedings of the 10th Workshop on Hot Topics in Operating Systems, Santa Fe, New Mexico, June 2005.
- Proper: Privileged Operations in a Virtualised System Environment.
- By Steve Muir, Larry Peterson, Marc E. Fiuczynski, Justin Cappos, and John Hartman.
- In Proceedings of the USENIX 2005 Annual Technical Conference, CA, April 2005.
- Managing
Variability in Systems: Oh What a Tangled OS We Weave.
- By Stuart Bray, Marco Yuen, Yvonne Coady, and Marc E. Fiuczynski.
- In MVCDC Workshop, OOPSLA, 2004.
Past Research Activities

|
For my dissertation I've built a Safe
Programmable and Integrated Network Environment
(SPINE). SPINE
extends the fundamental ideas in SPIN -- type safe code downloaded into a trusted
execution environment -- to intelligent network adapters. My thesis work
investigates the tradeoffs in safety, performance, and flexibity of migrating system
services and application specific functionality to intelligent network adapters in the
context of SPINE. |

|
For several years I worked on an operating
system called SPIN,
which is a safe, adaptable and extensible operating system. Applications add
services to SPIN by providing code modules that are dynamically linked directly into the
running kernel. We use a combination of language, hardware and design techniques to
prevent this code from violating system integrity. |

|
I've designed and implemented an IPv6/IPv4 Network
Address and Protocol Translator (NAPT), which converts
packet headers as they cross between IPv4 and IPv6 networks. The purpose of the
translator is to ease the transition from the current version of the Internet protocol to
the next generation. The translator is implemented as a device driver for Windows/NT. |

|
The rapid advancements of networking
technologies have boosted potential bandwidth to the point that the cabling is no longer
the bottleneck. Rather, it is at the crossing points, the nodes of the network, where data
traffic is intercepted or forwarded. As a result, there has been tremendous interest in
speeding those nodes, making the equipment run faster by means of specialized chips to
handle data trafficking. The Network Processor is the blanket name thrown over such chips
in their varied forms. To date, little performance data exist to aid in the decision of
what processor architecture to use in next generation network processor. The goal of the
WEBPROC project is to, at
least partially, remedy this situation by evaluating current technologies and designing
future technologies. |
In 1998, I worked on a part-time basis for Microsoft
as a research intern. I ported my NAPT implementation to Microsoft's Research IPv6 stack on Windows/NT. The sources to the
translator are freely available as part of the Microsoft Research's IPv6 protocol stack.
During the summers of '89-'91 and '92-'93 I interned at Bell Labs and the MITRE
Corporation, respectively, working on software projects ranging from telephone switch
administration support to a prototype of an Internet telephony system. In '93 I was the
sole proprietor of MEF Systems, a company that I created to sell a distributed,
Internet telephony system that I built using UniVoice
telephony adapters and the Wind River Systems' VxWorks
operating system running on 68020 processors in a VME chassis. This project
magnified my interests in operating systems,
embedded systems, networks, and distributed systems.
Publication History
- Characterizing
Processor Architecture for Programmable Network Interfaces
- An initial investigation into processor and memory system architectures for programmable
network interfaces. To investigate such architectures we have identified and
implemented a few applications to serve as a workload. This paper sums up the
current status of our work in progress.
- In proceedings of the 2000
International Conference on Supercomputing.
- SPINE:
An Operating System for Intelligent Network Adapters
- Describes our experience of building an execution environment for a programmable network
interface and how we've used it to build two network-oriented applications. Also discusses
basic hardware requirements that may significantly enhance performance.
Available as UW TR-98-08-01.
- SPINE - A Safe Programmable
and Integrated Network Environment
- A shorter version of the above paper.
- In Proceedings of the Eighth ACM SIGOPS
European Workshop (1998).
- On Using Intelligent Network
Interface Cards to Support Multimedia Application
- Describes how we have used a programmable network interface card to support a video
client application in the context of Windows NT.
- In Proceedings of the Seventh workshop on
Network and Operating System Support for Digital Audio Video (1998).
- The Design and Implementation of an
IPv6/IPv4 Network Address and Protocol Translator
- Describes the design and implementation of a transparent
transition service that translates packet headers as they cross between IPv4 and IPv6
networks. While several such transition mechanisms have been proposed, ours is the first
actual implementation. As a result, we are able to demonstrate and measure a working
system, and report on the complexities involved in building and deploying such a system.
In Proceedings of the 1998
Summer USENIX Technical Conference.
- Low-Level Systems Programming
with Modula-3
- Since 1995 we have used Modula-3 to build operating system services. Modula-3 greatly
facilitated the rapid construction of SPIN and its extensions. This article describes the
features we added to Modula-3 to support low-level systems programming.
- In the Fall 1997 edition of Threads Modula-3
Systems Journal.
- An
Extensible Protocol Architecture for Application-Specific Networking
- A design and implementation and performance paper. Describes an extensible protocol
architecture that allows applications to dynamically customize an in-kernel protocol
graph, thereby achieving better performance compared to similar applications using the
APIs of a conventional operating systems. For a demonstration of this work as it services
HTTP requests contact http://www-spin.cs.washington.edu.
- In Proceedings of the 1996 Winter USENIX
Technical Conference.
- Extensibility,
Safety and Performance in the SPIN Operating System
- A design, implementation and performance paper.
- In Proceedings of the Fifteenth
ACM Symposium on Operating Systems Principles.
- Language
Support for Extensible Operating Systems
- We've been pretty happy with M3, but we've had to deal with a few shortcomings in order
to use the language in a safe extensible operating system. This paper describes how we've
addressed those shortcomings.
In Proceedings of the 1st Workshop on
Compiler Support for Systems Software (1996).
Also available as UW TR-95-11-02.
- Safe
Dynamic Linking in an Extensible Operating System
- Describes the dynamic linker we use to load code into the kernel. Key point is the
ability to create and manage linkable namespaces that describe interfaces and collections
of interfaces.
In Proceedings of the 1st Workshop on
Compiler Support for Systems Software (1996).
Also available as UW TR-95-11-01.
- Protection
is a Software Issue
- A position paper comparing software and hardware protection mechanisms.
- In the Proceedings of the Fifth IEEE Workshop on Hot Topics in Operating Systems.
- Region Analysis: A Parallel Elimination Method for Data Flow
Analysis
- In IEEE 1995 Transactions on Software Engineering.
United States Citizen. Born July 1st 1969 in New Brunswick, New Jersey.
Resided in Germany 1972-1985 and attended local schools; completely bilingual.
Enjoy soccer, table tennis (a.k.a. ping-pong), science fiction, and travel. Married,
three children.
|