Recent advances in high-performance, low-power processors and high-bandwidth, low-cost wireless networks enable a new computing paradigm. These trends enable ad hoc networks, systems where disparate, mobile, wireless computers collaborate to accomplish a given task. These ad hoc networks arise naturally in many problem domains, including the coordination of disaster relief efforts, battlefront operations, environmental data collection with sensor networks, smart vehicles, peer-to-peer applications and even administration-free home networking. Consequently, ad hoc networks have been the focus of many research efforts in the last few years. Yet most of these efforts treat ad hoc networks as a "system of systems." That is, applications treat each node as an independent, autonomous entity and cannot rely on a systems layer to provide services and perform resource allocation beyond the most rudimentary packet forwarding services. Our goal in MagnetOS is to build a unifying operating system for ad hoc networks.
We note that many interesting applications in ad hoc networks entail collaboration between components distributed throughout an ad-hoc network. Defining these components, optimally placing them on nodes in the ad-hoc network and relocating them in response to changes is a fundamental problem faced by such applications. Manual approaches to code and data migration are not only platform-dependent and error-prone, but also needlessly complicate application development. Further, locally optimal decisions made by applications that share the same network can lead to globally unstable and energy inefficient behavior.
MagnetOS is a distributed operating system for ad-hoc and sensor networks whose goal is to enable power-aware, adaptive, and easy-to-develop ad-hoc networking applications. Our approach is to provide these properties through a single system image of a unified virtual machine to applications over an ad-hoc collection of heterogeneous nodes. MagnetOS automatically and transparently partitions applications into components and dynamically finds a placement of these components on nodes within the ad-hoc network to reduce energy consumption and increase system longevity. Our current approaches have been demonstrated to increase system longevity by a factor of four to five over power-oblivious approaches.
MagnetOS works on x86 laptops and StrongARM PDAs such as iPAQs, Axims and Jornadas.