Sie sind auf Seite 1von 31

Midori Cloud-Based Operating System

Abstract

ABSTRACT

MICROSOFT is working on a new generation of operating systems called Cloud-Based Operating System and that MIDORI will be their first such operating system, which will replace Windows fully from computer map. The main idea behind MIDORI is to develop a lightweight portable OS which can be mated easily to lots of various applications. Midori will present a higher-level application model that extracts the details of physical machines and processors, internally known as Asynchronous Promise Architecture. It will run directly on native hardware (x86, x64, and ARM), and have the possibility to be hosted on the Windows Hyper-V hypervisor or a Windows process. Keywords: Bartok compiler, Cloud computing, Cloud-base OS, Lightweight portable, Singularity, Two kernel

1
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Introduction

CHAPTER No. 1 INTRODUCTION

The Redmond Company is hard at work hammering away on working on a special non-Windows operating systems. So far, Microsoft has already made available for download Singularity, but it seems that there is more to new system architecture and operating system over at Microsoft than meets the eye. Case in point: MIDORI. According to Mary Jo Foley, Midori is a project operating system intimately connected built under the lead of Eric Rudder, Senior Vice President, Technical Strategy. Rudder, in his turn, is under the responsibility of Craig Mundie, Chief Research and strategy Ocer, who, together with Ray Ozzie, Chief Software Architect, has replaced Chairman Bill Gates at the helm of Microsoft. The Redmond giant is, of course, extremely hush-hush about Midori, but the company, as it has a tradition of letting details slip through its ngers, o cially confirmed the existence of Midori, and its connection with Singularity. In this context, Microsoft Research has published a PowerPoint presentation about CHESS: Systematic Testing of Concurrent Programs. Among the current CHESS application (work in progress), Microsoft enumerates Dryad, library for distributed dataow programming, Singularity/Midori (OS in managed code), user-mode drivers, Cosmos (distributed le system), [and] SQL database. It is clear from the Microsoft Research document that Singularity and Midori are almost one and the same thing and certainly enough, both non-Windows operating systems written entirely in managed code.

1.1 Installation.
If you think about how an operating system is loaded, said Dave Austin, European director of products at Citrix, its loaded onto a hard disk physically located on that machine. The operating system is tied very tightly to that hardware, That created all types of depended that arose out of the collection of hardware in a particular machine. Rather than
2
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Introduction

being tied to a hard disc, the new OS will be run natively or hosted across multiple platforms to take advantage of the perceived mobility of future computer users. This would make it easier to manage physical hardware devices possibly gives Microsoft an edge as more and more applications migrate to the Web in future. This means, that Windows can struggle with more modern ways of working in which people are very mobile and very promiscuous in the devices they use to get at their data - be that pictures, spreadsheets or e-mail. Equally, when people worked or played now, they did it using a combination of data and processes held locally or in any of a number of other places online. Midori, whose core details leaked earlier this week, is an upshot of Microsoft Researchs Singularity operating system, the tools and libraries of which are completely managed code. Midori is designed to run directly on native hardware (x86, x64 and ARM), be hosted on the Windows Hyper-V hypervisor, or even be hosted by a Windows process.

1.2 Whats the difference?


MIDORI is an offshoot of Microsoft Research Singularity operating system. In this the tools and libraries are completely managed code. MIDORI is designed to run directly on native hardware (x86, x64 and ARM), will be hosted on the Windows Hyper-V hypervisor, or even be hosted by a Windows process. MIDORI can be also seen as MICROSOFTS answer those competitors who are applying Virtualization as a mean to solving issues within contemporary computing. The main idea behind MIDORI is to develop a lightweight portable OS which can be mated easily to lots of various applications.

1.3 Importance of Midori


For knowing the importance of MIDORI you have to think about, how an operating system is loaded on a computer. Actually operating system is loaded onto a hard disk physically located on that machine. In this way, the operating system is tied very tightly to that hardware. As Windows is dependent on hardware, it might face opposition from
3
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Introduction

contemporary ways of working because people are extremely mobile in using di erent devices in order get diverse information. Due to this trend installing dierent applications on a single computer may led to dierent compatibility issues whenever the machine require updating. The new operating system will solve these problems by the concept of Virtualizing. This will solve problems such as widespread security vulnerabilities, unexpected interactions among dierent applications, failures caused by errant extensions, plug-ins, and drivers and many more. ERIC RUDDER, Senior Vice President, Technical Strategy The importance of this project for MICROSOFT can be understood by the fact that company choose Eric Rudder, former head of Microsofts server and tools business and a key member of Chairman Bill Gates faction of the company,to handle it.

4
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Working with MIDORI

CHAPTER No. 2 WORKING WITH MIDORI

2.1 Virtualisation
Midori is widely seen as an ambitious attempt by Microsoft to catch up on the work on virtualisation being undertaken in the wider computer industry. Darren Brown, data centre lead at consulting rm Avanade, said virtualisation had rst established itself in data centres among companies with huge numbers of servers to manage. Putting applications, such as an e-mail engine or a database, on one machine brought up all kinds of problems when those machines had to undergo maintenance, needed updating or required a security patch to be applied. By putting virtual servers on one physical box, companies had been able to shrink the numbers of machines they managed and get more out of them. The real savings are around physical management of the devices and associated licensing. Physically, there is less tin to manage. Equally, said Mr. Brown, if one physical server failed the virtualised application could easily be moved to a separate machine.The same benets apply to the PC. Within the Microsoft environment, we have struggled for years with applications that are written so poorly that they will not work with others. Virtualising this gives you a couple of new ways to tackle those traditional problems.Many companies were still using very old applications that existing operating systems would not run. By putting a virtual machine on a PC, those older programs can be kept going. A virtual machine, like its name implies, is a software copy of a computer complete with operating system and associated programs.

5
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Working with MIDORI

Figure 2.1: Midori and Computer Connectivity

2.2 Closing Windows


On the desktop we are seeing people place great value in being able to abstract the desktop from actual physical hardware, said Dan Chu, vice president of emerging products and markets at virtualisation specialist VMWare.According to him, some virtual machines, acted like Windows PCs to all intents and purposes. But many virtual machines were now emerging that were tuned for a particular industry, sector or job People take their application, the operating system they want to run it against, package it up along with policy and security they want and use that as a virtual client. In such virtual

machines, the core of the operating system can be very small and easy to transfer to dierent devices. This, many believe, is the idea behind Midori - to create a lightweight portable operating system that can easily be mated to many dierent applications. Microsofts licensing terms for Windows currently prohibited it acting this way within a virtual appliance, said Mr Chu. Michael Silver, research vice president at Gartner, said the development of Midori was a sensible step for Microsoft. The value of Microsoft Windows, of what that product is today, will diminish as more applications move to the web and Microsoft needs to edge out in front of that, .I would be surprised if there was denitive evidence that nothing like this was not kicking around,.The big problem that Microsoft faced in doing away with Windows, he said, was how to re-make its business to

6
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Working with MIDORI

cope. Eighty percent of Windows sales are made when a new PC is sold, .Thats a huge amount of money for them that they do not have to go out and get.

Figure 2.3: Overall System Diagram

2.3 Kernel
The Kernels Primary Purpose is to manage the computers resources aloe other programs to run use this resources. Typically, the resources consist of: The Central Processing Unit (CPU, the processor). This is the most central part of the computer system, responsible for running or executing programs on it. The kernel takes responsibilities for deciding at any time which of the running programs should be allocated to the processor or processors(each of which can usually run only one program at a time) the computers memory. Memory is used to store both program instruction data. Typically, both need to be present in memory in order for a program for execute. Often Multiple programs want to access to memory, frequently demanding more memory than the computer has available. The kernel is responsible for deciding which memory each process can use, determining what to do when not enough is available. Any I/O device present in the computer, keyboard, mouse, disk drive, printers, displays etc. The kernel allocates requests from applications to perform I/O to an appropriate device (for subsection oda device, in the case of les on a disk or windows on a display) provides convenient methods for using the device (typically abstracted to the point where the application does not need to know implementation details of the device). Key aspects necessary in resource managements are the denition of an execution domain (address space) the protection mechanism used to mediate the access to the resources within a domain.

2.4 Microkernel
The microkernel approach consists of dening a simple abstraction over the hardware, with a set of primitives or system calls to implement minimal OS services such as memory management, multitasking, and inter-process communication. Other services,
7
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Working with MIDORI

including those normally provided by the kernel, such as networking, are implemented in user-space programs and referred to as servers. Microkernel are easier to maintain than monolithic kernels, but the large number of system calls and context switches might slowdown the system because they typically generate more overhead than plain function calls. A microkernel allows the implementation of the remaining part of the operating system as a normal application program written in a high-level language, and the use of dierent operating systems on top of the same unchanged kernel. It is also possible to dynamically switch among operating systems and to have more than one active simultaneously.

2.5 Process Management


The main task of a kernel is to allow the execution of applications and support them with features such as hardware abstractions. A process denes which memory portions the application can access. Kernel process management must take into account the hardware built-in equipment for memory protection. To run an application, a kernel typically sets up an address space for the application, loads the le containing the applications code into memory, sets up a stack for the program and branches to a given location inside the program, thus starting its execution.

Figure 2.5: Overall system Diagram 1. Multi-tasking kernels are able to give the user the illusion that the number of processes being run simultaneously on the computer is higher than the maximum number of processes the computer is physically able to run simultaneously. Typically, the number of processes a system may run simultaneously is equal to the number of CPUs installed.
8
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Working with MIDORI

In a pre-emptive multitasking system, the kernel will give every program a slice of time and switch from process to process so quickly that it will appear to the user as if these processes were being executed simultaneously. The kernel uses scheduling algorithms to determine which process is running next and how much time it will be given. The algorithm chosen may allow for some processes to have higher priority than others. The kernel generally also provides these processes a way to communicate; this is known as interprocess communication (IPC) and the main approaches are shared memory, message passing and remote procedure calls. Other systems may provide co-operative multitasking, where each process is allowed to run uninterrupted until it makes a special request that tells the kernel it may switch to another process. Such requests are known as yielding, and typically occu r in response to requests for interprocess communication, or for waiting for an event to occur. Older versions of Windows and Mac OS both used co-operative multitasking but switched to pre-emptive schemes as the power of the computers to which they were targeted grew. The operating system might also support multiprocessing; in that case, dierent programs and threads may run on dierent processors. A kernel for such a system must be designed to be re-entrant, meaning that it may safely run two dierent parts of its code simultaneously. This typically means providing synchronization mechanisms to en- sure that no two processors attempt to modify the same data at the same time.

2.6 Memory Management.


The kernel has full access to the systems memory and must allow processes to safely access this memory as they require it. Often the rst step in doing this is virtual addressing, usually achieved by paging and/or segmentation. Virtual addressing allows the kernel to make a given physical address appear to be another address, the virtual address. Virtual address spaces may be dierent for dierent processes; the memory that one process accesses at a particular (virtual) address may be dierent memory from what another process accesses at the same address. This allows every program to behave as if it is the only one running and thus prevents applications from crashing each other.

9
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Working with MIDORI

On many systems, a programs virtual address may refer to data which is not currently in memory. The layer of indirection provided by virtual addressing allows the operating system to use other data stores, like a hard drive, to store what would otherwise have to remain in main memory (RAM). As a result, operating systems can allow programs to use more memory than the system has physically available. When a program needs data which is not currently in RAM, the CPU signals to the kernel that this has happened, and the kernel responds by writing the contents of an inactive memory block to disk (if necessary) and replacing it with the data requested by the program. The program can then be resumed from the point where it was stopped. This scheme is generally known as demand paging. Virtual addressing also allows creation of virtual partitions of memory in two disjointed areas, one being reserved for the kernel (kernel space) and the other for the applications (user space). The applications are not permitted by the processor to address kernel memory, thus preventing an application from damaging the running kernel. This fundamental partition of memory space has contributed much to current designs of actual general-purpose kernels and is almost universal in such systems, although some research kernels (e.g. Singularity) take other approaches.

2.7 Device Management.


To perform useful functions, processes need access to the peripherals connected to the computer, which are controlled by the kernel through device drivers. For example, to show the user something on the screen, an application would make a request to the kernel, which would forward the request to its display driver, which is then responsible for actually plotting the character/pixel. Kernel must maintain a list of available devices. This list may be known in advance (e.g. on an embedded system where the kernel will be rewritten if the available hardware changes), congured by the user (typical on older PCs and on systems that are not designed for personal use) or detected by the operating system at run time (normally called plug and play). In a plug and play system, a device manager rst performs a scan on dierent hardware buses, such as Peripheral Component Interconnect (PCI) or Universal Serial Bus (USB), to detect installed devices, then searches for the appropriate drivers. As device management is a very OS-specic topic, these drivers are handled differently by each kind
10
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Working with MIDORI

of kernel design, but in every case, the kernel has to provide the I/O to allow drivers to physically access their devices through some port or memory location. Very important decisions have to be made when designing the device management system, as in some designs accesses may involve context switches, making the operation very CPU-intensive and easily causing a signicant performance overhead.

2.8 System Calls.


To actually perform useful work, a process must be able to access the services provided by the kernel. This is implemented dierently by each kernel, but most provide a C library or an API, which in turn invokes the related kernel functions. The method of invoking the kernel function varies from kernel to kernel. If memory isolation is in use, it is impossible for a user process to call the kernel directly, because that would be a violation of the processors access control rules. A few possibilities are: Using a software-simulated interrupt. This method is available on most hardware, and is therefore very common. Using a call gate. A call gate is a special address stored by the kernel in a list in kernel memory at a location known to the processor. When the processor detects a call to that address, it instead redirects to the target location without causing an access violation. This requires hardware support, but the hardware for it is quite common. Using a special system call instruction. This technique requires special hardware support, which common architectures (notably, x86) may lack. System call instructions have been added to recent models of x86 processors, however, and some operating systems for PCs make use of them when available. Using a memory-based queue. An application that makes large numbers of requests but does not need to wait for the result of each may add details of requests to an area of memory that the kernel periodically scans to nd requests.

11
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Working with MIDORI

2.9 Compiler.
Microsoft developed new compiler named BARTOK for Midori Operatin System to achive there goal of platform independence and highly secularity. Bartok is an optimizing compiler and managed runtime system for Common Intermediate Language (which .NET languages compile to), being developed by Microsoft Research. It aims to be efficient enough to be usable for writing operating systems. It provides services such as automatic memory management and garbage collection, threading, and marshalling data to and from native code, as well as verification of CIL code. Bartok is written in C#, including the garbage collector. Bartok is being used by Microsoft Research for the implementation of Midori, a highly-dependable operating system written almost entirely in managed code. Bartok allows various implementations of the garbage collector, base class library and other components to be chosen at runtime on a per-application basis. This feature is being used to write the different components of Singularity - kernel, device drivers, and applications - each using a separate class library that exposes functionality required by (and optimized for) the specific usage.

12
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Topologies

CHAPTER No. 3 TOPOLOGIES

3.1 Client-Server Model


The client-server model of computing is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients. Often clients and servers communicate over a computer network on separate hardware, but both client and server may reside in the same system. A server machine is a host that is running one or more server programs which share their resources with clients. A client does not share any of its resources, but requests a servers content or service function. Clients therefore initiate communication sessions with servers which await incoming requests. The client-server characteristic describes the relationship of cooperating programs in an application. The server component provides a function or service to one or many clients, which initiate requests for such services. Functions such as email exchange, web access and database access, are built on the clientserver model. Users accessing banking services from their computer use a web browser client to send a request to a web server at a bank. That program may in turn forward the request to its own database client program that sends a request to a database server at another bank computer to retrieve the account information.The balance is returned to the bank database client, which in turn serves it back to the web browser client displaying the results to the user. The interaction between client and server is often described using sequence diagrams.

13
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Topologies

Figure 3.1: Client Server Diagram

3.2 Peer To Peer


Peer-to-Peer systems are distributed systems without any centralized control or hierarchical organization, in which each node runs software with equivalent functionality. A review of the features of recent Peer-to-Peer applications yields a long list: redundant storage, permanence, selection of nearby servers, anonymity, search, authentication, and hierarchical naming. Despite this rich set of features, the two core operations in most Peer-to-Peer systems are nding the right peers for querying and ecient routing of messages. Modern routing protocols like Chord, CAN Copyright is held by the author/owner(s). E ciently routing messages from one peer to another. Our focus lies on the rst step: nding peers that are able to answer a given query. In a distributed knowledge management system these Semantic Web techniques can be used for expressing the knowledge shared by peers in a well-dened and formal way. In the model that we propose, peers use a shared ontology to advertise their expertise in the Peer-to-Peer network. The knowledge about the expertise of other peers forms a semantic topology, independent of the underlying network topology. If the peer receives a query, it can decide to forward it to peers about which it knows that their expertise is similar to the subject of the query. The advantage of this approach is that queries will not be forwarded to
14
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Topologies

all or a random set of known peers, but only to those that have a good chance of answering it.

Figure 3.2: Peer To Peer Network(using Star topology)

3.3 Multi-tier.
A true multi-tier architecture that can scale to the needs of any business. By separating the presentation (user interface), application (business logic) and data tier. This architecture can be scaled with no code or disruption to your business. As your user-base or transaction volumes grow, you can simply add hardware to any tier to accommodate the additional load. In addition, separating the tiers gives you the exibility to modify the tiers independent from one another. For example, by separating data access code from the business logic code, when the database servers change you only needs to change the data access code. Because business logic code stays the same, the business logic code does not need to be modied or recompiled.

15
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Topologies

Figure 3.3: Multi-tier Architecture

3.3.1 Presentation Tier:The Presentation Tier is responsible for displaying the user interface and driving that interface using application tier classes and objects. This is what the user sees and interacts with. In this is Smart Client.

3.3.2 Application (Logic) Tier:The Application Tier is responsible for accessing the data tier to retrieve, modify and delete data to and from the data tier and send the results to the presentation tier. This is where complex calculations, business rules and permission policies are applied.

3.3.3 Data Tier:The Data Tier is the database or the source of the data itself.

16
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Singularity

CHAPTER No. 4 SINGULARITY

4.1 Introduction.
Singularity is a research project focused on the construction of dependable systems through innovation in the areas of systems, languages, and tools. Singularity is a new operating system being developed as a basis for more dependable system and application software. Singularity exploits advances in programming languages and tools to create an environment in which software is more likely to be built correctly, program behavior is easier to verify, and run-time failures can be contained.A key aspect of Singularity is an extension model based on Software-Isolated Processes (SIPs), which encapsulate pieces of an application or a system and provide information hiding, failure isolation, and strong interfaces, reads a fragment of the whitepaper presenting the Singularity project. Advances in languages, compilers, and tools open the possibility of signicantly improving software. For example, Singularity uses type-safe languages and an abstract instruction set to enable what we call Software Isolated Processes (SIPs). SIPs provide the strong isolation guarantees of OS processes (isolated object space, separate GCs, separate runtimes) without the overhead of hardware-enforced protection domains. In the current Singularity prototype SIPs are extremely cheap; they run in ring 0 in the kernels address space. Singularity uses these advances to build more reliable systems and applications. For example, because SIPs are so cheap to create and enforce, Singularity runs each program, device driver, or system extension in its own SIP. SIPs are not allowed to share memory or modify their own code. As a result, we can make strong reliability guarantees about the code running in a SIP. We can verify much broader properties about a SIP at compile or install time than can be done for code running in traditional OS processes.

17
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Singularity

4.2 Singulrity Architecture.

Figure 4.2: Singularity Architecture Figure 4.2 depicts the architecture of the Midori OS which is similar to Singularity OS. It is built around three key abstractions: a kernel, software-isolated processes, and channels. The kernel provides the core functionality of the system, including memory management, process creation and termination, channel operations, scheduling, and I/O. Like other microkernels, most of the systems functionality and extensibility exist in processes outside of the kernel.

4.3 Garbage collection


Garbage collection is an essential component of most safe languages, as it prevents memory deallocation errors that can subvert safety guarantees. In Singularity, the kernel and processes object spaces are garbage collected.

18
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Singularity

The large number of garbage collection algorithms and experience strongly suggest that no one garbage collector is appropriate for all system or application code. Singularitys architecture decouples the algorithm, data structures, and execution of each proces ss garbage collector, so it can be selected to accommodate the behavior of code in the process and to run without global coordination. The four aspects of Singularity that make this possible are: each process is a closed environment with its own run-time support; pointers do not cross process or kernel boundaries, so collectors need not consider cross-space pointers; messages on channels are not objects, so agreement on memory layout is only necessary for messages and other data in the Exchange Heap; and the kernel controls memory page allocation, which provides a nexus for coordinating resource allocation. Singularitys run-time systems currently support five types of collectors generational semi-space, generational sliding compacting, an adaptive combination of the previous two collectors, mark-sweep, and concurrent mark-sweep. We currently use the latter for system code, as it has very short pause times during collection. With this collector, each thread has a segregated free list, which eliminates thread synchronization in the normal case. A garbag collection is triggered at an allocation threshold and executes in an independent collection thread that marks reachable objects. During a collection, the collector stops each thread to scan its stack, which introduces a pause time of less than 100 microseconds for typical stacks. The overhead of this collector is higher than non-concurrent collectors, so we use a simpler non-concurrent marksweep collector in applications. Each SIP has its own collector that is solely responsible for collection of objects in the object space. From the garbage collectors perspective, when a thread of control enters or leaves an application (or the kernel) it is treated similarly to a call to or a call-back from native code in conventional garbage collected environments. Garbage collection for different object spaces can therefore be scheduled and run completely independently. If an application employs a stop-theworld collector, a thread is considered stopped with respect to the application object space, even if it is run in the kernel object space due to a kernel call. The thread, however, is stopped upon return to the application process space for the duration of the collection.

19
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Singularity

4.4 Working.
The lowest level x86 interrupt dispatch code is written in assembly language C. Once this code has done its job, it invokes the kernel, whose runtime garbage collector are written in sing (an extended version of Spec, itself an extension of C ) runs in unsafe mode. The hardware abstraction layer is written in C++ runs in safe mode. There is also some C code to handle debugging. The computer BIOS is invoked during 16-bit real mode bootstrap stage; once in 32-bit mode Singilarity never invokes the BIOS again, but invokes device drivers written in Sing. During installation, Common Intermidiate Language (CIL) opcodes are compiled into x86 opcodes using the Bartok compiler.

4.5 Security Design.


Singularity is a microkernel operating system. Unlike most historical microkernel, its components executes in the same address space (process), which contains softwareisolated processes (SIPs). Each SIP has its own data code layout is independent from other SIPs. This SIPs behave like normal processes, but avoid the tasks-switches. Protection in this system is provided by a set of rules called invariants that are veried by static analysis. e.g. :- In the memory-invariants states there must be no cross-references (or memory pointers) between two SIPs; communication channels managed by the operating syatems. Invariants are checked during installation of the application. Most of the intervats rely on the use of safer Memory-managed languages, such as Sing, which hav a garbage collector, allow no arbitrary pointers, and allow code to be veried to meet a certain policy.

20
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Programming language support

CHAPTER No. 5 PROGRAMMING LANGUAGE SUPPORT


Midori is written in Sing#, which is an extension to the Spec# language developed in Microsoft Research. Spec# itself is an extension to Microsofts C# language that provides constructs (pre- and post-conditions and object invariants) for specifying program behavior . Specifications can be statically verified by the Boogie verifier or checked by compilerinserted run-time tests. Sing# extends this language with support for channels and low-level constructs necessary for system code. They developed and implemented programming language extensions for two reasons. First, few languages support message-passing communication. In most cases, message passing is relegated to libraries, which are a syntactically and semantically awkward way of grafting asynchronous operations onto a synchronous language such as C#. Sing# provides first-class support for message-passing communications, which makes this style of communication, and the SIP abstractions, more efficient to implement and more palatable to programmers. Second, integrating a feature into a language allows more aspects of a program to be verified. Singularitys constructs allow communication to be statically verified.

5.1 Channel Contracts


Channel contracts are central to Singularitys isolation architecture and are directly supported in Sing#. Heres a contract describing a simple interaction on a channel.

21
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Programming language support

Figure 5.1

Contract C1 declares three messages: Request, Reply, and Error. Each message specifies the types of arguments contained in the message. For example, Request and Reply both contain a single integer value, whereas Error does not carry any values. Additionally, each message may specify Spec# requires clauses restricting the arguments further. Messages can also be tagged with a direction. The contract is always written from the exporter point of view. Thus, in the example, Request is a message that can be sent by the importer to the exporter, whereas Reply and Error are sent from the exporter to the importer. Without a qualifier, messages can travel in both directions.

5.2 End Point.


Channels in Singularity manifest as a pair of endpoints representing the importing and exporting sides of the channel. Each endpoint has a type that specifies which contract the channel adheres to. Endpoint types are implicitly declared within each contract. A contract C1 is represented as a class, and the endpoint types are nested types within that class as follows: C1.Imp Type of import endpoints of channels with contract C1. C1.Exp Type of export endpoints of channels with contract C1.

22
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Programming language support

5.3 Send /receive Method.


Each contract class contains methods for sending and receiving the messages declared in the contract. The example provides the following methods:

Figure 5.3 The semantics of the Send methods are that they send the message asynchronously. The receive methods block until the given message arrives. If a different message arrives first, an error occurs. Such errors should never occur if the program passes the contract verification check. Unless a receiver knows exactly which message it requires next, these methods are not appropriate. Instead, Sing# provides a switch receive statement

5.4 Verification
Verifying that code executed in Singularity is type safe and satisfies the memory independence invariants is a three-stage process. The Sing# compiler checks type safety, ownership rules, and protocol conformance during compilation. The Singularity verifier checks these same properties on the generated MSIL code. Finally, the back-end compiler should but does not as yet produce a form of typed assembly language that enables these properties to be checked yet again by the operating system. One could argue that only the final stage is strictly necessary for safety. This is of course literally true, but in practice, programmers benefit from finding mistakes as early as possible and from having the errors explained completely, at a high level. Furthermore, the redundant verification guards against errors in the verification itself.

23
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Programming language support

5.5 Compile-Time Reflection.


The closed world of a SIP is incompatible with reflection facilities, an integral part of the Java and CLR environments, which can generate and invoke code at run time. As a consequence, Singularity does not support run-time reflection services. Compile-time reflection (CTR) is a partial substitute for the CLRs full reflection capability. CTR is similar to techniques such as macros, binary code rewriting, aspects, meta-programming, and multi-stage languages. The basic idea is that programs may contain place-holder elements (classes, methods, fields, etc.) that are subsequently expanded by a generator. The ability to produce boiler plate or other repetitious code from a template driven by inspection of existing program structures is a very powerful feature. For example, in Singularity, applications and device drivers declaratively describe their resource requirements, such as I/O ranges and service channels. The startup code for theses processes should be generated automatically from these descriptions. Generators are written in Sing# as transforms. A transform contains a pattern matching program structure and a code template to build new code elements. Combining these two enables a transform to be analyzed and checked independent of the code to which it will be applied. For example, errors, such as generating a call on a non-existent method or calling with the wrong type of object, can be detected in a transform. In this respect, CTR is similar to multi-stage languages. Note that a CTR transform may be part of the trusted computing base, and so it can emit trusted code into an otherwise untrusted process.

24
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Cloud Computing

CHAPTER NO. 6 CLOUD COMPUTING

6.1 Introduction.
Cloud computing is Internet-based computing, whereby shared resources, software, and information are provided to computers and other devices on demand, like the electricity grid. Cloud computing is a paradigm shift following the shift from mainframe to clientserver in the early 1980s. Details are abstracted from the users, who no longer have need for expertise in, or control over, the technology infrastructure in the cloud that supports them. Cloud computing describes a new supplement, consumption, and delivery model for IT services based on the Internet, and it typically involves over-the-Internet provision of dynamically scalable and often virtualized resources. It is a byproduct and consequence of the ease-of-access to remote computing sites provided by the Internet.This frequently takes the form of web-based tools or applications that users can access and use through a web browser as if it were a program installed locally on their own computer. The term cloud is used as a metaphor for the Internet, based on the cloud drawing used in the past to represent the telephone network, and later to depict the Internet in computer network diagrams as an abstraction of the underlying infrastructure it represents. Typical cloud computing providers deliver common business applications online that are accessed from another Web service or software like a Web browser, while the software and data are stored on servers. A key element of cloud computing is customization and the creation of a user-dened experience. Most cloud computing infrastructures consist of services delivered through common centers and built on servers. Clouds often appear as single points of access for all consumers computing needs. The major cloud service providers include Microsoft, Hewlett Packard, IBM, Salesforce, Amazon and Google.

25
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Cloud Computing

6.2 Characteristics
In general, cloud computing customers do not own the physical infrastructure, instead avoiding capital expenditure by renting usage from a third-party provider. They consume resources as a service and pay only for resources that they use. A side-eect of this approach is that overall computer usage rises dramatically, as customers do not have to engineer for peak load limits. In addition, increased high -speed bandwidth makes it possible to receive the same. The cloud is becoming increasingly associated with small and medium enterprises (SMEs) as in many cases they cannot justify or aord the large capital expenditure of traditional IT.

6.3 Architecture
Cloud architecture, the systems architecture of the software systems involved in the delivery of cloud computing, typically involves multiple cloud components communicating with each other over application programming interfaces, usually web services. This resembles the Unix philosophy of having multiple programs each doing one thing well and working together over universal interfaces. Complexity is controlled and the resulting systems are more manageable than their monolithic counterparts. The two most signicant components of cloud computing architecture are known as the front end and the back end. The front end is the part seen by the client, i.e. the computer user. This includes the clients network (or computer) and the applications used to access the cloud via a user interface such as a web browser. The back end of the cloud computing architecture is the cloud itself, comprising various computers, servers and data storage devices.

26
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Cloud Computing

Figure 6.3: Cloud Architecture

6.4 Cloud Storage


Cloud Storage is a model of networked computer data storage where data is stored on multiple virtual servers, generally hosted by third parties, rather than being hosted on dedicated servers. Hosting companies operate large data centers; and people who require their data to be hosted buy or lease storage capacity from them and use it for their storage needs. The data center operators, in the background, virtualize the resources according to the requirements of the customer and expose them as virtual servers, which the customers can themselves manage. Physically, the resource may span across multiple servers.

27
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Application

CHAPTER No. 7 APPLICATION

7.1 Business World


Storing data and backup capability on a central Microsoft Server Being able to move to dierent environments without reinstallation Installation possibility on several dierent topologies The ability to program using .NET languages The concurrency will benet all businesses

7.2 Advantages
1. It is light weighted. 2. Portable to any machine. 3. It will use Internet. 4. This will solve problems such as widespread security vulnerabilities. 5. It wonnt allow unexpected interactions among dierent applications. 6. This OS solve failures caused by errant extensions,plug-ins, and drivers and many more. 7. Operated on Distributed System too. 8. Various application can work on this O.S.

28
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Application

7.3 Disadvantages
1. This is the end of Windows. 2. Some says that, no need to develop MIDORI as unsupported applications can directly run using x86. 3. User will strictly need Internet Connection to use this OS. 4. It may be Expensive.

29
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

Conclusion

CHAPTER No. 8 CONCLUSION

Midori fused with lots of advanced applications.

It

applications to co-exist and

interoperate with existing Windows applications, as well as to provide a Migration path. Virtualization technology helps many companies still using very old applications It as an Internet-centric system that provides an overall "connectedness" between applications and devices makes sense for the future of cloud computing and on-demand services. "Midori is an attempt to create a new foundation for the operating system that runs inside the box, on the desktop and in the rack.

30
Dept. of Computer Engineering, KBTCOE, Nashik

Midori Cloud-Based Operating System

References

REFERENCES

[1] The Official Microsoft Blog by Michael Park (2013-01-15). What is cloud OS? [2] Mary-Jo Foley (2008-06-30). "Goodbye, XP. Hello, Midori". Retrieved 2008-07-22. [3] Marius Oiaga (2008-06-30). "Life After Windows - Microsoft Midori Operating System". Retrieved 2008-07-22. [4] David Worthington Microsoft's plans for post-Windows OS revealed SD Times: Software Development News July 29, 2008. [5] Elizabeth Montalbano (2008-07-29). "Microsoft prepares for end of Windows with Midori". Retrieved 2009-11-28. [6] Madanlal Musuvathi; Shaz Qadeer; Thomas Ball (November 2007). "CHESS: A systematic testing tool for concurrent software". Microsoft. Retrieved 2008-07-22. [6] "Singularity RDK". Retrieved 2012-01-22. [7] David Worthington Microsoft maps out migration from Windows SD Times: Software Development News July 31, 2008 [8] www.google.com [9] www.wikipedia.com

31
Dept. of Computer Engineering, KBTCOE, Nashik

Das könnte Ihnen auch gefallen