
Operating Systems for Internetware: Challenges and Future Directions Hong Mei, Yao Guo Key Laboratory of High-Confidence Software Technologies (Ministry of Education) School of Electronics Engineering and Computer Science, Peking University, Beijing, 100871, China Email: fmeih, [email protected] Abstract—This paper presents our vision on present and … future operating systems for Internetware, i.e., Internetware Application Application Application Operating Systems. Internetware is a paradigm for new types of Internet applications that are autonomous, cooperative, Human-Computer Interface situational, evolvable, and trustworthy. An Internetware system (shell/GUI Window System) consists of a set of autonomous software entities distributed over the Internet, together with a set of connectors to enable various collaborations among these entities. An Internetware OS System Calls represents our perspective on the OS for future Internet-based application. This paper discusses the technical challenges and our Resource Management recent effort on Internetware OSs, as well as our vision on the (processors, storage, peripheral devices) future of Internetware OSs. We believe that, in the foreseeable future, Internetware OSs will become ubiquitous and could be built for different scales of computer systems and beyond. Fig. 1. The architecture of a traditional OS. Index Terms—Operating systems, Internetware, software- defined everything, ubiquitous operating systems. resources. On the other hand, it also provides user- I. INTRODUCTION friendly user interfaces (UI). For software developers, an OS also determines the programming model for the An operating system (OS) is a layer of system software that applications running above it. runs between applications and computer hardware, managing • From the perspective of application software, an OS can hardware resources such as processors, memory and storage, be viewed as a development and execution platform. while providing support to the software applications running It provides necessary supports for the development and above it [1]. Although the earliest computers such as ENIAC execution of all application software. For example, an did not have an OS, most of the later computer systems require OS typically includes an execution environment for the installation of an OS to help bridge the gap between application software, runtime resource management and applications and hardware. It is unrealistic to build applications scheduling, as well as tools for software development and to run on modern bare-metal machines without OSs running maintenance. in between. There were no OSs on the earliest computers, as software As shown in Figure 1, an OS provides resource management applications run directly on bare-metal machines. As the capabilities on processors, storage, and peripheral device complexity of a computer system kept increasing, it becomes components, while providing systems calls and human- harder and harder to manage the resources on a computer computer interfaces for applications and end-users. It exhibits directly in an application. As a result, more and more common different views when we look at an OS from different functionality are abstracted as drivers and libraries, creating perspectives: a system software layer running between applications and • From the perspective of a computer system, an OS hardware, which can be shared between different applications. can be viewed as a resource manager. An OS manages This software layer were then named operating systems as it and coordinates the utilization of all kinds of low-level was originally developed to abstract the operating capabilities hardware and software resources, while supporting the to ease the tasks of computer operators. However, current efficient utilization of these resources. At the same time, OSs no longer focus on the operation of a computer system, an OS also bridges heterogeneous hardware resources instead on resource management and application development through hardware drivers, in order to improve the and runtime support for a given system. interoperability among the whole computer system. Modern OSs mostly employ the similar architecture as • From the perspective of system users, an OS can be the UNIX OS, while customizing their functionalities for a viewed as a virtual machine (VM). On one hand, an OS particular type of computer systems. For example, desktop provides abstraction to hide the details in the hardware OSs such as Windows or MacOS focus on better graphical user interfaces (GUI) to provide better user experiences for personal users. Mobile OSs such as Android and iOS are also Internetware Internetware ………… Internetware Internetware Applications Applications Applications Applications based on UNIX-like kernels, while adding a mobile platform layer to support the development and execution of mobile apps, Development and Runtime Support in order to provide better experiences for mobile users. for Internetware Applications As the fast adoption of computer networks since 1980s, it becomes critical for an OS to provide networking capabilities, thus creating many new OSs named as networking operating Internetware APIs systems. The earliest networking OSs such as Novell Netware Internetware Operating System Operating focused on the interconnection of computers within a local Internet Resource management network. These OSs were later discontinued as most of these capabilities are incorporated in newer versions of desktop OSs, Private Public as connecting to the network has become a must-have for many Cloud Cloud users. Terminal Sensors In addition to networking extensions to OSs, another important direction for networking support in a tradition OS Fig. 2. The concept of an Internetware OS. is through networking middleware [2]. Middleware is defined as a layer between applications and the OS, providing a series of APIs for mainly networking support. Middleware that are autonomous, cooperative, situational, evolvable, help hide the complexity and heterogeneity of the low- emergent, and trustworthy. The Internetware software model level infrastructure (including networks, computers, OSs and consists of a set of autonomous software entities distributed programming languages), such that applications only need to over the Internet, together with a set of connectors to concern about its main execution logics. enable collaborations among these entities in various ways. The talk of an Internet OS began to surface in mid- Internetware software entities can sense dynamic changes 1990s during the war between Netscape and Microsoft. Marc in the running environment and continuously adapt to these Andreessen of Netscape announced a set of new products that changes through structural and behavioral evolutions. The would help transform their browser into an “Internet OS”, research of Internetware includes its models, development which would provide the tools and programming interfaces methodology and runtime support, and quality measurement for a new generation of Internet-based applications. The idea and insurance [8]. of Internet OS has kept floating around in the past 20 years, as Figure 2 shows the concept of an Internetware OS, which many different implementations have been proposed, including represents our perspective on the OS for future Internet-based the Java-based operating system JavaOS [3] and most recently, applications. The structure of an Internetware OS is similar Google’s browser-based operating system Chome OS [4]. to the layered structure of a tradition OS, in the sense that Many of these OSs were focused on providing networking it also provides the resource management functionalities and capabilities or incorporating Internet-related data (resource) provides development and runtime support the applications management functionalities with OS-like structures. For running above it. However, because Internetware applications example, taking the perspective of “Internet as a computer”, are not confined within a single computer system and could an Internet OS focuses on providing better support on run on large-scale systems such as cloud, or even the Internet, software applications running on the Internet. Many Internet thus an Internetware OS is a meta-OS running above existing applications do not run on a single computer, or even on OSs such as Windows and Linux. The resources managed by a single computer cluster. Their components (or services) an Internetware OS are also generalized in the sense that it may run on computers on geographically distributed computer can be any types of resources existed on the Internet. systems (or even virtual machines), providing specific services through Internet connections. These new kinds of networking B. Examples of Internetware OSs OSs often run above existing OSs such as Windows or Linux, In this paper, as an Internetware OS is defined as an OS for while constructing a new layer above the existing OSs to new types of Internet applications, thus many existing OSs are provide support for Internet-based applications and services. qualified as Internetware OS, including: These networking OSs are structured as “Meta-OSs”, which • Robot OS: The Robot Operating System (ROS) [9] is means that they are OSs running above existing (traditional) a flexible framework for writing robot software. It is a OSs. collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust II. INTERNETWARE OPERATING SYSTEMS robot behavior across a wide variety of
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages6 Page
-
File Size-