FACTOID # 23: Wisconsin has more metal fabricators per capita than any other state.
 
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 
   
 
WHAT'S NEW
RELATED ARTICLES
People who viewed "Microkernel" also viewed:
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Microkernel
Graphical overview of a microkernel
Graphical overview of a microkernel

A microkernel is a minimal computer operating system kernel providing only basic operating system services (system calls), while other services (commonly provided by kernels) are provided by user-space programs called servers. Commonly, microkernels provide services such as address space management, thread management, and inter-process communication, but not networking or display for example. Image File history File links Kernel-microkernel. ... Image File history File links Kernel-microkernel. ... A BlueGene supercomputer cabinet. ... An operating system (OS) is a computer program that manages the hardware and software resources of a computer. ... A kernel connects the application software to the hardware of a computer. ... In computing, a system call is the mechanism used by an application program to request service from the operating system. ... An operating system usually segregates the available system memory into kernel space and user space. ... The introduction to this article provides insufficient context for those unfamiliar with the subject matter. ... A thread in computer science is short for a thread of execution. ... The expression Inter-process communication (IPC) describes the exchange of data between one process and another, either within the same computer or over a network. ... This article or section is in need of attention from an expert on the subject. ...


Later extensions of this concept led to new architectures such as nanokernels, exokernels and hardware abstraction layers. In computer science, a nanokernel is a very minimalist operating system kernel. ... Graphical overview of Exokernel Exokernel is an operating system kernel developed by the MIT Parallel and Distributed Operating Systems group, and also a class of similar operating systems. ... A hardware abstraction layer (HAL) is an abstraction layer between the physical hardware of a computer and the software that runs on that computer. ...


Advantages of the microkernel approach to system design: (a) adding a new service does not require modifying the kernel, (b) it is more secure as more operations are done in user mode than in kernel mode, (c) a simpler kernel design and functionality typically results in a more reliable operating system.

Contents

Kernel growth

Early operating system kernels were rather small, partly because computer memory was particularly limited. As the capability of computers grew, the number of devices the kernel had to control also grew. Early versions of UNIX had kernels of quite modest size, even though those kernels contained device drivers and file system managers. When address spaces increased from 16 to 32 bits, kernel design was no longer cramped by the hardware architecture, and kernels began to grow. (See History of Unix). Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®) is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ... Unix or UNIX is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T Bell Labs employees including Ken Thompson, Dennis Ritchie, and Douglas McIlroy. ...


Berkeley UNIX (BSD) began the era of big kernels. In addition to operating a basic system consisting of the CPU, disks and printers, BSD started adding additional file systems, a complete TCP/IP networking system, and a number of "virtual" devices that allowed the existing programs to work invisibily over the network. BSD redirects here; for other uses see BSD (disambiguation). ... In computing, a file system (often also written as filesystem) is a method for storing and organizing computer files and the data they contain to make it easy to find and access them. ... It has been suggested that this article or section be merged with communications protocol. ...


This growth continued for several decades, resulting in UNIX, Linux, and Microsoft Windows kernels with millions of lines of source code. For example Linux 2.6 contains about 2.5 million source lines of code in the kernel (of about 30 million in total), while Windows XP is estimated at twice that. Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®) is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ... Linux (IPA pronunciation: ) is a Unix-like computer operating system family that uses the Linux kernel. ... Microsoft Windows is the name of several families of proprietary software operating systems by Microsoft. ... Source code (commonly just source or code) is any series of statements written in some human-readable computer programming language. ... Linux (IPA pronunciation: ) is a Unix-like computer operating system family that uses the Linux kernel. ... Source lines of code (SLOC) is a software metric used to measure the amount of code in a software program. ... Windows XP is a line of proprietary operating systems developed by Microsoft for use on general-purpose computer systems, including home and business desktops, notebook computers, and media centers. ...


Inter-process communication

Inter-process communication (IPC) is any mechanism which allows separate processes running on the same operating system to intercommunicate, usually by sending messages. This allows the operating system to be built of a number of small programs called servers, which are used by other programs on the system. Most or all hardware support is handled in this fashion, with programs for networking, file systems, graphics, etc. The expression Inter-process communication (IPC) describes the exchange of data between one process and another, either within the same computer or over a network. ... Message in its most general meaning is the object of communication. ...


There are two basic approaches to IPC, synchronous and asynchronous. Synchronous communication behaves like a subroutine call: A request is made, the caller waits, and when the request has been serviced, the caller regains control. This model behaves, from the caller perspective, much like a kernel call to a monolithic kernel. If the kernel cannot process the request immediately, the program is "blocked" (see thread) and the kernel looks for another program that can be run while the first waits. A thread in computer science is short for a thread of execution. ...


In a microkernel system, the synchronous kernel call model must be extended to allow one program to call another. Various microkernels have taken different approaches to the problem.


QNX interprocess communication is synchronous, and consists of sending a message from one process to another and waiting for a reply. This is a single operation, called MsgSend. The message is copied by the kernel from the address space of the sending process to that of the receiving process. If the receiving process is waiting for the message, control of the CPU is transferred at the same time, without a pass through the CPU scheduler. Thus, sending a message to another process and waiting for a reply does not result in "losing one's turn" for the CPU. This tight integration between message passing and CPU scheduling is one of the key mechanisms that makes QNX message passing broadly usable.[citation needed] Most UNIX and Linux interprocess communication mechanisms lack this tight integration, although an implementation of QNX-type messaging for Linux does exist. Mishandling of this subtle issue is a primary reason for the disappointing performance of some other microkernel systems.[citation needed] Minix 3 does have the mechanism for this. (ref. Minix 3 book, p. 183). QNX (pronounced either Q-N-X or Q-nix) is a commercial POSIX-compliant Unix-like real-time operating system, aimed primarily at the embedded systems market. ... Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®) is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ... Linux (IPA pronunciation: ) is a Unix-like computer operating system family that uses the Linux kernel. ... MINIX 3 is a project with the aim to create a small, basic, yet reliable and functional operating system. ...


With asynchronous messaging, the message sender places data on a queue, the message sender is not blocked but continues to run when sending a message, unless the queue is full. The Berkeley sockets model from the UNIX world, which follows the earlier UNIX byte-stream pipe mechanism, fits this model. POSIX adds asynchronous message queues, which queue and send discrete messages. [1] The Berkeley sockets application programming interface (API) comprises a library for developing applications in the C programming language that perform inter-process communication, most commonly across a computer network. ... In Unix and other Unix-like operating systems, a pipeline is a set of processes chained by their standard streams, so that the output of each process (stdout) feeds directly as input (stdin) of the next one. ... POSIX or Portable Operating System Interface for uniX is the collective name of a family of related standards specified by the IEEE to define the application programming interface (API) for software compatible with variants of the Unix operating system. ...


It is common to construct synchronous messaging from asynchronous messaging, by sending a message, then waiting for a reply. (See Inter-process communication for examples of such systems.) But this is inefficient and results in scheduling delays, as described above. Microkernels, with their extensive use of interprocess communication, need higher performance. Thus, most microkernel systems (including Mach, QNX, and Minix 3) offer some form of synchronous messaging. The expression Inter-process communication (IPC) describes the exchange of data between one process and another, either within the same computer or over a network. ... Mach is an operating system microkernel developed at Carnegie Mellon University to support operating system research, primarily distributed and parallel computation. ...


Servers

Microkernel servers are programs like any others, except that the kernel grants some of them privileges to interact with parts of memory that are otherwise off limits to most programs. This allows some servers to interact directly with hardware.


A basic set of servers for a general-purpose microkernel includes file system servers, device driver servers, networking servers, display servers, and user interface device servers. This set of servers (drawn from QNX) provides roughly the set of services offered by a monolithic UNIX kernel. The necessary servers are started at system startup and provide services, such as file, network, and device access, to ordinary application programs. The functions in the kernel of such a system are thus quite limited. With such servers running in the environment of a user application, server development is similar to ordinary application development, rather than the build-and-boot process needed for kernel development. QNX (pronounced either Q-N-X or Q-nix) is a commercial POSIX-compliant Unix-like real-time operating system, aimed primarily at the embedded systems market. ...


Additionally, many "crashes" can be corrected for by simply stopping and restarting the server. (In a traditional system, a crash in any of the kernel-resident code would result in the entire machine crashing, forcing a reboot). However, part of the system state is lost with the failing server, and it is generally difficult to continue execution of applications, or even of other servers with a fresh copy. For example, if a server responsible for TCP/IP connections is restarted, applications could be told the connection was "lost" and reconnect to the new instance of the server. For QNX, this capability is offered as the QNX High Availability Toolkit. Crash-only software refers to computer programs that handle failures by simply restarting, without attempting any sophisticated recovery. ... It has been suggested that Internet Protocols be merged into this article or section. ...


In order to make all servers restartable, some microkernels have concentrated on adding various database-like techniques like transactions, replication and checkpointing need to be used between servers in order to preserve essential state across single server restarts. A good example of this is ChorusOS, which was targeted at high-availability applications in the telecommunications world. Chorus included features to allow any "properly written" server to be restarted at any time, with clients using those servers being paused while the server brought itself back into its original state.[citation needed] The term or expression database originated within the computer industry. ... A database transaction is a unit of interaction with a database management system or similar system that is treated in a coherent and reliable way independent of other transactions that must be either entirely completed or aborted. ... Replication may mean: In biology: Self-replication, when a molecule (or any other pattern) makes a copy of itself DNA replication, the act of copying the genetic material of a cell (DNA) to a daughter cell Semiconservative replication, mechanism of DNA replication Other: replication (computer science), the provision of redundant... To quote Matt Dillon (of DragonFly BSD), Checkpointing allows you to freeze a copy of an application so that, in theory, you can restore the program to that running state at a later point in time. ... ChorusOS is a microkernel real-time operating system designed for embedded systems. ... Copy of the original phone of Graham Bell at the Musée des Arts et Métiers in Paris Telecommunication is the transmission of signals over a distance for the purpose of communication. ...


Essential components

The minimum set of services required in a microkernel seems to be address space management, thread management, inter-process communication, and timer management. A few operating systems approach this minimum, notably QNX and IBM's VM. Everything else can be done in a user program, although device drivers implemented as user programs may require special privileges to access I/O hardware. The introduction to this article provides insufficient context for those unfamiliar with the subject matter. ... y=mx+c ... The expression Inter-process communication (IPC) describes the exchange of data between one process and another, either within the same computer or over a network. ... A simple digital timer. ... QNX (pronounced either Q-N-X or Q-nix) is a commercial POSIX-compliant Unix-like real-time operating system, aimed primarily at the embedded systems market. ... VM is an early and influential virtual machine operating system from IBM, apparently the first true virtual machine system. ...


Start up (booting) of a microkernel can be difficult. The kernel alone may not contain enough services to start up the machine. Thus, either additional code for startup, such as key device drivers, must be placed in the kernel, or means must be provided to load an appropriate set of service programs during the boot process. For this reason, most microkernels do place some "external" code in the kernel itself, notably key device drivers. LynxOS and the original Minix are examples. Many also include a file system in the kernel, which makes booting easier and improves performance. An Internet payphone loading Windows XP In computing, booting is a bootstrapping process that starts operating systems when the user turns on a computer system. ... A device driver, often called a driver for short, is a computer program that enables another program (typically, an operating system) to interact with a hardware device. ... The LynxOS RTOS is a Unix-like real-time operating system from LynuxWorks (formerly Lynx Real-Time Systems). Sometimes known as the Lynx Operating System, LynxOS features POSIX compliance and, more recently, Linux compatibility. ... MINIX is an open source, Unix-like operating system (OS) based on a microkernel architecture. ... In computing, a file system (often also written as filesystem) is a method for storing and organizing computer files and the data they contain to make it easy to find and access them. ...


A key component of a microkernel is a good IPC system. Since many services can be performed by user programs, good means of communication between programs are essential, far more so than in monolithic kernels. The design of the IPC system makes or breaks a microkernel. To be effective, the IPC system must not only have low overhead, but also interact well with CPU scheduling. The expression Inter-process communication (IPC) describes the exchange of data between one process and another, either within the same computer or over a network. ...


Some microkernels are designed for high security applications. EROS and KeyKOS are examples. Part of secure system design is to minimize the amount of trusted code; hence, the need for a microkernel. Work in this direction has not resulted in widely deployed systems, with the notable exception of systems for IBM mainframes such as KeyKOS and IBM's VM.[citation needed] EROS (The Extremely Reliable Operating System) is an operating system developed by the University of Pennsylvania and the Johns Hopkins University. ... KeyKOS is a persistent, pure capability-based operating system. ... KeyKOS is a persistent, pure capability-based operating system. ... VM is an early and influential virtual machine operating system from IBM, apparently the first true virtual machine system. ...


Performance

Traditional performance problems with microkernels revolve around the costs of IPC. The costs are due to the extra work that older microkernels do to copy data between servers and application programs[1], and the extra context switch operations. A context switch is the computing process of storing and restoring the state (context) of a CPU such that multiple processes can share a single CPU resource. ...


Attempts have been made to reduce or eliminate the copying cost by using the memory management unit (MMU) to transfer the ownership of memory pages between processes. This approach, which is used by Mach, adds complexity but reduces the overhead for large data transfers. L4 adds a lightweight mechanism using registers if the amount of data being passed is small, which can dramatically improve performance, both in terms of copying, and avoiding misses in the CPU's cache. By contrast, QNX does all IPC by direct copying, incurring some extra copying costs but reducing code size and complexity. MMU, short for memory management unit, is a class of computer hardware components responsible for handling memory accesses requested by the CPU. Among the functions of such devices are the translation of virtual addresses to physical addresses (i. ... Mach is an operating system kernel developed at Carnegie Mellon University to support operating system research, primarily distributed and parallel computation. ... L4 is, collectively, a family of related computer programs. ... This article is about the computer term. ... QNX (pronounced either Q-N-X or Q-nix) is a commercial POSIX-compliant Unix-like real-time operating system, aimed primarily at the embedded systems market. ...


Systems that support virtual memory and page memory out to disk create additional problems for IPC. Unless both the source and destination areas are currently in memory, copying must be delayed, or staged through kernel-managed memory. Copying through kernel memory adds an extra copy cost and requires extra memory. Delaying copying for paging delays complicates the IPC. QNX avoids this problem by not paging, which is the usual solution for a hard real-time system like QNX.[citation needed] It has been suggested that this article be split into multiple articles. ... A system is said to be hard real-time if the correctness of an operation depends not only upon the logical correctness of the operation but also upon the time at which it is performed. ...


Reducing context-switch cost requires careful design of the interaction between IPC and CPU scheduling. Historically, UNIX IPC was based on the UNIX pipe mechanism and the Berkeley sockets mechanism used for networking.[citation needed] But neither of these has the performance needed for a usable microkernel.[citation needed] Both are unidirectional I/O-type operations, rather than the subroutine-like call-and-return operations needed for efficient user to server interaction. Mach has very general primitives which tend to be used in a unidirectional manner, resulting in scheduling delays. The Vanguard microkernel supported the "chaining" of messages between servers, which reduced the number of context switches in cases where a message required several servers to handle the request. It has been suggested that this section be split into a new article entitled Scheduling (communications). ... The Berkeley sockets application programming interface (API) comprises a library for developing applications in the C programming language that perform inter-process communication, most commonly across a computer network. ... Vanguard was an experimental microkernel developed at Apple Computer in the early 1990s. ...


The question of where to put device drivers owes more to history than design intent. In mainframes, I/O channels have memory management hardware to control device access to memory, and drivers need not be entirely trusted.[2] The Michigan Terminal System (MTS), in 1967, had user-space drivers, the first operating system to be designed in that way. MTS is an operating system for IBM System/360 and its successors that was developed jointly by the following institutions: University of Michigan Wayne State University Simon Fraser University University of Alberta University of British Columbia Rensselaer Polytechnic Institute Durham University University of Newcastle-upon-Tyne Popular programs developed for...


Most minicomputers and microcomputers have not interposed a memory management unit between devices and memory. (Exceptions include the Apollo/Domain workstations of the early 1980s.) Since device drivers thus had the ability to overwrite any area of memory, they were clearly trusted programs, and logically part of the kernel. This led to the traditional driver-in-the-kernel style of UNIX, Linux, and Windows.[2] MMU, short for memory management unit, is a class of computer hardware components responsible for handling memory accesses requested by the CPU. Among the functions of such devices are the translation of virtual addresses to physical addresses (i. ... Apollo/Domain was a range of workstations developed and produced by Apollo Computers, Inc. ... A computer workstation, often colloquially referred to as workstation, is a high-end general-purpose microcomputer designed to be used by one person at a time and which offers higher performance than normally found in a personal computer, especially with respect to graphics, processing power and the ability to carry... A device driver, often called a driver for short, is a computer program that enables another program (typically, an operating system) to interact with a hardware device. ...


As peripheral manufacturers introduced new models, driver proliferation became a headache, with thousands of drivers, each able to crash the kernel, available from hundreds of sources. This unsatisfactory situation is today's mainstream technology.[3]


With the advent of multiple-device network-like buses such as USB and FireWire, more operating systems[citation needed] are separating the driver for the bus interface device and the drivers for the peripheral devices. The latter are good candidates for moving outside the kernel. So a basic feature of microkernels is becoming part of monolithic kernels. Note: USB may also mean upper sideband in radio. ... The 6-pin and 4-pin FireWire Connectors FireWire is Apple Inc. ...


Security

In 2006 the debate about the potential security benefits of the microkernel design has increased[3].


Many attacks on computer systems take advantage of bugs in various pieces of software. For instance, one of the common attacks is the buffer overflow, in which malicious code is "injected" by asking a program to process some data, and then feeding in more data than it stated it would send. If the receiving program does not specifically check the amount of data it received, it is possible that the extra data will be blindly copied into the receiver's memory. This code can then be run under the permissions of the receiver. This sort of bug has been exploited repeatedly, including a number of recent attacks through web browsers. In computer security and programming, a buffer overflow, or buffer overrun, is a programming error which may result in a memory access exception and program termination, or in the event of the user being malicious, a breach of system security. ... An example of a web browser (Internet Explorer) showing the main Wikipedia web page. ...


To see how a microkernel can help address this, first consider the problem of having a buffer overflow bug in a device driver. Device drivers are notoriously buggy[4], but nevertheless run inside the kernel of a traditional operating system, and therefore have "superuser" access to the entire system[5]. Malicious code exploiting this bug can thus take over the entire system, with no boundaries to its access to resources [6]. For instance, under open-source monolithic kernels such as Linux or the BSDs a successful attack on the networking stack over the internet could proceed to install a backdoor that runs a service with arbitrarily high privileges, so that the intruder may abuse the infected machine in any way[7] and no security check would be applied because the rootkit is acting from inside the kernel. Even if appropriate steps are taken to prevent this particular attack[8], the malicious code could simply copy data directly into other parts of the kernel memory, as it is shared among all the modules in the kernel. Windows XP loading drivers during a Safe Mode bootup A device driver, or a software driver is a specific type of computer software, typically developed to allow interaction with hardware devices. ... It has been suggested that Open source culture be merged into this article or section. ... Linux (IPA pronunciation: ) is a Unix-like computer operating system family that uses the Linux kernel. ... BSD redirects here; for other uses see BSD (disambiguation). ... A backdoor in a computer system (or cryptosystem or algorithm) is a method of bypassing normal authentication or securing remote access to a computer, while attempting to remain hidden from casual inspection. ... A rootkit is a set of software tools intended to conceal running processes, files or system data from the operating system. ...


A microkernel system is somewhat more resistant to these sorts of attacks[9] for two reasons. For one, an identical bug in a server would allow the attacker to take over only that program, not the entire system; in other words, microkernel designs obey the principle of least authority. This isolation of "powerful" code into separate servers helps isolate potential intrusions, notably as it allows a CPU's memory management unit to check for any attempt to copy data between the servers. In computer science and other fields the principle of minimal privilege, also known as the principle of least privilege or just least privilege, requires that in a particular abstraction layer of a computing environment every module (such as a process, a user or a program on the basis of the... MMU, short for memory management unit, is a class of computer hardware components responsible for handling memory accesses requested by the CPU. Among the functions of such devices are the translation of virtual addresses to physical addresses (i. ...


But a more important reason for the additional security is that the servers are isolated in smaller code libraries, with well defined interfaces. That means that one can audit the code, as its smaller size makes this easier to do (in theory) than if the same code was simply one module in a much larger system. This doesn't mean that the code is any more secure, per se, but that it should contain less bugs in general. This not only makes the system more secure, but more stable as well.


Key to the argument is the fact that a microkernel, as a rule, isolates high-privilege code in protected memory because they run in separate servers. This isolation could likely be applied to a traditional kernel as well. However, it is precisely this mechanism that forces data to be passed around between programs, leading to the microkernel's performance difficulties discussed above. In the past, outright performance was the main concern of most programs. Today this is no longer quite as powerful an argument as it once was, as security problems become endemic in a well-connected world[10].


Finally, it should be noted that securing the kernel, although a necessary condition[11], is not sufficient to guarantee overall system security. For instance, if a bug remained in the system's web browser that allowed attack, some shellcode uploaded through that attack could still legally ask the file system to erase all the browser owner's files via the normal IPC messages. Securing against these sorts of "reasonable requests" is considerably more difficult and requires applying the principle of least authority in the design of the entire operating system, not just the (micro)kernel. The EROS microkernel operating system, and its descendants CapROS and Coyotos, are research projects that strive to do just that. A shellcode is a relocatable piece of machine code used as the payload in the exploitation of a software bug which allows an unauthorised user to communicate with the computer via the operating systems command line as a result of exploiting a vulnerability in software running on the machine. ... EROS (The Extremely Reliable Operating System) is an operating system developed by the University of Pennsylvania and the Johns Hopkins University. ... CapROS [1] (the Capability-based Reliable Operating System) is an open source operating system. ... Coyotos is a secure operating system currently being developed by researchers[1] at the Johns Hopkins Universitys Systems Research Laboratory[2]. Objectives Though it has many objectives, one of the most interesting is to become the first formally verified operating system. ...


Operating Systems

First generation microkernels: AmigaOS is the default native operating system of the Amiga personal computer. ... The Amoeba distributed operating system is a microkernel-based research operating system written by Andrew S. Tanenbaum at Vrije Universiteit. ... Brainix is a microkernel-based, Unix-like operating system. ... K42 is an open-source research operating system currently being developed primarily at IBM TJ Watson Research Center for cache-coherent 64-bit multiprocessor systems. ... KeyKOS is a persistent, pure capability-based operating system. ... In computer science, a nanokernel is a very minimalist operating system kernel. ... EROS (The Extremely Reliable Operating System) is an operating system developed by the University of Pennsylvania and the Johns Hopkins University. ... CapROS [1] (the Capability-based Reliable Operating System) is an open source operating system. ... Coyotos is a secure operating system currently being developed by researchers[1] at the Johns Hopkins Universitys Systems Research Laboratory[2]. Objectives Though it has many objectives, one of the most interesting is to become the first formally verified operating system. ... The LSE/OS kernel was a research kernel designed by a French research laboratory named Epita System Laboratory. ... In computer science, a nanokernel is a very minimalist operating system kernel. ... The MERT (Multi-Environment Real-Time) operating system was one of the earliest to be constructed using an organizational concept that later became known as a micro-kernel. MERT was created in the 1970s at Bell Labs, and was a spinoff of Unix. ... MINIX is an open source, Unix-like operating system (OS) based on a microkernel architecture. ... MINIX 3 is a project with the aim to create a small, basic, yet reliable and functional operating system. ... MorphOS is a mixed proprietary and open source operating system produced for the PegasosPPC hardware platform by a core development team and contributors. ... Methotrexate (abbreviated MTX; formerly known as amethopterin) is an antimetabolite drug used in treatment of cancer and autoimmune disease. ... The Phoenix-RTOS is an open source unix-like real-time operating system based on a microkernel, aimed at the embedded systems market. ... Singularity is a Microsoft Research project to build a highly-dependable operating system in which the kernel, device driver, and applications are all written in managed code. ... Spring was an experimental microkernel-based object oriented operating system developed at Sun Microsystems in the early 1990s. ... Symbian OS is an operating system, designed for mobile devices, with associated libraries, user interface frameworks and reference implementations of common tools, produced by Symbian Ltd. ... VSTa is an operating system with a microkernel architecture, with all drivers and filesystems residing in userspace mode. ...

Second generation microkernels: ChorusOS is a microkernel real-time operating system designed for embedded systems. ... Mach is an operating system kernel developed at Carnegie Mellon University to support operating system research, primarily distributed and parallel computation. ... The GNU Hurd (usually referred to as the Hurd) is a computer operating system kernel. ... NEXTSTEP is the original object-oriented, multitasking operating system that NeXT Computer, Inc. ... The OPENSTEP desktop. ... MkLinux is an Open Source Software project, initiated by OSF Research Institute and Apple Computer, in order to port Linux to the PowerPC platform. ... XNU is the name of the kernel that Apple acquired and developed for use in the Mac OS X operating system and released as open source as part of the Darwin operating system. ... Mac OS X (official IPA pronunciation: ) is a line of proprietary, graphical operating systems developed, marketed, and sold by Apple Inc. ...

L4 is, collectively, a family of related computer programs. ... The GNU Hurd (usually referred to as the Hurd) is a computer operating system kernel. ... QNX (pronounced either Q-N-X or Q-nix) is a commercial POSIX-compliant Unix-like real-time operating system, aimed primarily at the embedded systems market. ...

Notes

  1. ^ Jonathan Shapiro, Vulnerabilities in Synchronous IPC Designs (2003), in the last paragraph of section 3.1; citing J. Chen and B. Bershad, the impact of operating system structure on memory system performance, ACM Symposium on Operating Systems Principles (SOSP) 1993.
  2. ^ John Lions (August 1, 1977). Lions' Commentary on UNIX 6th Edition, with Source Code. Peer-To-Peer Communications. 1573980137. 
  3. ^ Andrew S. Tanenbaum, Tanenbaum-Torvalds debate, part II; citing Tanenbaum, Herder and Bos, Can we make Operating Systems Reliable and Secure?, Computer, may 2006
  4. ^ M. Swift, M. Annamalai, B. Bershad, and H. Levy, recovering device drivers, USENIX OSDI 2004, in the introduction; citing A. Chou, J. Yang, B. Chelf, S. Hallem, and D. Engler, An empirical study of operating system errors, in Proceedings of the 18th ACM Symposium on Operating Systems Principles, Oct. 2001.
  5. ^ H. Wenliang Du and S. Chapin, Detecting Exploit Code Execution in Loadable Kernel Modules. Proceedings of the 20th annual Computer Security Applications Conference, 2004
  6. ^ Linux Kernel Bluetooth CAPI Packet Remote Buffer Overflow Vulnerability, a SecurityFocus advisory describing a real-world, remotely exploitable kernel buffer overflow caused by a buggy device driver.
  7. ^ "stealth", Kernel Rootkit Experiences, Phrack issue 61, describes such a technique in full.
  8. ^ Detecting exploit code execution in loadable kernel modules, op. cit.
  9. ^ A. Edwards and G. Heiser, Components + Security = OS Extensibility, Australasian Computer Systems Architecture Conference, Goldcoast, Queensland Australia, 2000 (IEEE Computer Society Press).
  10. ^ Tanenbaum, Herder and Bos, Can we make Operating Systems Reliable and Secure?, op. cit.
  11. ^ see trusted computing base

Jonathan S. Shapiro is a expert in low-level computer system programing. ... 1993 (MCMXCIII) was a common year starting on Friday of the Gregorian calendar and marked the Beginning of the International Decade to Combat Racism and Racial Discrimination (1993-2003). ... Lions Commentary on UNIX 6th Edition, with Source Code by John Lions (1976) contains the complete source code of the 6th Edition Unix kernel plus a commentary. ... Dr. Andrew Stuart Andy Tanenbaum (born 1944) is a professor of Computer Science at Vrije Universiteit, Amsterdam in the Netherlands. ... Computer is an IEEE Computer Society practitioner-oriented magazine issued to all members of the society. ... May 2006 : ← - January - February - March - April - May - June - July - August - September - October - November - December- → May 1, 2006 (Monday) Chinese Patriotic Catholic Association outraged Vatican by planning to ordain another bishop, Liu Xinhong in Anhui Province. ... The USENIX Association is the Advanced Computing Technical Association. ... 2004 (MMIV) was a leap year starting on Thursday of the Gregorian calendar. ... 2004 (MMIV) was a leap year starting on Thursday of the Gregorian calendar. ... SecurityFocus. ... Phrack is an underground ezine made by and for hackers that has been around since November 17, 1985. ... An organizational unit of the Institute of Electrical and Electronics Engineers (IEEE), established in 1963 when the American Institute of Electrical Engineers (AIEE) and the Institute of Radio Engineers (IRE) merged to create the IEEE. At the time of the merger, the AIEE’s Subcommittee on Large-Scale Computing... A trusted computing base (TCB) is the totality of protection mechanisms within a computer system, including hardware, firmware, and software, the combination of which is responsible for enforcing a computer security policy. ...

Further reading

  • scientific articles about microkernels (on CiteSeer), including:
    • Hermann Härtig, Michael Hohmuth, Jochen Liedtke, Sebastian Schönberg (1997). "The performance of μ-kernel-based systems". Proceedings of the sixteenth ACM symposium on Operating systems principles. ISBN 0-89791-916-5. 
    • Dan Hildebrand (1992). "An Architectural Overview of QNX". Proceedings of the Workshop on Micro-kernels and Other Kernel Architectures. ISBN 1-880446-42-1.  - the basic QNX reference.
    • Tanenbaum, A., Herder, J. and Bos, H. (May 2006). "Can We Make Operating Systems Reliable and Secure?". Computer.  -the basic reliable reference.
    • Black, D.L., Golub, D.B., Julin, D.P., Rashid, R.F., Draves, R.P., Dean, R.W., Forin, A., Barrera, J., Tokuda, H., Malan, G., and Bohman, D. (March 1992). "Microkernel Operating System Architecture and Mach". J. of Information Processing 14(4).  - the basic Mach reference.
  • MicroKernel page from the Portland Pattern Repository
  • The Tanenbaum-Torvalds Debate, 1992.01.29
  • Linus Torvalds about the microkernels again, 2006.05.09

CiteSeer is a public speciality scientific and academic search engine and digital library that was created by researchers Dr. Steve Lawrence, Kurt Bollacker and Dr. Lee Giles while they were at the NEC Research Institute (now NEC Labs), Princeton, New Jersey, USA. CiteSeer crawls and harvests academic and scientific documents... He was behind the original implementation of L4 microkernel when he was in University of Karlsruhe in Germany. ... The Portland Pattern Repository (PPR) is the subdirectory c2. ...

See also


  Results from FactBites:
 
microkernel: Information from Answers.com (2769 words)
Microkernel servers are programs like any others, except that the kernel grants some of them privileges to interact with parts of memory that are otherwise off limits to most programs.
In order to make all servers restartable, some microkernels have concentrated on adding various database-like techniques like transactions, replication and checkpointing need to be used between servers in order to preserve essential state across single server restarts.
The Vanguard microkernel supported the "chaining" of messages between servers, which reduced the number of context switches in cases where a message required several servers to handle the request.
Microkernel - Wikipedia, the free encyclopedia (2683 words)
Commonly, microkernels provide services such as address space management, thread management, and inter-process communication, but not networking or display for example.
Advantages of the microkernel approach to system design: (a) adding new service does not require modifying the kernel, (b) it is more secure as more operations are done in user mode than in kernel mode, (c) a simpler kernel design and functionality typically results in a more reliable operating system.
Microkernels, with their extensive use of interprocess communication, need higher performance.
  More results at FactBites »

 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m