This project will support the following development of the Seattle platform for running distributed experiments: 1) building a new virtual machine that executes native code using the Google Native Client (NaCl) sandbox and 2) providing sufficient support to ensure the testbed continues to be useable by the community.
Adding native code execution will make it easier for researchers to run legacy code on the Seattle testbed.
As a result, researchers and students can use code written elsewhere on this testbed via the Google Native Client and Google Native Client toolchain. The resulting code will execute computationally in the NaCl sandbox, but call into Seattle?s Repy V2 sandbox to safely perform system calls. An implementation of a POSIX-like API will be provided that is safe, portable, and adequate to execute most code without modification. Unmodified programs can be compiled and executed and their calls will be re-mapped to use this API. This will allow researchers to have a write-once, run anywhere API across thousands of diverse user devices.
The project will also maintain the core software and servers for the Seattle testbed. While new feature requests are outside the scope of the project addressing serious bugs is within scope. In addition four new machines required to maintain reliable service to the Seattle community will be added.
The resulting Seattle Testbed will:
- Have sufficient uptime to continue as a valuable resource for educators and researchers;
- Allow researchers to write C code in native client for performance critical measurements;
- Provide facilities for legacy code execution.
Broader Impact:
The Seattle testbed has already had a positive impact in the educational and research communities. It is used to teach undergraduate networking, distributed systems, and security at approximately a dozen universities. Researchers use it as a platform to study networks, mobile devices, cloud environments, and large scale distributed systems under the varieties of access links, configurations, and loads encountered in the real world. This project supports these broader impacts by enhancing the support infrastructure and, via the new sandbox, broadens the range of code that can be used in teaching and experimentation.
|