2011 Poster Sessions : Automatically Creating Portable Software Packages Using CDE

Student Name : Philip Guo
Advisor : Dawson Engler
Research Areas: Computer Systems
It can be painfully difficult to take software that runs on one person's machine and get it to run on another machine. Online forums and mailing lists are filled with discussions of users' troubles with compiling, installing, and configuring software and their myriad of dependencies. To eliminate this dependency problem, we created a tool called CDE that uses system call interposition to monitor the execution of x86-Linux programs and package up the Code, Data, and Environment required to run them on other x86-Linux machines, without any installation or configuration. CDE is easy to use: Simply prepend any Linux command (or series of commands) with 'cde', and CDE will execute that command, monitor its actions using ptrace, and copy all files it accesses (e.g., executables, libraries, plug-ins, scripts, configuration/data files) into a self-contained package. Now you can transfer that package to another Linux machine and run that exact same command without installing anything. In short, if you can run a set of Linux commands on your x86 machine, then CDE enables others to run it on theirs. Hundreds of people in both academia and industry have used CDE to distribute portable software, demo research prototypes, make their scientific experiments reproducible, run software natively on older Linux distros, and quickly deploy experiments to compute clusters. CDE is free and open-source, available at: http://www.stanford.edu/~pgbovine/cde.html.

Philip Guo is a 5th-year Ph.D. student in the Computer Science Department at Stanford University. His research interests are in data analysis, programming languages, and operating systems. Before coming to Stanford, he received S.B. and M.Eng. degrees in EECS from MIT.