Google Tech Talk (more info below)
February 11, 2011
Presented by Philip Guo.
ABSTRACT
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.
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 here:
http://www.stanford.edu/~pgbovine/cdepack.html
Speaker Info:
Philip Guo. Philip is a 5th-year Ph.D. student in the Computer Science Department at Stanford University. His research interests are in software reliability, programming languages, and operating systems.
This is genius!!! The best solutions are normally simple. :)
rajivnavada 7 months ago
Great stuff !
zbalkic 7 months ago
Thanks for the feedback, everyone! @lnostdal - yep, it works with Java software. @tmystervideo - CDE has some troubles with Google Chrome due to its sandbox ... if you run Chrome with --no-sandbox, it should work, but that's obviously insecure :)
pgbovine 7 months ago
could you expand on this system to vastly reduce the OS, whilst the Apps carry around the dependencies needed, might be good especially for small embedded devices and large research distubuted systems?
militantmindset 7 months ago
This is awesome; I can't get Chrome to install on my *brand new* RHEL workstation. I am gonna try this.
tmystervideo 7 months ago
Very interesting. I wonder if it'll work with Java software.
lnostdal 7 months ago
This is a really awesome hack. It's pretty sad that it is necessary though. Windows is still a billion times better than linux for binary forwards & backwards compatibility. (Forwards compatibility doesn't really exist on linux at all!)
TimmmmCam 8 months ago
cool....
Otakumasim 8 months ago
Really interesting, perfect way to use powerful computer without set the OS for your software....
Tox86 8 months ago
Really cool. Personally, I prefer developers to put some sweat into packaging :-) (to avoid the Google Earth situation for example), but for quick'n'dirty this looks really suitable.
timlandscheidt 8 months ago