- Ubiquitous Computing
- Web Services
- The Semantic Web
- Spaces Computing
- Peer-to-Peer Computing
- Collaborative Computing
- Dependable Systems
- Security
- Languages
- Pervasive Computing
- Cluster Concepts
- Distributed Agents
- Distributed Algorithms
- Distributed Databases
- Distributed Filesystems
- Distributed Media
- Distributed Storage
- Grid Computing
- Massively Parallel Systems
- Middleware
- Mobile and Wireless Computing
- Network Protocols
- Operating Systems
- Real-Time and Embedded Systems
- Commentary
- Endnotes
Operating Systems
Operating systems have been around since ENIAC, the first modern computer system, and still provide the basis for software development and deployment. My first computer science love was the mysterious and enabling world of operating systems, where software must ultimately meet hardware. Operating systems are responsible for a variety of tasks for a given node, including the following:
-
Managing and scheduling resources (CPU, disk, printer, memory, and so on)
-
Scheduling tasks, and jobs
-
Controlling I/O
-
Handling error recovery
-
Providing security
-
Supplying a basis for user commands
With the proliferation of NDC, operating systems too are subject to change resulting from competitive pressures and network-derived innovations. Once, researchers were content with sensible implementations of a simple IPO model, connecting to the network only as an afterthought. But today, research in operating systems reflects the assumption that any node of interest will be connected to other nodes and share data and processing responsibilities with them. Given this worldview, operating system metamorphosis is inevitable. It should be noted that some operating system designers have long recognized connection to a network as a given. For example, the first system ever sold by Sun Microsystems came with a TCP/IP stack integrated into the system.
Several notable approaches recognize new opportunities for Internet-aware operating systems. One example is the Odyssey project at Carnegie-Mellon University being pioneered by Mahadev Satyanarayanan, a computer science professor who envisions application-aware operating systems, which can adapt as needed depending upon any number of context-dependent variables (e.g., available bandwidth, network load, battery power in a mobile device).[39]
Imagine you're in the back seat of a taxicab enjoying a full-motion color video conversation with your mother on the latest and greatest cell-phone cum Internet portal, via a high-bandwidth wireless MAN, when your cab stops at a light in the shadow of a tall building, temporarily degrading the signal. In this scenario, the operating system provided by the Odyssey vision notifies the (presumably smart) color video application that signal degradation has occurred; instead of the 2 Mbps stream you had so far enjoyed, you are temporarily restricted to 200 Kbps. The application adjusts from a 10 frame/sec color rendering to something more sustainable, perhaps 2 frame/sec black and white. But your conversation, complete with video, continues.
Imagine you're in the back seat of a taxicab enjoying a full-motion color video conversation with your mother on the latest and greatest cell-phone cum Internet portal, via a high-bandwidth wireless MAN, when your cab stops at a light in the shadow of a tall building, temporarily degrading the signal. In this scenario, the operating system provided by the Odyssey vision notifies the (presumably smart) color video application that signal degradation has occurred; instead of the 2 Mbps stream you had so far enjoyed, you are temporarily restricted to 200 Kbps. The application adjusts from a 10 frame/sec color rendering to something more sustainable, perhaps 2 frame/sec black and white. But your conversation, complete with video, continues.
Another example of operating system research is Microsoft's Farsite (Federated, Available, and Reliable Storage for an Incompletely Trusted Environment) project, which promises a more distributed approach to data storage, fault tolerance, self-tuning, and serverless computing that resembles peer-to-peer sensibilities implemented at the operating system level.[40] Microsoft promises implementations as soon as 2006.
IBM, too, is advertising a self-healing, highly scalable approach they're calling "Blue Gene," which is principally founded on their emerging Autonomic Computing initiative, a program that would imbed operating systems with notions like "self-optimization," as well as self-healing (not unlike the autonomic nervous systems in living organisms).
In 1998, Sun Microsystems announced Jini network technology, which brought such notions as self-healing networks to the forefront of the computer industry. The fact that both Microsoft and IBM too now recognize that requirement is testament to the efficacy of that vision. NDC requires ever more "organic" approaches to software development and network deployment as the level of complexity increases. It is only natural that operating systems too begin to reflect that need.