FACTOID # 9: The bookmobile capital of America is Kentucky.
 
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 
   
 
WHAT'S NEW
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Kernel space

In computer engineering the kernel is the core of an operating system. It is a piece of software responsible for providing secure access to the machine's hardware and to various computer processes (a process is a computer program in a state of execution). Since there can be many processes running at the same time, and hardware access is limited, the kernel also decides when and how long a program should be able to make use of a piece of hardware: this function is called scheduling. Accessing the hardware directly can be very complex, since there are many different hardware designs for the same type of component. Kernels usually implement some hardware abstraction (a set of instructions universal to all devices of a certain type) to hide the underlying complexity from the operating system and provide a clean and uniform interface to the hardware, which helps application programmers to develop programs that work with all devices of that type. The Hardware Abstraction Layer (HAL) then relies upon a software driver that provides the instructions specific to that device's manufacturing specifications. To meet Wikipedias quality standards and appeal to a wider international audience, this article may require cleanup. ... In computing, an operating system (OS) is the system software responsible for the direct control and management of hardware and basic system operations. ... Computer software (or simply software) refers to one or more computer programs and data held in the storage of a computer for some purpose. ... Computer security is a field of computer science concerned with the control of risks related to computer use. ... Hardware is the general term that is used to describe physical artifacts of a technology. ... Scheduling is the process of assigning tasks to a set of resources. ... Hardware abstractions are sets of routines in software that emulate some platform-specific details, giving programs direct access to the hardware resources. ... Application software is a loosely defined subclass of computer software that employs the capabilities of a computer directly to a task that the user wishes to perform. ... A programmer or software developer is someone who programs computers, i. ... A hardware abstraction layer (HAL) is an abstraction layer between the physical hardware of a computer and the software that runs on that computer. ...

Contents


Introduction

An operating system kernel is not strictly needed to run a computer. Programs can be directly loaded and executed on the "bare metal" machine, provided that the authors of those programs are willing to do without any hardware abstraction or operating system support. This was the normal operating method of many early computers, which were reset and reloaded between the running of different programs. Eventually, small ancillary programs such as program loaders and debuggers were typically left in-core between runs, or loaded from read-only memory. As these were developed, they formed the basis of what became early operating system kernels. The "bare metal" approach is still used today on some video game consoles and embedded systems, but in general, newer systems use modern kernels and operating systems. The purpose of a loader is to move the object code in an object file into the computers main memory for execution. ... A debugger is a computer program that is used to debug (and sometimes test or optimize) other programs which might be running on the same computer (host computer) as the debugger is running, might be running on the target hardware, or might be running on the ISS. When the program... A 16×16 cm area core memory plane of 128×128 bits, i. ... Read-only memory (ROM) is used as a storage medium in computers. ... The XBox 360 is an example of a current generation video game console. ... An embedded system is a special-purpose computer system, which is completely encapsulated by the device it controls. ...


Four broad categories of kernels:

  • Monolithic kernels provide rich and powerful abstractions of the underlying hardware.
  • Microkernels provide a small set of simple hardware abstractions and use applications called servers to provide more functionality.
  • Hybrid (modified microkernels) are much like pure microkernels, except that they include some additional code in kernelspace to increase performance.
  • Exokernels provide minimal abstractions, allowing low-level hardware access. In exokernel systems, library operating systems provide the abstractions typically present in monolithic kernels.

This article is about computer servers. ... Illustration of an application which may use libvorbisfile. ...

Monolithic kernels

The monolithic approach defines a high-level virtual interface over the hardware, with a set of primitives or system calls to implement operating system services such as process management, concurrency, and memory management in several modules that run in supervisor mode. In computing, a system call is the mechanism used by an application program to request service from the operating system, or more specifically, the operating system kernel. ... In computing, a process is a running instance of a program, including all variables and other state. ... In computer science, concurrency is concerned with the study and design of systems which consist of computations that execute overlapped in time (including running in parallel), and which may permit the sharing of common resources between those overlapped computations. ... Memory management is the act of managing computer memory. ... In computing, a module is a software entity that groups a set of (typically cohesive) subprograms and data structures. ... In computer terms, supervisor mode is a hardware-mediated flag which can be changed by code running in system-level software. ...


Even if every module servicing these operations is separate from the whole, the code integration is very tight and difficult to do correctly, and, since all the modules run in the same address space, a bug in one module can bring down the whole system. However, when the implementation is complete and trustworthy, the tight internal integration of components allows the low-level features of the underlying system to be effectively utilized, making a good monolithic kernel highly efficient. Monolithic kernel proponents reason that incorrect code doesn't belong in a kernel, and microkernels offer little advantage for correct code.


More modern monolithic kernels such as Linux, FreeBSD and Solaris can load executable modules at runtime, allowing easy extension of the kernel's capabilities as required, while helping to keep the amount of code running in kernelspace to a minimum. The Linux mascot Tux created by Larry Ewing The Linux kernel is a free software Unix-like operating system kernel that was begun by Linus Torvalds in 1991 and subsequently improved with the assistance of developers around the world. ... FreeBSD is a free, open source Unix-like operating system descended from Unix via the Berkeley Software Distribution (BSD) branch through 386BSD and 4. ... This article contains information that has not been verified and thus might not be reliable. ...

Graphical overview of a monolithic kernel
Graphical overview of a monolithic kernel

Monolithic kernels include: Wikipedia does not have an article with this exact name. ...

Wikibooks has more about this subject: Guide to UNIX 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 Software Distribution (BSD, sometimes called Berkeley Unix) is the Unix derivative distributed by the University of California, Berkeley starting in the 1970s. ... The Linux mascot Tux created by Larry Ewing The Linux kernel is a free software Unix-like operating system kernel that was begun by Linus Torvalds in 1991 and subsequently improved with the assistance of developers around the world. ... This article contains information that has not been verified and thus might not be reliable. ... Agnix is an educational operating system kernel, fully compatibile with the Linux Kernel API. Agnix supports 32-bit protected memory mode, memory allocation algorithms (binary and buddy), multitasking, 8254, 8259 and RTC chips, PCI bus and PCI devices, RT timers, network devices. ...

Microkernels

The microkernel approach consists in defining a very simple abstraction over the hardware, with a set of primitives or system calls to implement minimal OS services such as thread management, address spaces and interprocess communication. All other services, including those normally provided by the kernel such as networking, are implemented in user-space programs referred to as servers. In computing, a system call is the mechanism used by an application program to request service from the operating system. ... y=mx+c ... The introduction to this article provides insufficient context for those unfamiliar with the subject matter. ... Inter-process communication (IPC) is the exchange of data between one process and another, either within the same computer or over a network. ... A computer network is a system for communication among two or more computers. ...


Servers are programs like any others, allowing the operating system to be modified simply by starting and stopping programs. For a small machine without networking support, for instance, the networking server simply isn't started. Under a traditional system this would require the kernel to be recompiled, something well beyond the capabilities of the average end-user. In theory the system is also more stable, because a failing server simply stops a single program, rather than causing the kernel itself to crash. A diagram of the operation of a typical multi-language compiler. ...


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 (theoretic) server responsible for TCP/IP connections is restarted, applications could be told the connection was "lost" and reconnect, going through the new instance of the server. However, other system objects, like files, do not have these convenient semantics, are supposed to be reliable, not become unavailable randomly and keep all the information written to them previously. So, database techniques like transactions, replication and checkpointing need to be used between servers in order to preserve essential state across single server restarts. The Internet protocol suite is the set of communications protocols that implement the protocol stack on which the Internet runs. ... In the main, semantics (from the Greek semantikos, or significant meaning, derived from sema, sign) is the study of meaning, in some sense of that term. ... A database is an organized collection of data. ... 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 refers to the provision of redundant resources (software or hardware components) to improve reliability and fault-tolerance. ... 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. ...


Microkernels generally underperform traditional designs, sometimes dramatically. This is due in large part to the overhead of moving in and out of the kernel, a context switch, in order to move data between the various applications and servers. It was originally believed that careful tuning could reduce this overhead dramatically, but by the mid-90s most researchers had given up. In more recent times newer microkernels, designed for performance first, have addressed these problems to a very large degree. Nevertheless the market for existing operating systems is so entrenched that little work continues on microkernel design. A context switch is the computing process of storing and restoring the state of a CPU (the context) such that multiple processes can share a single CPU resource. ...

Graphical overview of a microkernel
Graphical overview of a microkernel

Examples of microkernels and OSs based on microkernels: Wikipedia does not have an article with this exact name. ...

Advanced Interactive eXecutive (AIX) is the brand name of IBMs proprietary UNIX operating system. ... AmigaOS is the default native operating system of the Amiga and AmigaOne personal computers. ... The Amoeba distributed operating system is a microkernel-based research operating system written by Andrew S. Tanenbaum at Vrije Universiteit. ... ChorusOS is a microkernel real-time operating system designed for embedded systems. ... Eros can refer to: Eros, a god in Greek mythology The Greek word Eros, which means sexual love 433 Eros, an asteroid EROS, the Extremely Reliable Operating System Pjur Eros, a premium latex-safe personal lubricant Eros, the life instinct postulated by Freudian psychology, standing in opposition to Thanatos The... 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. ... The LSE/OS kernel was a research kernel designed by a French research laboratory named Epita System Laboratory. ... This article or section should be merged with Kernel (computer science). ... KeyKOS is a persistent, pure capability-based operating system. ... This article or section should be merged with Kernel (computer science). ... L4 is, collectively, a family of related computer programs. ... Mach is an operating system kernel developed at Carnegie Mellon University to support operating system research, primarily distributed and parallel computation. ... GNU Hurd logo Hurd redirects here. ... NeXTSTEP Desktop NEXTSTEP is the original object-oriented, multitasking operating system that NeXT Computer, Inc. ... OpenStep is an open object-oriented API specification for an object-oriented operating system that uses any modern operating system as its core, principally developed by NeXT. It is important to recognize that while OpenStep is an API specification, OPENSTEP (all capitalized) is a specific implementation of this OpenStep developed... Mac OS X is the operating system which is included with all shipping Apple Macintosh computers in the consumer and professional markets. ... 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 based on a microkernel architecture. ... MorphOS is a mixed proprietary and open source operating system produced for the PegasosPPC hardware platform by a core development team and contributors. ... NewOS is a free, full-featured operating system with full source code available, along with periodic binary snapshots. ... 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. ... The Phoenix-RTOS is an open source unix-like real-time operating system based on a microkernel, aimed at the embedded systems market. ... Spring was an experimental microkernel-based object oriented operating system developed at Sun Microsystems in the early 1990s. ... This article lacks information on the importance of the subject matter. ... It has been suggested that EPOC (computing) be merged into this article or section. ... The Operating System Embedded (mostly known under the acronym OSE), a real-time embedded operating system created by the Swedish firm ENEA. OSE uses signaling in the form of messages passed to and from processes in the system. ...

Monolithic kernels vs. microkernels

In the early 1990s, monolithic kernels were considered obsolete. The design of Linux as a monolithic kernel rather than a microkernel was the topic of a famous flame war (or what then passed for flaming) between Linus Torvalds and Andrew Tanenbaum. [1] [2] Tux is the official Linux mascot. ... This article is about the Internet meaning of the word flaming. For other meanings, and meanings of the word flame, see Flame. ... Linus Benedict Torvalds (born December 28, 1969 in Helsinki, Finland) is a Finnish software engineer best known for initiating the development of Linux. ... Andrew S. Tanenbaum Andrew Stuart Andy Tanenbaum (born 1944) is the head of Department of Computer Systems, Vrije Universiteit, Netherlands. ...


There is merit in both sides of the arguments presented in the Tanenbaum/Torvalds debate.


Monolithic kernels tend to be easier to design correctly, and therefore may grow more quickly than a microkernel-based system. There are success stories in both camps. Microkernels are often used in embedded robotic or medical computers because most of the OS components reside in their own private, protected memory space. This is impossible with monolithic kernels, even with modern module-loading ones. However, the monolithic model tends to be more efficient through the use of shared kernel memory, rather than the slower Inter-process communication characteristic of microkernel designs. 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. ...


Although Mach is the best-known general-purpose microkernel, several other microkernels have been developed with more specific aims. L3 was created to demonstrate that microkernels are not necessarily slow. L4 is a successor to L3 and a popular implementation called Fiasco is able to run Linux next to other L4 processes in separate address spaces. There are screenshots available on freshmeat.net showing this feat. A newer version called Pistachio also has this capability. 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. ... L4 is, collectively, a family of related computer programs. ... Tux is the official Linux mascot. ...


QNX is an operating system that has been around since the early 1980s and has a very minimalistic microkernel design. This system has been far more successful than Mach in achieving the goals of the microkernel paradigm. It is used in situations where software is not allowed to fail. This includes the robotic arms on the space shuttle, and machines that grind glass to very fine tolerances (a tiny mistake may cost hundreds of thousands of dollars, as in the case of the mirror of the Hubble Space Telescope). 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. ... The Space Shuttle Columbia seconds after engine ignition, 1981 (NASA). ... The Hubble Space Telescope (HST) is a telescope in orbit around the Earth. ...


Hybrid kernels (aka modified microkernels)

Hybrid kernels are essentially microkernels that have some "non-essential" code in kernel-space in order for that code to run more quickly than it would were it to be in user-space. This was a compromise struck early on in the adoption of microkernel based architectures by various operating system developers before it was shown that pure microkernels could indeed be high performers.


For example, the Mac OS X kernel XNU, while based on the Mach 3.0 microkernel, includes code from the BSD kernel in the same address space in order to cut down on the latency incurred by the traditional microkernel design. Most modern operating systems today fall into this category, Microsoft Windows NT and successors being the most popular examples. Mac OS X is the operating system which is included with all shipping Apple Macintosh computers in the consumer and professional markets. ... XNU is the name of the kernel that Apple develops for use in the Mac OS X operating system and releases as open source as part of the Darwin operating system. ... Mach is an operating system kernel developed at Carnegie Mellon University to support operating system research, primarily distributed and parallel computation. ... Berkeley Software Distribution (BSD, sometimes called Berkeley Unix) is the Unix derivative distributed by the University of California, Berkeley starting in the 1970s. ... Microsoft Corporation (NASDAQ: MSFT, HKEx: 4338) is the worlds largest software company, with 2005 global annual sales of 40 billion US dollars and nearly 60,000 employees in 85 countries and regions. ... Windows NT is a family of operating systems produced by Microsoft, and was succeeded by Windows 2000 (still based on Windows NT). ...


Windows NT's microkernel is called the kernel, while higher-level services are implemented by the NT executive. Various servers communicate through a cross-address-space mechanism called Local Procedure Call (LPC), and notably use shared memory in order to optimize performances. The local procedure call (LPC) facility is a service provided by the Windows NT kernel for light weight message queue between processes on the same computer. ...


DragonFly BSD is the first non-Mach based BSD OS to adopt a hybrid kernel architecture. In computing, the DragonFly BSD operating system is a fork of FreeBSD. Matt Dillon, a long-time FreeBSD and Amiga developer, started work on DragonFly BSD in June 2003 and announced it on the FreeBSD mailing lists on 16 July 2003 [1]. Dillon started DragonFly in the belief that the...


Other Hybrid kernels are:

Some people confuse the term "Hybrid kernel" with monolithic kernels that can load modules after boot. This is not correct. "Hybrid" implies that the kernel in question shares architectural concepts or mechanisms with both monolithic and microkernel designs - specifically message passing and migration of "non-essential" code into userspace while retaining some "non-essential" code in the kernel proper for performance reasons. ReactOS screenshot: multitasking OpenOffice in ReactOS RosExplorer (Mozilla ActiveX Control) ReactOS is a project to develop a free software / open source operating system that is object code-compatible with Microsoft Windows NT and Windows 2000 applications and drivers. ... BeOS was an operating system for personal computers which began development by Be Incorporated in 1991. ... Haiku, formerly known as OpenBeOS, is an open source project dedicated to the re-creation and continuation of the Be Operating System. ... NetWare is a network operating system and the set of network protocols it uses to talk to client machines on the network. ... Windows 2000 (also referred to as Win2K, W2K or Windows NT 5. ... Windows XP is a major revision of the Microsoft Windows operating system created for use on desktop and business computer systems. ... Windows Vista is the next version of Microsofts Windows operating system, superseding Windows XP. It was previously known by its codename Longhorn, after the Longhorn Saloon, a popular bar in Whistler, British Columbia (see the other Microsoft codenames). ...

Graphical overview of a hybrid kernel
Graphical overview of a hybrid kernel

Wikipedia does not have an article with this exact name. ...

Atypical microkernels

There are some microkernels which should not be considered to be pure microkernels, because they implement some functions such as server services. These "atypical" microkernels are characterized by a vast number of features which mark them as belonging to the "large microkernel" family. Foremost known in this category is Exec, the kernel of AmigaOS, and its direct descendant ExecSG (or "Exec Second Generation"). AmigaOS is the default native operating system of the Amiga and AmigaOne personal computers. ... AmigaOS is the default native operating system of the Amiga and AmigaOne personal computers. ... AmigaOS is the default native operating system of the Amiga and AmigaOne personal computers. ...


Exokernels

An exokernel is a type of kernel that does not abstract hardware into theoretical models. Instead it allocates the physical hardware resources, such as processor time, memory pages, and disk blocks, to different programs. A program running on an exokernel can link to a library operating system that uses the exokernel to simulate the abstractions of a well-known OS, or it can develop application-specific abstractions for better performance. Graphical overview of Exokernel Exokernel is the name of an operating system developed by the Parallel and Distributed Operating Systems group at MIT, and of a class of similar operating systems. ...


No-kernel

TUNES Project [3] and UnununiumOS [4] are no-kernel [5] experiments. No-kernel software is not limited to a single centralizing entry point. TUNES is an open project to develop a computing system, based on the idea of metaprogramming. ... Unununium (short uuu) is an open source software development project with the goal of creating an highly componentized system, where each component can be dynamically loaded, unloaded, or replaced during runtime (Unununium Operating Engine). ...


See also

In computing, an operating system (OS) is the system software responsible for the direct control and management of hardware and basic system operations. ... CORE may refer to: The Congress of Racial Equality in the USA. The Coordinated Online Register of Electors in the United Kingdom. ... In computing, a shell is computer software that essentially provides a kind of user interface. ... In computer science, a Single address space operating system (or SASOS) is a specific type of Operating system, which tries to simplify an operating system enough to use one single Virtual address space. ... The word kernel has a a variety of meanings in a several fields. ...

External links


 
 

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