The Problem

GUI-based operating systems for personal computers arose in the 1980s from Xerox, Microsoft, and Apple. The metaphors of user interfaces — the desktop, windows, folders, programs, drop-down menus — originated in a vastly different technological environment, where users were often trained, focused solely on the task at hand, and using standard-form hardware with a fraction of the power we have today. There have been few significant redefinitions of these paradigms: apps from a centralized store rather than movable executables and websites for content and some functionality, rather than local software. But even these continue to operate on a platform — the operating system — that has not fundamentally changed metaphors in decades. We may be forced to rethink these soon.

The rise of home automation, wearables, and the Internet of Things has created demand for a device ecosystem. We’re ready to surround ourselves with smart objects that interact, simplify, track, and assist.

Managing a device ecosystem requires support for:

Remotely-controllable devices that are aware of each other and interact.

An ever-growing web of form factors, functions, and capabilities. These “just work, like appliances”, with minimal/no setup.

A new mental map for users: if everything around me is connected, where is my stuff and what exactly is the OS?

Familiar dominant paradigms are preferable, like apps and files, to help users adjust and learn.

What does an OS consist of, anyway? The system can be divided into:

Platform : hosts specialists (apps) or other platforms; this is the OS

: hosts specialists (apps) or other platforms; this is the OS App : hosts & manipulates content (stuff) automatically or via user initiative; may require connectivity to the web or other devices

: hosts & manipulates content (stuff) automatically or via user initiative; may require connectivity to the web or other devices Protocol : enables apps to pass stuff, data about stuff, or invoke action; requires understanding from both the sender and receiver

: enables apps to pass stuff, data about stuff, or invoke action; requires understanding from both the sender and receiver Stuff: content consumed & manipulated by user or app; apps and platforms may specialize in supported types of stuff

Complexity necessitates questions. I’ll be exploring designs for an ecosystem OS in coming posts. Some initial thoughts come to mind: