PROS - An Omnipresent Operating System Monika Shah, Rakshit Trivedi, Priyank Mehta, and Pratik Pattani Department of Computer Science and Engineering, Institute of Technology, Nirma University, Ahmedabad, India. Email:
[email protected] {05bce079, 05bce135, 05bce061}@nirmauni.ac.in Abstract—The central idea presented in this paper is to show the architecture and working of an Operating System running over the network, thus leading to global computing. "PROS", as it is named, provides transparency meaning it would work same as a real operating system on the PC without need of static installation. PROS would load up on the user's PC irrespective of the location along with user’s personalized settings providing with the feel of pervasive computing. By real operating system, we mean that it would provide all the features such as memory management, scheduling, on demand loading etc, thus making it different from the prevailing WEB OS's which are a collection of several Web Services clubbed together, and require a browser and a base operating system to work on. PROS will be able to work independently of other existing operating systems and thereby would be the only operating system that the host machine has to interact with. Such an operating system will be much more economical and will also help the client machine to be less hardware dependent. In addition to operating system services on a local machine, it provides mobility to run operating system from any computer system with configured settings. Index Terms—PROS, virtual net-based OS, WEB OS, WEB FS, Operating System, RAC, Live CD, SOA, SaaS.
I. INTRODUCTION In the present scenario, the basic needs of the humans have changed drastically which consists of speed, portability, mobility and security. Our effort is to present an innovation which would give people an environment to access and manage their work all round the globe and provide a very high security to their work thus giving them a flavor of pervasive computing. The paper, initially introduces the concept of accessing the virtual net-based Operating System that would be lively available all over the globe. It further gives a glimpse of the various features that would be made available to the users of this operating system. Secondly, it provides information about the various components required by the clients and the servers. It then goes deeply into the explanation of the architecture and the design issues to provide the in-core information about the methodologies and functionalities to be used in the development and for the deployment of the Operating System. The design issues are followed by the customizations that will be provided to the PROS users. Further it presents the comparison and the advantages of PROS over the prevailing WEBOSes and LIVE CD technology while the practical implication of the project forms the concluding part of paper.
II. OBJECTIVE Taking Concept of Web OS closer to “real OS”. The objective of our project is to develop a network based virtual operating system that the user would be able to access on the network, independent of any other browser or operating system. It would provide a virtual OS environment for any machine configuration without the need of storage media. Today, various applications are provided on the web, which serve the purpose of the operating system to some extent. Such web applications, using HTTP+JavaScript+XHTML+CSS+Flash technology, provide some of the conventional OS services and the Graphical User Interface. Current WEB OS’s being web applications require a browser and an operating system on the host machine on the top of which it works. PROS would be the sole operating system dealing directly with the host machine. III. FEATURES Dynamic OS: PROS can be made available with required customization even when accessed from different machines. Generic drivers required for the client machine will be loaded dynamically using the bootable disk provided to the user. On demand File System: PROS will provide the user with an immediate access to his/her personal data store from any machine around the globe. Host Machine-independent processing to a large extent: PROS can be used over any client machine irrespective of its local resources as the main functioning of the operating system is handled on server side. Minimal hardware configurations at the client machine: No storage devices such as hard drives will be required on client machine as data will be stored on servers. So hardware requirements of the client machine comes down to primary memory with minimal configuration of 128 M (preferably 512 M), thereby facilitating use of low-cost "diskless" computers. Reduced Cost for large number of computers used in organization for some specific purpose in distributed environment: PROS will be suitable option for an organization, wherein a number of systems are used for only a specific set of applications, so that clients with minimal hardware configuration can be effectively used. Use of PROS will create a virtual net-based OS framework for systems running in the distributed environment.
Cache memory and Reserved memory configurations: Cache memory configurations will be provided for getting the frequently used applications loaded faster when required. Reserved memory area is meant for providing better performance during the use of real time and memory intensive applications. On demand software: Various applications will be installed on the servers and made available to clients on demand using the concept of SaaS (Software as a Service) and SOA (Service Oriented Architecture). Maximum application resource utilization with minimum user licensing: As software packages are installed on the server, they will be made available to users on loading the OS which eliminates the need for purchasing the individual licensed copy for various applications or same application for several machines. Crash safe Transaction: This feature will be achieved with the support of multiple online server and efficient log managers. Moreover, Real Application Clusters (RAC) will be used to make the system 24 * 7 live and persistent with the help of regular backups. Seamless portability/mobility: PROS will provide boundless portability and mobility as its user will be required to posses only a bootable disk drive and an internet connection to access his personalized system from anywhere in the globe. Customization: PROS will provide support for customizations regarding the personal settings of user. It will also be possible to customize PROS as per the needs of distributed environment. External Device Interface: Mounting of external devices can be done locally by downloading the required components in the reserved memory on the local machine. IV. COMPONENTS INVOLVED A. Hardware Components The servers would consist of large amount of data storage devices such as tape drives and hard drives on repository servers. In case of the application and transaction servers, due to very high amount of processing, large amount of the active memory and efficient hardware components would be required. On the client side the hardware requirements would be minimal. The client would fundamentally require a network card, main memory, cache support (for high performance), and the external drive support like CD and USB drives. He may opt for static disk drives on the machine at his will and may also use client side cache so as to get faster access to his frequently used applications. B. Software Components TFTP/DHCP Server. Generic Device Drivers. File System. Interfacing Application. Memory Manager. Application specific components. Network Manager.
On the network, all the conventional protocols like TCP/IP, UDP, ARP, DHCP, and TFTP etc. would be necessary for connection and communication. V. METHOLOGY AND FUNCTIONALITY A. ARCHITECTURE PROS is an operating system which would consist of a minimal configured client terminal on the user side and highly configured and efficient servers as its working environment. Hence it is required to be implemented using multi-tier Client-Server Architecture to make it highly efficient and robust.
Client Tier The CLIENT TIER, comprising of a thin client, consists of minimal components both with respect to storage capacity and processing power. Server side Cache memory is used to provide better and fast interaction with the frequently used components. The boot loader (provided on the bootable disk) will download OS image (specific to each client) which would be consisting of the necessary components such as the generic drivers, some components for the temporary processing, memory management, GUI components, and network manager [2]. The Interfacing Application would be a GUI component which would provide an interface between the server and the client for further interactions once the OS image has been loaded. The Client tier will consist of the reserved memory which can be used at the time of execution of real time and computation intensive applications.
Transaction Tier Components in Client tier interface with TRANSACTION Tier. This is the most vital tier in the whole architecture as this tier is responsible for carrying out various interactions of each user with PROS and for validating users. It also consists of the transaction manager which implements scheduling algorithms to transfer request to the application tier for load balancing, RAC and session management The Transaction tier primarily consists of the Client Communication Module (CCM) which will communicate with each of the users on the network independently and will provide them with an interface that will make them feel of having their own operating system running locally. This tier also consists of three other modules viz. transaction manager, request/response manager and failure handler. The transaction manager is responsible to pass requests to appropriate transaction servers in addition to carrying out its above cited tasks. The request/response manager is responsible for delivering the request to the various other tiers as required and delivers the response from these tiers to the CCM which in turn will send this response to the client. The failure handler module consists of user log and recovery mechanism. Whenever a failure occurs either in
Figure 2. File System Structure
Communication Module (ACM) in this tier is responsible for communicating with the Application Tier which accesses file system of this tier.
Application Tier The Application Tier is the heart of PROS. The Application Tier consists of the Application Specific Components (ASC) and Generic Components (GC). The ASC includes various components necessary for the functioning of different applications. The Generic Components will include the components like framework and runtime environment required for supporting various applications. PROS will use Real Application Clusters to keep the system 24 * 7 live and persistent with the help of regular backups. B. DESIGN OF PROS Figure 1. Architecture of PROS (Arrows depict communication path)
client/server or the network, the failure handler will store the user’s transactions into the log files which will later be used for recovery.
Repository Tier This tier consists of the file system structures, the physical and logical data storage, data structures, file system and location manager, backup handler and modules to communicate with the Application tier. Whenever the Transaction/Application server sends the request for the required file to this tier, File Locator retrieves the required file and sends back to the requesting tier. The file system structure consists of a root directory which is the root for all the users of the system and will contain the information of all the users and a log to maintain their track. Next in the hierarchy will be the root directory of each user that is registered to access the system. The system root will also consist of the server configuration files. Each user directory will consist of the data files, the user profile which will consist of the saved personalized settings of its owner and the log files which will keep the track of user’s transactions and data storage. The data is identified with the help of URI (Universal Resource Identifier) thus giving rise to (Network File System) NFS structure. The Repository Tier also consists of the module for handling backups which are most crucial for recovering from the failures and also for maintaining the consistency of the data. Moreover, the tier consists of the store of Generic Drivers for various devices. The Application
Kernel On the client side, the OS image downloaded from the network will consist of the microkernel. A microkernel is a minimal computer operating system kernel which provides no operating-system services at all, only the mechanisms needed to implement such services, viz., low-level address space management, thread management, and inter-process communication (IPC) are provided [6]. The microkernel of PROS will provide some core functionalities which include: Mechanisms for dealing with address spaces — this is required for managing memory protection. Inter-process communication — required to invoke servers running in their own address spaces. On the server side, the conventional monolithic kernel would work on the network comprising of the different tiers as described in the architecture. This kernel would provide all the services such as scheduling, memory management, IPC, RPC and file management.
Figure 3. WEBFS Architecture
File Management PROS will use WEBFS which is a global file system used for the management of the files for all users. The WebFS system architecture (as shown in Fig. 3) consists of two parts: A user-level daemon and a loadable vnode module. When an application makes the read system call requesting a WebFS file, the operating system translates the call into a vnode read operation. The vnode operation checks to see if the read can be satisfied in the kernel (i.e., if the page being requested is cached in the kernel). If the operation cannot be satisfied in the kernel, the vnode operation fills in a structure requesting a read of the file page in question and wakes up one of the sleeping threads in the work queue. The user level daemon is then responsible for retrieving the page, by contacting a remote HTTP or WebFS daemon. Once the page is retrieved remotely, the reverse path is followed into the kernel [1].
Process Management In PROS, there will be multiple processes running on the different tiers of its architecture. The various processes will be distributed among the multiple servers so as to get high throughput, performance and optimal resource utilization. PROS will provide the conventional process management services that include: Suspension and resumption of processes. Mechanism for process synchronization and deadlock handling. Mechanism for IPC and RPC. In PROS, RPC will be implemented for communication among processes residing on different tiers. The context switching between various processes will occur according to the requirements and the requests made by various tiers or the user processes.
Scheduling The scheduling of the various processes is a very crucial step. The scheduling module consists of three major components: a resource state information database, a module which computes request (object) mapping to resources (hosts and vaults), and an activation agent responsible for implementing the computed schedule [5]. C. Working of PROS
Figure 4. Generic Flow diagram - Working of PROS. Here b, c, d are the modules for invoking applications, saving files and playing media respectively.
VI. FINDINGS AND ANALYSIS A. Proposed Models User customized settings stored on client machine: If user uses the same client machine most of the time, the customized settings related to Generic GUI can be saved as a file by client onto any local storage device and used every time the OS boots. Frequently used Application Image stored onto client machine: Application specific components for the frequently used applications can be stored onto the client machines so that it is not required to be downloaded every time the application is initiated. Load balancing by shifting some processes to client: Using an algorithmic approach some specific processes can be carried out locally on client machine for performance tuning whereby processing power of client may be utilized [1]. The second approach of providing frequently used application image stored onto the client machine is ideally suited for efficient working of PROS. B. Cost Analysis and Resource Utilization Whenever a user buys a PC, he has to spend a lot more money as compared to his utilization. The utilization of a normal home user would be approximately 5 hrs a day or even less than that. Now the lifetime of a normal PC would be approximately around 5 yrs. According to a statistics, this results into 20 % utilization of the system by the user. During this 20% utilization also, the actual resource utilization turns out to be only around 4%. Considering the normal prevalent costs of the resources available and comparing it with the configurations of the components required to be present in the system which will use PROS, the cost is estimated to get reduced by 50%. This estimation includes the consideration of the cost required for developing and
maintaining servers. With this cost we will move a step closer towards the ‘$99’ computer. VII. SECURITY PROS will consist of various modules for providing security and performs the following steps for the same: Authentication Using Passwords. Maintaining Sessions using Kerberos protocol. Periodic relocation of critical and confidential data. Digital Certificates to identify genuine clients and servers. CD piracy not an issue: As the operating system can be loaded only after passing various Authentication steps, even if the CD is pirated the User would not get access unless and until user registers and validates himself.
will be provided to the user on a small storage device through which he would be able to login and get access to the file system and personalized settings stored under his profile [4]. On booting, the necessary components of PROS would be downloaded in the form of OS image from the server. After this download, a connection will be maintained for the data transfer. On the server various operating system services like file system management, process management, etc will be handled in an efficient way using optimal algorithms for each of them. There might be issues regarding the cost for bandwidth required and speed but that can be overcome with lapse of time and with suitable tools for getting committed Bandwidth [3]. CONCLUSION
VIII. COMPARISIONS A. Advantages Optimal Resource Utilization. No compatibility issues for various software applications. Data access available all around the world. Client Resource Independence. Highly Economical. Minimum Client Hardware requirement. On demand software available from server. B. Pitfalls in Prevalent WEB-OS The Web Operating System prevailing at present is basically a web application better known as Web Desktop rather than a real operating system. HTTP+JavaScript+XHTML+CSS+Flash technology is not as robust in providing functionality and user interaction as true desktop applications. Scripting Errors and Cross browser compatibility issues have always been there. Not 100% secure. Resource Utilization is not proper. Software Applications are not available on demand. For most of the applications, software is required to be installed. C. Benefits over Live CD Live CD requires storage media on the client machine to store the data and run various applications. Moreover, the performance of various services depends on the local resources. In PROS, servers are used for both storage and processing, making it highly economical and efficient to use as compared to Live CD. Updates for services that will be offered by PROS can be easily incorporated while it is difficult to update the operating system provided on Live CD. IX. IMPLICATIONS The practical implication of PROS would be on a very broad line. First of all the development of the client side software viz., boot loader is to be carried out. This
PROS will provide OS services to wide-area applications, including mechanisms for resource discovery, a global namespace, and remote process execution, on demand file system, on demand applications, resource management, authentication, and security. Thus our paper is an effort towards providing the three basic necessities of user’s viz., speed, portability and security in an innovative way along with providing them the feel of pervasive computing. ACKNOWLEDGEMENT We are greatly thankful to Prof. K.P. Agrawal, Department of Computer Science and Engineering, Institute of Technology, Nirma University, for guiding us in the exploration of our work and providing us all the required aids. REFERENCES [1] Vahdat, P. Eastham, C. Yoshikawa, E. Belani, T. Anderson, D. Culler, et al., “WebOS: Operating System Services for Wide Area Applications,” The Seventh International Symposium on High Performance Distributed Computing, pp. 52-63, July 1998. [2] Yevgeniy Klimenko, “Technique for Reliable Network Booting of an Operating System to a Client Computer,” 3Com Corporation, Santa Clara, California, March 1998. [3] A. Vahdat, T. Anderson, D. Culler, R. Martin, "Effects of Communication Latency, Overhead, and Bandwidth in a Cluster Architecture," 24th Annual International Symposium on Computer Architecture (ISCA'97), pp.85, 1997. [4] P. Miller, TCP/IP Explained, Chapter 9, "Booting Internet Hosts with BootP and TFTP," pp. 343-359. [5] Legion World Wide virtual computer, “Philosophy of Legion Scheduling and Resource Management,” University of Virginia, 1993. [6] Andrew S. Tannenbaum, “Modern Operating Systems,” 2nd edition, 2001.