Beruflich Dokumente
Kultur Dokumente
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
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
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.
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
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
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
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.
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
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.
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
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.
9
Dept. of Computer Engineering, KBTCOE, Nashik
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.
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.
11
Dept. of Computer Engineering, KBTCOE, Nashik
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
Topologies
13
Dept. of Computer Engineering, KBTCOE, Nashik
Topologies
Topologies
all or a random set of known peers, but only to those that have a good chance of answering it.
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
Topologies
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
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
Singularity
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.
18
Dept. of Computer Engineering, KBTCOE, Nashik
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
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.
20
Dept. of Computer Engineering, KBTCOE, Nashik
21
Dept. of Computer Engineering, KBTCOE, Nashik
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.
22
Dept. of Computer Engineering, KBTCOE, Nashik
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
24
Dept. of Computer Engineering, KBTCOE, Nashik
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
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
Cloud Computing
27
Dept. of Computer Engineering, KBTCOE, Nashik
Application
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
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
Conclusion
It
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
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