| Practically all of today's consumer electronic devices have embedded computers that run fairly sophisticated software. Often, the operating systems running inside cell phones, wireless routers or television sets are similar to (or derived from) ones that run on data-center servers or desktops (e.g. Linux or Mac OS). Yet, with all these consumer gadgets one never has to go through the tedious process of installing software, creating configuration files, or applying updates. At most, one has to upgrade the firmware.
Project Live [live-star] introduces a new approach to software distribution and configuration in a data center. This new approach bridges the simplicity and ease-of-use of the firmware model with the modularity and customizability necessary in multi-purpose, multi-vendor systems.Live pushes the traditional installation process back to the factory. Major software components (e.g. an operating system or an application server) are distributed as immutable disk images that contain pre-installed and ready-to-run software. Users can, within the limits of compatibility, use these Lego-like building blocks to construct more complex systems. At boot time Live creates a virtual file system that dynamically combines ready-to-run software from multiple images. This process is entirely transparent to existing software and the content of the virtual file system is identical with a result of a traditional installation. One of the main advantages of this approach is the ability to upgrade a system simply by replacing entire images with an updated version.Similarly to consumer electronics, Live makes software self-configurable. Live combines all of the system personalization settings into a single universally encoded structure. The actual configuration files are instantiated dynamically by transcribing this structure using personalization generators (typically, one generator for each configuration file). When combined with Xen or VMware hardware virtualization, the Live technology provides "one click" way for creating software appliances. Both creation, and more importantly, updating of Live software appliances are really simple. Moreover Live appliances are more robust, secure and reproducible.
Sun Labs Open House 2008 presentation: Project Live - Software To Go" (slides) (video) |