Toward Ubiquitous Operating Systems: a Software-Defined Perspective
Total Page:16
File Type:pdf, Size:1020Kb
COVER FEATURE OUTLOOK Toward Ubiquitous Operating Systems: A Software-Defined Perspective Hong Mei and Yao Guo, Peking University In recent years, operating systems have expanded beyond traditional computing systems into the cloud, IoT devices, and other emerging technologies and will soon become ubiquitous. Despite the apparent differences among existing OSs, they all have in common so-called “software-defined” capabilities— namely, resource virtualization and function programmability. n the January 2016 issue of Computer, Dejan Milo- Resource virtualization and function programmabil- jicˇi´c and Timothy Roscoe predicted what OSs would ity also lie at the heart of so-called “software-defined” look like in a decade based on current hardware and systems including software-defined networks (SDNs),2 application trends.1 Whereas they focused on OSs software-defined storage (SDS), and software-defined Ifor traditional computing systems such as PCs, servers, datacenters (SDDCs). Just as a traditional OS manages a and embedded systems, we instead examine the future of hardware system with software abstractions and pro- OSs more broadly from a software-defined perspective. vides runtime support for applications, we believe that In recent years, various OSs have been proposed and future OSs will provide all of the software-defined capa- developed for devices large and small, at the scale of sin- bilities for emerging technologies. Thus, an SDN is an OS gle computers as well as clusters, at both the hardware for networking hardware, while a software-defined cloud and software levels, and for applications ranging from is an OS for the cloud. We refer to these OSs as ubiquitous smart homes to smart cities. Although these OSs might operating systems (UOSs). look very different from one another, they all embody the same general principles and characteristics as tradi- A BRIEF HISTORY OF OPERATING SYSTEMS tional OSs—namely, resource virtualization and func- An OS is a layer of system software that lies between tion programmability. applications and computer hardware, managing resources 50 COMPUTER PUBLISHED BY THE IEEE COMPUTER SOCIETY 0018-9162/18/$33.00 © 2018 IEEE TABLE 1. Evolution of traditional operating systems. Timeframe Representative OS(s) Computer system Main characteristics 1956 GM-NAA I/O IBM 704 The first practical OS Simple batch processing I/O management 1960s IBM OS/360 series IBM 360 series—mainframes Time-sharing Multibatch processing Memory management Virtual machines (VM/370) 1970s Unix Minicomputers/workstations First modern OS Developed with machine-independent languages (C) Provides standard interfaces Integrated development environment 1980s Mac OS, Windows, Linux Personal computers (PCs) Provides modern GUI Improves usability for personal users 2000s Apple iOS, Google Android, Smartphones Customization of traditional OSs Windows Phone Improves usability for mobile devices New app delivery model (App Store, Google Play) such as processors, memory, and storage as Android and iOS include a layer to geographically distributed computer while providing support to the applica- support mobile app development and systems or even virtual machines (VMs), tions running above it.3 execution to provide better experi- providing specific services through There were no OSs on the earliest ences for mobile users. Internet connections. These new “meta- computers, as software applications ran With the rapid adoption of com- OSs” often run above traditional OSs directly on bare-metal machines. How- puter networks in the 1980s, it became such as Windows or Linux to provide ever, as computing systems became critical for OSs to provide networking support for Internet-based applications increasingly complex, it became harder capabilities, leading to the creation of and services. to manage the resources directly in an networking middleware and many new application. Consequently, more com- network OSs (NOSs). The earliest NOSs A SOFTWARE-DEFINED mon functionalities were abstracted such as Novell Netware focused on PERSPECTIVE as drivers and libraries, creating a sys- connecting computers within a local “Software-defined” has become one tem software layer that could be shared network. These were later discontin- of the hottest buzzwords in both aca- among different applications. This ued when connecting to the network demia and industry. It describes a fam- software layer was called an “operating became a necessity for many users and ily of technologies including SDNs, system” because it was originally devel- most such capabilities were incorpo- SDS, and SDDCs that are collectively oped to abstract a system’s operating rated in newer versions of desktop OSs. sometimes referred to as “software- capabilities to ease the burden on oper- Talk of an Internet OS began in the defined everything” (SDX). In a software- ators. However, current OSs no lon- mid-1990s during the war between Mic- defined system, hardware resources ger emphasize system “operation” but rosoft and Netscape, which announced can be virtualized and managed by instead handle resource management, a set of new tools and programming OS routines or the control plane, and application development, and runtime interfaces for next-generation Internet- users can write programs to access support for a given system. based applications. Since then, many and manage the services provided by Table 1 lists major traditional OSs Internet OS implementations have virtualized resources.4 and compares their key character- been proposed, including the Java- We argue that OSs offer these same istics. Modern OSs mostly employ a based JavaOS and, most recently, Goo- capabilities. For example, a tradi- Unix-based architecture, while cus- gle’s browser-based Chome OS. tional OS such as Linux or Windows tomizing their functionalities for a Many NOSs and Internet OSs offer provides virtualization of hardware particular type of system. For example, networking capabilities or incorpo- resources through hardware driv- OSs such as Windows and macOS focus rate Internet-related data-management ers, and application development and on GUIs to provide better user experi- functionalities with OS-like struc- runtime support through software ences for desktop users, while OSs such tures. Their components might run on development kits (SDKs) and libraries. JANUARY 2018 51 OUTLOOK Desktop OSs Software-de ned desktop computers (Linux/Windows) Software-de ned wireless TinyOS sensor network motes Cloud OS Software-de ned cloud Operating systems OS for networks SDNs (software-de ned networks) ) OS for storage systems SDS (software-de ned storage) de ned everything For example, the Living PlanIT OS for datacenters SDDCs (software-de ned datacenters) SDX (software- Urban Operating System (living-planit.com) provides FIGURE 1. Operating systems and software-defined systems are mostly based on the abstractions and management same principles. interfaces for energy, water, waste management, transporta- tion, telecommunications, and Mobile OSs such as Android pro- aspects of our lives. To understand the healthcare systems, as well as vide an extra software-defined layer enormous impact UOSs will have, con- programming APIs to ensure with higher-level abstractions for sider these examples: interoperability among different mobile apps, including management platforms. of mobile data (for example, contact › Web OSs. Web OSs, also known › Cloud OSs. Conceptually, a cloud and location data), a set of APIs for app as web desktops or webtops, OS does what a traditional OS development, and a set of libraries to provide a Linux-like environ- does—manage applications and support app execution. Whether OSs ment within a browser for users hardware—but at the scale of run on small devices (such as TinyOS5) to run applications and manage cloud computing, replacing file or huge clusters (such as cloud OSs), all their data and storage. They systems with object storage and they offer both resource virtualiza- also include APIs for developers enabling almost unlimited stor- tion and function programmability. to create applications that can age capacity and I/O throughput. Put another way, a “software-defined” run within the browser. Exam- Instead of managing processes technology is really just an OS for that ple web OSs include Firefox OS, on physical machines, a cloud technology. In an SDN, for example, Chrome OS, eyeOS, YouOS, and OS manages tasks on VMs. More the control plane provides the abil- G.ho.st. importantly, it offers various APIs ity to write high-level applications to › The Robot Operating System. ROS for cloud apps to utilize cloud manage the networking functions, is a meta-OS that provides devel- resources. Many cloud service while the data plane virtualizes net- opment and runtime support providers have created their own working resources. for complex and robust robotic cloud OS, including Microsoft In sum, as Figure 1 shows, OSs and applications.7 Its extensive Azure, Amazon Web Services software-defined systems are mostly collection of open source tools, (AWS), and Huawei FusionSphere. based on the same principles. libraries, abstractions, and APIs There are also popular open can be used across a wide variety source cloud OSs such as Open- UBIQUITOUS OPERATING of platforms. Stack and Apache CloudStack. SYSTEMS › HomeOS. A Microsoft initiative › IoT OSs. Google’s Android More than a quarter of a century ago, to enable “smarter homes for Things (Brillo) is an embedded Mark Weiser envisioned a world in everyone,” HomeOS aims to