StudentShare
Contact Us
Sign In / Sign Up for FREE
Search
Go to advanced search...
Free

Microkernel Operating Systems - Approaches to Operating System Design - Essay Example

Cite this document
Summary
This paper "Microkernel Operating Systems - Approaches to Operating System Design" looks at the meaning of the microkernel operating system; approaches to operating system design; examples of microkernel OS; security and reliability concerns of the current OS; the future of microkernels in mainstream OS…
Download full paper File format: .doc, available for editing
GRAB THE BEST PAPER98.9% of users find it useful

Extract of sample "Microkernel Operating Systems - Approaches to Operating System Design"

Name Tutor Course Date Microkernel OS Introduction Early Microkernel operating systems were smaller in size, partly due to limited computer memory. The number of devices to be controlled by kernel grew with the growth computer capabilities. Despite the fact that kernels were relatively small, they contained file system managers, as well as device drivers. As address spaces escalated from 16 bits to 32 bits, the design of the microkernel was no longer confined to the structural design of the hardware. As a result, the growth of kernels was significant. The epoch of bigger kernels began with BSD (Berkeley UNIX). BSD was used to add extra file systems, TCP/IP complete systems of networking, and several devices that were deemed to be “virtual,” which permitted programs to operate imperceptibly over the network. Moreover, they operated a basic system that consisted of printers, central processing unit, and disks (Heiser and LeVasseur, 97). This continuous growth resulted in kernels. Due to this growth, it is difficult to maintain kernels because they are vulnerable to bags. The microkernel was implemented in order to deal with the escalating kernel growth together with difficulties that might arise. Theoretically, the design of the microkernel permits easier managing of source codes because it is divided into user-space services. Furthermore, this also permits for an escalated steadiness and security. This will minimize the amount of running a source code in kernel mode. For instance, if buffer overflows caused a networking service to crash, the only thing that will be corrupted will be the memory of the networking service. The rest of the networking system will still function. This paper is going to examine the microkernel operating system. In doing so, it will look at the following: the meaning of microkernel operating system; approaches to operating system design; examples of microkernel OS; security and reliability concerns of the current OS; the future of microkernels in mainstream OS; and the features (merits and demerits) of OS. The meaning of microkernel operating system Microkernel refers to device that gives the required mechanisms to develop an OS (operating system), like an inter process communication; a low level management of address space; and management of thread. If privilege levels that are multiple are provided by the hardware, then the only software, which will execute the level that is most privilege (that is kernel mode or supervisor), is the microkernel. The user space contains actual services of the operating system such as user interface, device drivers, file systems, and protocol stacks. There is a close correlation between exokernels and microkernels (Tanenbaum, 18). They assist to support virtual machines. Nanokernel is used to differentiate between high-performance modern machines microkernels from earlier developments that contained system services. Although, the progenitors of microkernels have been replaced by nanokernels, thus the term is being disused. A kernel refers to a program that comprises the central part of the operating system. Everything that takes place in the system is fully controlled by the Kernel. Approaches to operating system design An OS may be open or proprietary. An example of a proprietary system that is supplied by a manufacturer is a mainframe system. In the domain of the PC, Windows systems that are proprietary are offered by Microsoft. Macintosh operating system has been supplied by Apple; and other choices are still available. An example of an open system that is common is UNIX. Nowadays, the computing unit that is ubiquitous is a system that is embedded with the microkernel of embedded OS. Embedded OS ought to be of, high dependability and high accessibility, hard real-time. Aiming at fulfilling the applications demands, on the basis of examining the existing 3 kinds of OS structural design, and design technique that are new, the approaches to the design of an OS is based on intellectual and resolved agent-based and daemon harmonization managing mechanisms. The design approaches of an OS are observed they come up, and they ought to be well understood. The operating system design principles always have the same layout that is used for modeling a design prototype. Moreover, the structure of the design will encompass varying levels of focus on the aspects of design aspects. The sections of design are autonomous to the main text-flow, as well as autonomous from one other. For one to design an OS he/she ought to only select design sections that are useful. Moreover, he/she ought to understand the techniques that are applied; how to generalize these techniques; and design issues and the reason why they may arise. In addition, one ought not to present a survey of design methods, which are organized, but a sequence of the ones that are useful, and which arise in the milieu of the OS. Thus, we should be conscious of design, and able to start doing our own generalizing with regard to approaches to operating system design. Furthermore, a collection of design mechanisms that are useful ought to be presented to enable one use his/her design toolkit (Liedtke, 177). Examples of microkernel operating system Usually, a microkernel OS provides services that are only minimal services, like identifying address spaces in the memory, IPC (inter-process communication), and management of process. Other functionalities, such as management of hardware, are designed during the independent of processes in the kernel. Examples of microkernel OS are: QNX; AIX; MINIX; BeOS; Mac OS X; Hurd; and Mach. Microkernel servers are typically daemon programs, with exception that the microkernel grants privileges to some of them so that they are able to interact with the physical memory, which are off-limits to the majority of programs. This will permit servers, especially device drivers, to be capable interacting with hardware directly. Examples of microkernel servers are ChorusOS. Third generation microkernels, as Chen and Bershad (123) explain, are used characterized by an API that is security oriented, which has a resource access that is controlled by various capabilities, and approaches that are novel, which assists the kernel to manage its resources (Wong, 37) and a design objective of formal analysis, alongside the typical objective of high recital. Examples of Third generation microkernels are: Nova, Covotos, and seL4 Reliability issues of current operating system Limitations of space can prevent someone to scrutinize the reliability issues of operating systems of nowadays. Unreliability in the operating systems can be caused by: interprocess communication; server crashes; client crashes; and data integrity. The operating system of nowadays have been devised and implemented to run a collection of local area networks, with abstract data type being the conceptual model of the system. Operations on server managed objects can be performed by client processes. To implement these operations, messages will be sent (by clients) to the servers, which will in turn send operational results back to clients. The clusters, that is, the processes of the client as well as the server, consist of numerous tasks that run within similar address space and in parallel. Whenever, a task is blocked while waiting for a communication in form a message. Another task is able to run simultaneously. A collection of tasks are usually used to implement tasks, with each starting in the process of message waiting. When that request of carrying out a task arrives, it will be given, at random, to one of the tasks. Operating systems are made up of four components that are fundamental. A user is provided by local computing (such as editing), and multi window interface by the workstations. Formatting of text as well as compilations is done by the pool processors. For instance, a compiler, such as an n-pass can be organized so as to be able to assign, use, and return a number of pool processors at a time. Operating systems also have servers that are specialized to carry out dedicated functions. Examples of such servers are: boot servers; file servers; and bank servers. Also, operating systems have the gateway to other computer systems (Liedtke, 73). Security issues of current operating system Objects of an operating system are usually protected by system capabilities. Every capability has a port field that assists in the identification of the client or the server to be addressed, and an object field that identifies particular objects that are to be worked. UNIX has object numbers that are similar to the to i-node numbers. Current OS also have random numbers that assist in the prevention of user forgery capabilities. Interprocess communication: when a call is made to a remote procedure, a procedure that will locate server with regard to the present port number is called by the client, in the capability of being part of the object that will be operated. Firstly, the location is searched in the cache. A broadcast will be done in cases where that search fails. In view of the fact that the object class can be handled by multiple servers, one of them can be selected by the stub, and gets its PID (process identifier). This will minimize unreliability. Server Crashes: Current operating systems have the capability of occasionally probing servers that are registered to determine whether they can still function. The procedure that is used in the reincarnation of a server is dependent on the nature of the server crash. In cases where the crashed server is not operating, but the microkernel is still in operation, then the kernel will be instructed by the boot server to replace old server processes by creating new ones. If the whole computer system crashed, a special packet will be sent (by the boot server) to the network that the interface card detects. As a result, the interface will assert a RESET signal on the bus of the crashed system. That machine will be caused to reboot itself by these signals, which program in Read Only Memory (ROM). A new kernel will be downloaded into the computer system, with the help of boot server together with the program in ROM. If the computer system is not able to boot, another processor will be get by the boot process, and the server will begin. This procedure will minimize unreliability because it is automated fully and occurs with no intervention of a computer professional. Client crashes: “Are you alive” messages are used by current operating systems to prevent orphans. Suppose a computation that is long is being made by the server, it is likely to get “Are you live messages” occasionally. The moment these messages stop arriving, the orphan will kill the server because it will have concluded that the client is not working. Data integrity: File servers in the current operating system are processes that are user level processes. This means that a number of them are able to run simultaneously, and provide multiple services as well as serves a number of clients. Moreover, a few file servers are implemented to give UNIX-file service. Some are implemented to provide high performance. Therefore, minimizing data integrity is a way of preventing unreliability. The designs of operating systems have been influenced by security issues as well as security considerations. These encompass the method of ensuring that objects are protected with capabilities that are cryptographically secure, communication devices with extermination of orphan and semantics, boot server for robotically rebooting processes that are dead, file server that has files that are absolute, file server that robotically updates simulated objects, file server for limiting usage of resources, and hooks that are used for debugging. Nonetheless, operating systems are used to explicitly program applications that are fault tolerant, like heuristic search and salesman traveling. Future of microkernels in mainstream operating system Currently, the versions of Linux to some extent offer flexibility, but configuring ought to be carried out through compilation of a custom microkernel, which contains only the features that are desired. With Linux microkernel that is custom, individual mechanisms are able to run in microkernel space. To that effect, one component that has been flawed is able to compromise the entire system’s stability. Device drivers together with user space servers, which are on top of the kernel, are protected more due to the fact that mechanisms of protecting memory, which are provided by the kernel and the hardware, normally protects them from each other. This illustrates that 1st generation microkernels did not offer a feasible basis of microkernel OS of the future. This is because of the feasible performance overhead that will be brought in by these operating. The modest overhead that was much more brought in by current microkernels is offset easily by incessantly escalating the speed of the hardware. Moreover, it appears to bee cheap for a platform that is extensible, and which makes it easy the development of future microkernels in the mainstream of the OS. As an interim measure, embedded devices seem to be the market of microkernels. The hardware constraints of the microkernel, such as limited computing power and small memory, make them to effective and excellent (Hohmuth and Schönberg, 77) Furthermore, in view of the fact that embedded components are normally free from the problems that are associated with backward compatibility, it is of necessity to design an embedded system that specializes around a microkernel, other than on a desktop of a personal computer. The QNX microkernel is a real time kernel that has been successful in the market. Nevertheless, from their history, mainstream desktop OS are not very innovative, but will instead rely on notions that have been proven, therefore, the possibility of microkernels making their way into that section in future, are very minimal. An exception that might be significant is that is Mac OS X, which is on the foundation of a BSD Unix base by use of Mach 3.0. Although, if we consider the performance assessments in the papers that have been surveyed, it is not clear with regard to the benefits that are associated while using Mach in this system. Operating system structure Modern OS require careful engineering because they are complex and large. There are 4 different operating system structures, which are exhaustive, as they provide an idea of a number of designs that have been put into practice. These structures include: monolithic system; layered systems, virtual machines and client server model. (Tanenbaum, 18). Monolithic Systems: The approach is also referred to as “The Big Mess”. A collection of procedures are used to write the operating system. Each procedure can call any other procedure at any time it needs to. While using this technique, every procedure in the computer system has an interface that is well-defined in terms of results and parameters. When this approach is used to implement the real object program of the OS, one has to compile all the procedures, and/or files that contain the procedures, then, these procedures are bound into a single-object file, by a linker. In Monolithic systems, there is a possibility of having little structure. The OS provides services, such as system calls by putting the necessary in places that are well defined, like the stack, or a register, and then executes a special instruction that is referred to as a kernel call/supervisor call (Tanenbaum, 19). Layered System: This is a generalized approach that is used for organizing the OS as a hierarchy of layers, with each of them being constructed on top of one besides it. The system is composed six (6) layers. Layer zero (0) deals with processor allocation; it switches between processes when timers expire or interrupts occur. Above this layer (layer zero), processes that are sequential are contained in the system. Each process is able to be programmed without worrying of multiple processes that run a single processor. The fundamental multi-programming of the central processing unit is provided by this layer (Tanenbaum, 21). Virtual Machines: This is the heart of the computer system that carries out multiprogramming as well us monitors the hardware. Although, unlike other OS, files do not extend these virtual machines, instead, they are similar to hardware, which encompasses: Interrupts, user mode/kernel, and I/O. moreover, each virtual machine is capable of running any OS that will directly run the hardware. Different OS are able to be run by different virtual machines. Client-server Model: Majority of the functions of operating systems are implemented in user processes. For a service, such as reading a file, to requested, the request will be sent by a use process to a server process. The work will then be performed by the server process before it sends the answer back. In Server-Client Model, communication between servers and clients will be handled by the kernel. By dividing the OS into parts, which will be capable of handling a fact of the computer; each part will be minimal and easier to manage. In addition, due to the fact that servers normally operate in processes that are user-mode, but not in kernel-mode, they are not able to access the hardware directly. To that effect, the moment file server is activated by a bug, file service might crash, but the entire machine will not be automatically brought down (Tanenbaum, 23). Advantages of microkernel OS A minimal set of core functionality is provided by the microkernel. This functionality will assist in executing the privileges of the kernel. Furthermore, in microkernel OS, abstractions that are of higher level, such as pipes and/or files ought to be designed outside the microkernel, by usage of primitives that are provided by the kernel. The approach microkernel to implementation of an operating system does guarantee some convincing merits over monolithic kernels. The major ones that are vital is the escalated modularity, which brings an added advantage of flexibility in easy configuration the OS for various classes of computer systems, which can either be devices that are handheld to large-servers by selecting to run appropriate file systems and memory managers Disadvantages of microkernel OS Modern OS require careful engineering because they are complex and large. As a result they require personnel. Moreover, from their history, mainstream desktop OS are not very innovative, but will instead rely on notions that have been proven, therefore, the possibility of microkernels making their way into that section in future, are very minimal. Conclusion Despite the fact that microkernels are very tiny, when they are combined with their auxiliary code that is required, they will be larger than the monolithic kernels. Also, the structure of the microkernel OS does not provide the capability of interacting with the hardware directly. As a result, insignificant expenses, with regard to the efficiency of the system, will be created. Therefore, one can find it interesting to make use of the techniques used in microkernel in the near future. Works Cited Tanenbaum, Andrew. Modern Operating Systems, (1992): 18-23 Dean, Forin. Application Program-Unix, Usenix. 1990 Liedtke, James. Towards Real Microkernels. Communications of ACM, 3rd September 1996 Hohmuth, Liedtke and Schönberg, Wolter. Performance of MicroKernel−systems, ACM Symposium on Principles of Operating System Principles, 16th October 1997 Liedtke, Jochen. "Towards Microkernel that are Real Microkernels", Communications, pp. 70–77, 14 September 1996 Liedtke, Jochen. "Improving kernel design". ACM Symposium on Principles of Operating System. Asheville, USA, (1993): 171–179. Accessed on 22nd February, 2010 from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.40.1293&rep=rep1&type=pdf Wong, William. "I/O, I/O, and Virtual Work We Go". Electronic Magazine, 27 April 2007. Accessed on 21 February, 2010 at http://www.elecdesign.com/Articles/Index Alexander, Michael. "Features of Michigan Terminal System". Proceedings, of 18-18 November 1971 Liedtke, Jochen. "Oµ-Kernel Construction". Symposium on Principles of Operating Systems Principles. (1995): 236-246. Chen, Bradley and Bershad, Brian. "Effect of Operating System Structure on performance of Memory". Symposium on Principles of Operating System. Asheville, USA. (1993): 120–33 Liedtke, Jochen and Nayeem; Jaeger, Trent. "Attained IPC performance". 6th Workshop, (1997): 27–33. Accessed on 21st January 2010 at http://ieeexplore.ieee.org/xpl/RecentCon Gray, Charles and Chapman, Matthew. "Itanium's system implementor’s story". Technical Conference. Annaheim, USA. (2005): 262–279. Accessed on 21st February 2010 from http://www.usenix.org/publications/library/proceedings/usenix05/tech/general/gray.html. Heiser, Gernot. "Virtualization and High-performance microkernels on segmented architectures". International Workshop on Embedded Systems, Australia, 2007. Härtig, Hermann and Hohmuth, Michael "Performance of µ-kernel systems". Symposium on Principles of Operating systems (1997): 66–77 Gefflaut, Alain and Jaeger, Tren "Sawmill-multiserver approach". European Workshop. Denmark (2000): 109–114 Elkaduwe, Dhammika and Derrin, Philip "Kernel design: Assurance and isolation of physical memory". Workshop on in Embedded Systems. Glasgow, UK, 2000 Lions, John (1977-08-01), Commentary on UNIX with Source Code, 6th. Ed, Peer-To-Peer Communications, 01 August 1977 Accetta, Baron. Kernel Foundation for Developing UNIX, July, 1986. Heiser, Gernot and LeVasseur, Joshua (January 2006). "Virtual Machine Monitoring Microkernels?" (PDF), OS Review (2006): 94–98. Accessed on 22nd February 2010 from http://l4ka.org/publications/2006/p95-heiser.pdf QNX Website, 22nd February, 2010. Available at http://www.qnx.com Read More
Cite this document
  • APA
  • MLA
  • CHICAGO
(Microkernel Operating Systems - Approaches to Operating System Design Essay, n.d.)
Microkernel Operating Systems - Approaches to Operating System Design Essay. https://studentshare.org/information-technology/2044415-microkernel-os
(Microkernel Operating Systems - Approaches to Operating System Design Essay)
Microkernel Operating Systems - Approaches to Operating System Design Essay. https://studentshare.org/information-technology/2044415-microkernel-os.
“Microkernel Operating Systems - Approaches to Operating System Design Essay”. https://studentshare.org/information-technology/2044415-microkernel-os.
  • Cited: 0 times

CHECK THESE SAMPLES OF Microkernel Operating Systems - Approaches to Operating System Design

How Memory Is Implemented in a Modern Operating System

hellip; Many users will want to expand their computer's memory to take advantage of multimedia applications and to achieve even better performance. Usually a modern operating system can run with 64 MB of RAM.... ddressing of Memory in Windows XPAs Nichol (2006) writes, a program instruction in a modern operating system on an Intel 386 or later CPU can address up to 4GB of memory, using its full 32 bits.... Although operating systems like Linux or FreeBSD show better performance having 64 MB of RAM, Windows XP is able to run on the same hardware....
5 Pages (1250 words) Essay

Operating Systems

The following report highlights the major achievements that have been recognized in the evolution of the operating system. This was… Each user used the machine for a specific period of time with his program and data.... These days virtual memory software has been developed to serve the functions that were initially done by the operating system.... The operating system is in form of levels.... This structured operating system breaks the problem into sub problems which are manageable (Johnston, 2005)....
3 Pages (750 words) Term Paper

Ubuntu Operating System

The main information in the report is to emphasize the significance of the Ubuntu operating system, and its use in the broader society.... Ubuntu operating system is cost effective and easy to use compared to other technologies such as the windows explorer.... buntu operating system is the newest version of a computer operating system built to cater to the immense role computer plays on man's daily activities.... This unit analyses history, features installation, packages, variants, editions and quality of Ubuntu operating system in detail....
5 Pages (1250 words) Assignment

Operating System

In the essay “operating system” the author looks at a high level of productivity operating systems manufacturer who came up with different support options present on their websites.... I would prefer Knowledge Base Search as a support option if encountered an operating system related problem....
1 Pages (250 words) Essay

Monitoring the Performance of the Computer

This is because during an I/O operation, such as disk read information, the operating system kernel checks for data in the page cache to facilitate fast reading of the data. The advancements Operating Systems The two sections that important for this discussion are the Linux I/O and Windows I/O.... This is because during an I/O operation, such as disk read information, the operating system kernel checks for data in the page cache to facilitate fast reading of the data....
1 Pages (250 words) Essay

Operating system

An operating system is a program that acts as an interface between the user and the computer hardware and controls the execution of all kinds of programs.... It keeps tracks of processor and status COMPUTER SCIENCES AND INFORMATION TECHNOLOGY operating system An operating system is a program that acts as an interface between the user and the computer hardware and controls the execution of all kinds of programs.... (Anonymous, 2010)Functions of an operating SystemThe operating system is important and it has the following functions; (Maxwell, 2011)I....
2 Pages (500 words) Assignment

Various Operating Systems

One of the main reasons why this operating system is used is because of its low cost.... Its cost can therefore be ranked at one out or three (3/3) It is the most expensive operating system out of the three.... Windows 10 revealed: The universal windows operating system for pc, tablets, and windows phone.... operating systems al Affiliation operating systems Windows 10 Unix/Linux (Linux Kernel 4 MacOS (El Capitan) Scalability Windows 8 has the best scalability compared to the tow other version....
1 Pages (250 words) Essay

System Design and Operation

This paper focuses on system design and operation.... The author makes calculations in system design line balancing.... In a system design, a line usually includes multiple workstations that have varied work contents.... he above calculations indicate that the selected output for the system's line is within the range of 240 and 600 units per day.... minutes of their individual operations consecutively and operating 15 hours a day that translates to 1080 minutes a day....
5 Pages (1250 words) Term Paper
sponsored ads
We use cookies to create the best experience for you. Keep on browsing if you are OK with that, or find out how to manage cookies.
Contact Us