FACTOID # 99: Thinking of becoming a teacher? Head to Switzerland. Teaching salaries there start at $US 33,000.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Hybrid kernel
Graphical overview of a hybrid kernel
Graphical overview of a hybrid kernel

Hybrid kernel is a kernel architecture based on combining aspects of microkernel and monolithic kernel architectures used in computer operating systems. The category is controversial due to the similarity to monolithic kernel; the term has been dismissed by some as just marketing. The usually accepted categories are monolithic kernels and microkernels (with nanokernels and exokernels seen as more extreme versions of microkernels). Image File history File links Unbalanced_scales. ... Image File history File links This is a lossless scalable vector image. ... Image File history File links This is a lossless scalable vector image. ... A kernel connects the application software to the hardware of a computer. ... 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. ... It has been suggested that Monolithic system be merged into this article or section. ... This article is about the machine. ... An operating system (OS) is a software that manages computer resources and provides programmers with an interface used to access those resources. ... It has been suggested that Monolithic system be merged into this article or section. ... 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. ... In computer science, a nanokernel or picokernel 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. ...


The idea behind this quasi-category is to have a kernel structure similar to a microkernel, but implemented as a monolithic kernel. In contrast to a microkernel, all (or nearly all) services are in kernel space. As in a monolithic kernel, there is no performance overhead associated with microkernel message passing and context switching between kernel and user mode. Also, as with monolithic kernels, there are none of the benefits of having services in user space. In computer engineering the kernel is the core of an operating system. ... An operating system usually segregates the available system memory into kernel space and user space. ...

Contents

Controversy

As mentioned above, a hybrid kernel is like a monolithic kernel in that there is no performance overhead associated with microkernel and there are none of the benefits of having services in user space.


That leads to the controversy - does having a microkernel-like structure in a monolithic kernel make such a distinct difference that another category of kernels is needed?


Proponents

Microsoft normally uses the term "microkernel" and sometimes "modified microkernel", "modified microkernel or macrokernel"[1] when describing the kernel part of the architecture of the Windows NT operating system line. The whole architecture is said to be composed of a "modified microkernel", drivers, Executive, and HAL, and GDI/GDI+ all in kernel space. There are user space APIs supporting different OS environments. The Windows NT operating system familys architecture consists of two layers (user mode and kernel mode), with many different modules within both of these layers. ... The Windows NT operating system familys architecture consists of two layers (user mode and kernel mode), with many different modules within both of these layers. ... A hardware abstraction layer (HAL) is an abstraction layer, implemented in software, between the physical hardware of a computer and the software that runs on that computer. ... The Graphics Device Interface (GDI, sometimes called Graphical Device Interface) is one of the three core components or subsystems, together with the kernel and the Windows API for the user interface (GDI window manager) of Microsoft Windows. ...


Opponents

Many operating systems and kernel experts have dismissed the label as meaningless, and just marketing:


Linus Torvalds said of this issue: "As to the whole 'hybrid kernel' thing - it's just marketing. It's 'oh, those microkernels had good PR, how can we try to get good PR for our working kernel? Oh, I know, let's use a cool name and try to imply that it has all the PR advantages that that other system has'."[2] Linus Benedict Torvalds ( ; ; born December 28, 1969 in Helsinki, Finland) is a Finnish software engineer best known for initiating the development of the Linux kernel. ...


Sonny Rao of the IBM LTC Kernel Performance File/IO team said: "It's wrong...I think this talk ... was born from some kind of half-assed marketing game to try and make XXX kernel seem 'more advanced.' 'Micro' and 'hybrid' are always better/more advanced than 'Monolithic' right??"[3]


Hybrid kernel examples

BeOS is an operating system for personal computers which began development by Be Inc. ... The tone or style of this article or section may not be appropriate for Wikipedia. ... Syllable is a free and open source operating system for Intel x86 Pentium and compatible processors. ... BSD redirects here. ... DragonFly BSD is a free Unix-like operating system created as a fork of FreeBSD 4. ... Mach is an operating system kernel developed at Carnegie Mellon University to support operating system research, primarily distributed and parallel computation. ... AmigaOS is the default native operating system of the Amiga personal computer. ... 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. ... Darwin is a free and open source, Unix-like operating system first released by Apple Inc. ... Mac OS X (pronounced ) is a line of graphical operating systems developed, marketed, and sold by Apple Inc. ... NetWare is a network operating system and the set of network protocols it uses to talk to client machines on the network. ... Plan 9 from Bell Labs is a distributed operating system, primarily used as a research vehicle. ... Inferno is an operating system for creating and supporting distributed services. ... The Windows NT operating system familys architecture consists of two layers (user mode and kernel mode), with many different modules within both of these layers. ... Windows NT (New Technology) is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. ... Windows 2000 (also referred to as Win2K) is a preemptive, interruptible, graphical and business-oriented operating system designed to work with either uniprocessor or symmetric multi-processor computers. ... Windows Server 2003 (also referred to as Win2K3) is a server operating system produced by Microsoft. ... Windows XP is a line of operating systems developed by Microsoft for use on personal computers, including home and business desktops, notebook computers, and media centers. ... Windows Vista (pronounced ) is a line of operating systems developed by Microsoft for use on personal computers, including home and business desktops, laptops, Tablet PCs, and media centers. ... Windows Server 2008 is the most recent release of Microsoft Windowss server line of operating systems. ... ReactOS is a project to develop an operating system that is binary-compatible with application software and device drivers for Microsoft Windows NT version 5. ...

NT kernel

The Windows NT operating system family's architecture consists of two layers (user mode and kernel mode), with many different modules within both of these layers.
The Windows NT operating system family's architecture consists of two layers (user mode and kernel mode), with many different modules within both of these layers.

The best known example of a hybrid kernel is the NT kernel inside Windows NT, Windows 2000, Windows XP, Windows Server 2003, Windows Vista and Windows Server 2008. NT-based Windows is classified as a hybrid kernel (or a macrokernel[1]) rather than a monolithic kernel because the emulation subsystems run in user-mode server processes, rather than in kernel mode as on a monolithic kernel, and further because of the large number of design goals which resemble design goals of Mach (in particular the separation of OS personalities from a general kernel design). Conversely, the reason NT is not a microkernel system is because most of the system components run in the same address space as the kernel, as would be the case with a monolithic design (in a traditional monolithic design, there would not be a microkernel per se, but the kernel would implement broadly similar functionality to NT's microkernel and kernel-mode subsystems). Image File history File links Windows_2000_architecture. ... Image File history File links Windows_2000_architecture. ... User mode refers to two similar concepts in computer architecture. ... In processors with memory protection, kernel mode (as opposed to user mode) is the mode in which the operating system kernel runs. ... The Windows NT operating system familys architecture consists of two layers (user mode and kernel mode), with many different modules within both of these layers. ... Windows NT (New Technology) is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. ... Windows 2000 (also referred to as Win2K) is a preemptive, interruptible, graphical and business-oriented operating system designed to work with either uniprocessor or symmetric multi-processor computers. ... Windows XP is a line of operating systems developed by Microsoft for use on personal computers, including home and business desktops, notebook computers, and media centers. ... Windows Server 2003 (also referred to as Win2K3) is a server operating system produced by Microsoft. ... Windows Vista (pronounced ) is a line of operating systems developed by Microsoft for use on personal computers, including home and business desktops, laptops, Tablet PCs, and media centers. ... Windows Server 2008 is the most recent release of Microsoft Windowss server line of operating systems. ...


Description

The Windows NT design included many of the same objectives as Mach, the archetypal microkernel system, one of the most important being its structure as a collection of modules which communicate via well-known interfaces, with a small microkernel limited to core functions such as first-level interrupt handling, thread scheduling and synchronization primitives. This allows for the possibility of using either direct procedure calls or interprocess communication (IPC) to communicate between modules, and hence for the potential location of modules in different address spaces (for example in either kernel space or server processes). Other design goals shared with Mach included support for diverse architectures, a kernel with abstractions general enough to allow multiple operating system personalities to be implemented on top of it and an object-oriented organisation.[5][1] Mach is an operating system kernel developed at Carnegie Mellon University to support operating system research, primarily distributed and parallel computation. ... Inter-process communication (IPC) is the exchange of data between one process and another, either within the same computer or over a network. ...


The reason NT is not a microkernel system is that nearly all of the subsystems providing system services, including the entire Executive, run in kernel mode (in the same address space as the microkernel itself), rather than in user-mode server processes, as would be the case with a microkernel design. This is an attribute NT shares with early versions of Mach, as well as all commercial systems based on Mach, and stems from the superior performance offered by using direct procedure calls in a single memory space, rather than IPC, for communication amongst subsystems.


In describing NT, the list of which subsystems do not run in kernel mode is far shorter than the list of those that do. The user-mode subsystems on NT include one or more emulation subsystems, each of which provides an operating system personality to applications, the Session Manager Subsystem (smss.exe), which starts the emulation subsystems during system startup and the Local Security Authority Subsystem Service (lsass.exe), which enforces security on the system. The subsystems are not written to a particular OS personality, but rather to the native NT API (or Native API). Session Manager Subsystem, or smss. ... Local Security Authority Subsystem Service (LSASS), is a process in Microsoft Windows operating systems that is responsible for enforcing the security policy on the system. ... The Native API (with capitalized N) is the publicly mostly undocumented application programming interface used internally by the Windows NT family of operating systems produced by Microsoft. ...


The primary operating system personality on Windows is the Windows API, which is always present. The emulation subsystem which implements the Windows personality is called the Client/Server Runtime Subsystem (csrss.exe). On versions of NT prior to 4.0, this subsystem process also contained the window manager, graphics device interface and graphics device drivers. For performance reasons, however, in version 4.0 and later, these modules (which are often implemented in user mode even on monolithic systems, especially those designed without internal graphics support) run as a kernel-mode subsystem.[1] The Windows API, informally WinAPI, is the name given by Microsoft to the core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. ... Client/Server Runtime Subsystem, or csrss. ...


As of 2007, one other operating system personality, UNIX, is offered as an optionally installed system component on certain versions of Windows Vista and Windows Server 2003 R2. The associated subsystem process is the Subsystem for UNIX-Based Applications (psxss.exe), which was formerly part of a Windows add-on called Windows Services for Unix. An OS/2 subsystem (os2ss.exe) was supported in older versions of Windows NT, as was a very limited POSIX subsystem (psxss.exe). The POSIX subsystem was supplanted by the UNIX subsystem, hence the identical executable name.[6] Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®, sometimes also written as or ® with small caps) is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ... Microsoft Windows Services for UNIX (SFU) is a package which provides a Unix compliant environment on Microsoft Windows computers. ... OS/2 is a computer operating system, initially created by Microsoft and IBM, then later developed by IBM exclusively. ... POSIX or Portable Operating System Interface[1] 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. ...


Applications that run on NT are written to one of the OS personalities, and not to the native NT API, which is largely undocumented (with the exception of routines used in device driver development). An OS personality is implemented via a set of user-mode DLLs (see Dynamic-link library), which are mapped into application processes' address spaces as required, together with an emulation subsystem server process (as described previously). Applications access system services by calling into the OS personality DLLs mapped into their address spaces, which in turn call into the NT run-time library (ntdll.dll), also mapped into the process address space. The NT run-time library services these requests by trapping into kernel mode to either call kernel-mode Executive routines or make Local Procedure Calls (LPCs) to the appropriate user-mode subsystem server processes, which in turn use the NT API to communicate with application processes, the kernel-mode subsystems and each other.[6] This article is about dynamic libraries implemented by Microsoft. ... The local procedure call (LPC) facility is a service provided by the Microsoft Windows NT kernel for light weight message queue between processes on the same computer. ...


Plan 9 kernel

Description

One of the main design goals is to represent all resources as files and use a single communication protocol for both local and remote resources. The Plan 9 kernel uses both in-kernel (kernel mode) but more commonly user mode servers. Communication with user mode servers - fileservers - uses 9P. Kernel mode examples are device drivers and network interfaces (ethernet). Examples of user mode are networking (IP stack), environment, mailboxes, serial-console multiplexor, spam filter, CD interpreter, foreign filesystems and tapes, backup system, window system, and /proc. Because the interface to 'in-kernel' and 'user space' file servers is the same this also means that components can be moved (or reimplemented) inside and/or outside the kernel without making any changes to the system; for example there have been implementations of the ip stack and graphics systems of both kinds, and they can even coexists in the same running system thanks to the use of namespaces. [7]. Plan 9 from Bell Labs is a distributed operating system, primarily used as a research vehicle. ... This article or section does not cite its references or sources. ... 9P, or the Plan 9 Filesystem Protocol, is a network protocol developed for the Plan 9 distributed operating system as the means of connecting the components of a Plan 9 system (site). ...


Classification

Due to the extensive use of user mode fileservers together with some in-kernel systems, this is a simpler candidate for inclusion as a hybrid kernel.


See also

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. ... In computer science, a nanokernel or picokernel is a very minimalist operating system kernel. ... In computer science, a single address space operating system (or SASOS) is a type of operating system with simple memory management which uses only one globally shared virtual address space. ...

Notes

  1. ^ a b c d MS Windows NT Kernel-mode User and GDI White Paper. Microsoft Corporation (2007). Retrieved on 2007-03-01.
  2. ^ Linus Torvalds, Real World Technologies Discussion Forum (2006-05-09)
  3. ^ Sonny Rao, Real World Technologies Discussion Forum (2006-05-08)
  4. ^ An Overview of the NetWare Operating System(2007-02-07)
  5. ^ Silberschatz, Abraham; Peter Baer Galvin and Greg Gagne (2005). Operating System Concepts; 7th Edition. Hoboken, New Jersey: John Wiley & Sons Inc. ISBN 978-0-471-69466-3. 
  6. ^ a b Probert, Dave (2005). Overview of Windows Architecture. Using Projects Based on Internal NT APIs to Teach OS Principles. Microsoft Research/Asia - Beijing. Retrieved on 2007-03-01.
  7. ^ Why Plan 9 matters, Geoff Collyer (2006-09-12)

Year 2007 (MMVII) was a common year starting on Monday of the Gregorian calendar in the 21st century. ... is the 60th day of the year (61st in leap years) in the Gregorian calendar. ... Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ... is the 129th day of the year (130th in leap years) in the Gregorian calendar. ... Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ... is the 128th day of the year (129th in leap years) in the Gregorian calendar. ... Year 2007 (MMVII) was a common year starting on Monday of the Gregorian calendar in the 21st century. ... is the 38th day of the year in the Gregorian calendar. ... Year 2007 (MMVII) was a common year starting on Monday of the Gregorian calendar in the 21st century. ... is the 60th day of the year (61st in leap years) in the Gregorian calendar. ... Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ... is the 255th day of the year (256th in leap years) in the Gregorian calendar. ...

References

  • Linus Torvalds on Real World Tech
  • Hybrid Kernel category criticised
  • Sysinternals article about the NT Native API
An operating system (OS) is a software that manages computer resources and provides programmers with an interface used to access those resources. ... A kernel connects the application software to the hardware of a computer. ... 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. ... It has been suggested that Monolithic system be merged into this article or section. ... In computer engineering the kernel is the core of an operating system. ... In computing, loadable kernel modules, or LKM, are object files that contain code to extend the running kernel, or so-called base kernel, of an operating system. ... In computer science, a nanokernel or picokernel is a very minimalist operating system kernel. ... A device driver, or software driver is a computer program allowing higher-level computer programs to interact with a computer hardware device. ... 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. ... Process management is the ensemble of activities of planning and monitoring the performance of a process, especially in the sense of business process, often confused with reengineering. ... In computing, a process is an instance of a computer program that is being executed. ... In computing, multitasking is a method by which multiple tasks, also known as processes, share common processing resources such as a CPU. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is... In computing, an interrupt is an asynchronous signal from hardware or software indicating the need for attention. ... Protected mode is an operational mode of x86-compatible CPUs of the 80286 series or later. ... In computer terms, supervisor mode is a hardware-mediated flag which can be changed by code running in system-level software. ... In computing, multitasking is a method by which multiple tasks, also known as processes, share common processing resources such as a CPU. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is... For disk scheduling, see I/O scheduling. ... 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. ... In computing, cooperative multitasking (or non-preemptive multitasking) is a form of multitasking in which multiple tasks execute by voluntarily ceding control to other tasks at programmer-defined points within each task. ... Pre-emptive multitasking is a form of multitasking in which processes are not allowed to take an indefinitely long time to complete execution in the CPU. Each process, in turn, is granted a portion of CPU time (usually called a time slice, on the order of milliseconds). ... CPU modes (also called processor modes or privilege levels, and by other names) are operating modes for the central processing unit of some computers that place variable restrictions on the operations that can be performed by the CPU. Mode types At a minimum, any CPU with this type of architecture... Memory protection is a system that prevents one process from corrupting the memory of another process running on the same computer at the same time. ... Segmentation is one of the most common ways to achieve memory protection; another common one is paging. ... This article is about computer virtual memory. ... This 68451 MMU could be used with the Motorola 68010 MMU, short for memory management unit or sometimes called paged memory management unit as PMMU, 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... It has been suggested that Access violation be merged into this article or section. ... A General Protection Fault (GPF) in the Intel x86 and AMD x86-64 architectures is a fault (a type of an interrupt) which can encompass several cases, where protection mechanisms within the processor architecture are violated by any of the programs that is running, whether it be the kernel or... AmigaOS is the default native operating system of the Amiga personal computer. ... Windows redirects here. ... This article is about operating systems that use the Linux kernel. ... GNU (pronounced ) is a computer operating system composed entirely of free software. ... Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®, sometimes also written as or ® with small caps) is a computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. ... This article relates to both the original Classic Mac OS as well as Mac OS X, Apples more recent operating system. ... Microsofts disk operating system, MS-DOS, was Microsofts implementation of DOS, which was the first popular operating system for the IBM PC, and until recently, was widely used on the PC compatible platform. ... In computing, Bootstrapping refers to a process where a simple system activates another more complicated system that serves the same purpose. ... API redirects here. ... A virtual file system (VFS) or virtual filesystem switch is an abstraction layer on top of a more concrete file system. ... A computer network is an interconnected group of computers. ... GUI redirects here. ... The history of computer operating systems recapitulates to a degree, the recent history of computing. ... A hardware abstraction layer (HAL) is an abstraction layer, implemented in software, between the physical hardware of a computer and the software that runs on that computer. ...

  Results from FactBites:
 
GQTF-34:Drying of White Food Corn for Quality (1256 words)
Kernels with a large number of stress cracks are more susceptible to breakage, yield smaller grits during dry milling, absorb water too rapidly during wet milling, and are more susceptible to insect and mold damage during storage.
Kernels with a single stress crack are often acceptable to corn processors.
A sample of 50-100 kernels is usually sufficient to provide a representative indicator of the severity of stress cracks out of a dryer, in a storage bin, or in a truckload.
hybrid: Information from Answers.com (296 words)
Hybrid bicycle, a cross between a road and mountain bicycle.
Hybrid kernel, a kernel architecture based on combining aspects of microkernel and monolithic kernel architectures.
Hybrid Spudgun, a potato cannon that ignites a compressed fuel and air mix.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

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

 


Lesson Plans | Student Area | Student FAQ | Reviews | 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.