In the January 2016 issue of Computer, Dejan Milojicˇi´c and Timothy Roscoe predicted what OSs would look like in a decade based on current hardware and application trends.1 Whereas they focused on OSs for traditional computing systems such as PCs, servers, and embedded systems, we instead examine the future of OSs more broadly from a software-defined perspective. In recent years, various OSs have been proposed and developed for devices large and small, at the scale of single computers as well as clusters, at both the hardware and software levels, and for applications ranging from smart homes to smart cities. Although these OSs might look very different from one another, they all embody the same general principles and characteristics as traditional OSs—namely, resource virtualization and function programmability. Resource virtualization and function programmability also lie at the heart of so-called “software-defined” systems including software-defined networks (SDNs),2 software-defined storage (SDS), and software-defined datacenters (SDDCs). Just as a traditional OS manages a hardware system with software abstractions and provides runtime support for applications, we believe that future OSs will provide all of the software-defined capabilities for emerging technologies. Thus, an SDN is an OS for networking hardware, while a software-defined cloud is an OS for the cloud. We refer to these OSs as ubiquitous operating systems (UOSs).