FACTOID # 165: Bolivia has 4,500 Navy personnel - which seems like quite a lot for a landlocked country.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RELATED ARTICLES
People who viewed "Nanokernel" also viewed:
RECENT ARTICLES
More Recent Articles »
 

FACTS & STATISTICS    Simple view

  1. Select countries to view: (hold down Control key and click to select several)

     

     

    Compare:

     

     

  1. Select fact or statistic: (* = graphable)

     

     

     

  2. (OPTIONAL) Compare to statistic: (both need to be graphable)

     

     

     

  3. View result as:

     

       
(OR) SEARCH ALL encyclopedia, stats & forums:   

Encyclopedia > Nanokernel

In computer science, a nanokernel or picokernel is a very minimalist operating system kernel. The nanokernel represents the closest hardware abstraction layer of the operating system by interfacing the CPU, managing interrupts and interacting with the MMU. The interrupt management and MMU interface are not necessarily part of a nanokernel; however, on most architectures these components are directly connected to the CPU, therefore, it often makes sense to integrate these interfaces into the kernel. Computer science, or computing science, is the study of the theoretical foundations of information and computation and their implementation and application in computer systems. ... It has been suggested that Maintenance OS be merged into this article or section. ... A kernel connects the application software to the hardware of a computer. ... 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. ... Die of an Intel 80486DX2 microprocessor (actual size: 12×6. ... In computing, an interrupt is an asynchronous signal from hardware or software indicating the need for attention. ... 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...


The names are derived from the nano and pico prefixes, carrying the connotation of something very small. Look up nano in Wiktionary, the free dictionary. ... For other meanings of Pico see Pico (disambiguation) Pico (symbol p) is a prefix in the SI system of units denoting a factor of 10-12. ... For the more specialised meaning of Connotation in semiotics, see connotation (semiotics). ...

Contents

General

The term is sometimes used informally to refer to a very light-weight microkernel, such as L4. A smooth transition between micro- and nanokernels exists in many areas when being connected to an operating system, but significant differences are the dependencies between the nanokernel and its core components when forming an operating system, not just a hardware abstraction layer for virtualisation.[clarify] 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. ... L4 is, collectively, a family of related computer programs. ... In computing, virtualization is a broad term that refers to the abstraction of computer resources. ...


Applications

Virtualisation

Additional abstraction and services are provided by other operating system modules, therefore, the nanokernel can be used to host other operating systems without a performance decrease if the nanokernel is integrated into the other operating system. Because of the minimalist nature of a nanokernel, this only requires minor modifications. This feature simplifies porting different operating systems to new architectures. The hosted operating system can also be natively virtualised very easily and with very little loss in performance. The introduction to this article provides insufficient context for those unfamiliar with the subject matter. ...


For instance, Apple Computer used a nanokernel in PowerPC versions of the "classic" Mac OS to translate interrupts on their PowerPC-based computers into 68K interrupts which were processed by a 68K emulator. Later, in Mac OS 8.6, it also managed Multiprocessing Services 2.0 tasks. Other examples include the Adeos nanokernel for Linux, which allows other OSs to run on the machine at the same time. Apple Inc. ... PowerPC is a RISC microprocessor architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM. Originally intended for personal computers, PowerPC CPUs have since become popular embedded and high-performance processors as well. ... This article or section does not adequately cite its references or sources. ... The Motorola 680x0/0x0/m68k/68k/68K family of CISC microprocessor CPU chips were 32-bit from the start, and were the primary competition for the Intel x86 family of chips in personal computers of the 1980s and early 1990s. ... The Mac 68K emulator was a software emulator built into all versions of the Mac OS for PowerPC. This emulator permitted the running of applications and system code that were originally written for the 680x0 based Macintosh models. ... Adeos stands for Adaptive Domain Environment for Operating Systems. ... Linux (IPA pronunciation: ) is a Unix-like computer operating system. ...


Nanokernel-based operating systems

Another application area for nanokernels is an extremely flexible and universal operating system. The operating system can be assembled from various software modules including, for example, a scheduler and various drivers and system interfaces. Due to this flexibility, having common interfaces and sharing a common infrastructure and components becomes possible within the kernel, while the kernel can provide various different operating system interfaces and support multiple concepts. Normally the change of a concept would require major modifications of the operating system but due to its modularity a nanokernel-based operating system can be changed just by replacing software modules. This migration can be performed at runtime because the only static parts of such an operating system are its abstract interfaces (such as streams or event-based interfaces) (in other words, a module interface dependency is the only dependency in a nanokernel). It has been suggested that this article or section be merged into Modularity (programming). ... Scheduling is a key concept in computer multitasking and multiprocessing operating system design, and in real-time operating system design. ... 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. ... Look up interface in Wiktionary, the free dictionary. ... Modularity is a concept that has applications in the contexts of computer science, particularly programming, as well as cognitive science in investigating the structure of mind. ... In computer science, runtime or run time describes the operation of a computer program, the duration of its execution, from beginning to termination (compare compile time). ... In computing, the term stream is used in a number of ways, in all cases referring to a succession of data elements made available over time. ... Event-driven programming is a computer programming paradigm. ...


Abstract module interfaces can also be used to take advantage of the GPU as a mathematical coprocessor (GPGPU). The module separation also prevents several mistakes related to shared resources, as the separation makes it impossible for the modules to share resources directly. Other techniques are used to allow processes to exchange data, e.g. extended IPC. Moreover, modularity makes the system highly fault tolerant since corruption of one module does not affect other modules except if they depend on the corrupted part. This advantage applies to nanokernels in general and can be very useful when running multiple operating systems simultaneously. Security related problems such as buffer overflows in parts of the operating system are nearly solved because a corrupted web server cannot affect other parts of the operating system even if it directly communicates with parts of the kernel like the TUX web server. On architectures with an MMU, e.g. the IA-32, a nanokernel-based operating system can be significantly faster than its monolithic representation, because context switching is no longer necessary. All drivers and system components run in the same context and can be grouped in shared address spaces. Additionally threads run in the same context, because they are not integrated into the operating system. The separation of the thread schedulers makes the system also very flexible and fault tolerant, because threads of different processes can not affect or interfere with other threads. On multiprocessor machines the separation of systems components allows the processors to execute them in parallel. E.g., a TCP module and a network driver could run in parallel and generate a higher throughput. GPU may stand for: Graphics processing unit, a special stream processor used in computer graphics hardware Gosudarstvennoye Politicheskoye Upravlenie (Главное Политическое Управление, or Main Political Directorate) of the Red Army, responsible for troops morale and propaganda. ... General-purpose computing on graphics processing units (GPGPU, also referred to as GPGP and to a lesser extent GP²) is a recent trend in computer science that uses the graphics processing unit to perform the computations rather than the central processing unit (CPU). ... Inter-Process Communication (IPC) is a set of techniques for the exchange of data between two or more threads in one or more processes. ... 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 possible breach of system security. ... The inside/front of a Dell PowerEdge web server The term Web server can mean one of two things: A computer program that is responsible for accepting HTTP requests from clients, which are known as Web browsers, and serving them HTTP responses along with optional data contents, which usually are... The TUX web server is a kernel-based web server for Linux licensed under the GNU General Public License (GPL). ... It has been suggested that this article or section be merged with X86 assembly language. ... It has been suggested that Monolithic system be merged into this article or section. ... 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. ... The introduction to this article provides insufficient context for those unfamiliar with the subject matter. ... For the form of code consisting entirely of subroutine calls, see Threaded code. ... Multiprocessing is traditionally known as the use of multiple concurrent processes in a system as opposed to a single process at any one instant. ... The Transmission Control Protocol (TCP) is one of the core protocols of the Internet protocol suite, often simply referred to as TCP/IP. Using TCP, applications on networked hosts can create connections to one another, over which they can exchange streams of data using Stream Sockets. ...


Real-time systems

Real-time software is sometimes designed to be single tasking, for simplicity or performance reasons. Nanokernels can be used in real-time and embedded systems as a hardware abstraction layer to increase the portability of the application software.[citation needed] Realtime redirects here. ... A router, an example of an embedded system. ... 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. ...


Advantages and disadvantages

Versus monolithic kernels

A nanokernel is considered to be slower than a typical monolithic kernel due to the management and communication complexity caused by the separation of its components. Contrariwise this abstraction potentiates considerably faster development, simpler modules and higher code quality. Additionally the management effort of such code is notably decreased because monolithic implementations tend to be more complex and intradependent. As a result of its lower module complexity nanokernel modules tend to be more accurate and maintainable. It has been suggested that Monolithic system be merged into this article or section. ... First off all quality of computer software is conformance to requirements and absence of bugs. ...


Furthermore APIs of monolithic kernels (as present in for example the Linux kernel) are often considered to be very unstable and quite mutable. It is often argued that this applies only to some implementations, but in reality monolithic drivers use more internal structures than separated modules[citation needed]. API may refer to: In computing, application programming interface In petroleum industry, American Petroleum Institute In education, Academic Performance Index This page concerning a three-letter acronym or abbreviation is a disambiguation page — a navigational aid which lists other pages that might otherwise share the same title. ... The Linux kernel is a Unix-like operating system kernel. ...


Another key aspect is the isolation of the nanokernel modules by architecture. Monolithic kernels generally suffer from a considerably bad security architecture because an inaccurate and insecure part directly affects the whole operating system.


Versus microkernels

Generally microkernels have integrated IPC, memory-, thread- and process management and elementary drivers. A Nanokernel in contrast has essentially none of those, therefore nanokernels are not independently executable operating systems, which is why they are not an operating system kernel in the traditional sense. 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. ...


Nevertheless this significant difference potentiates extremely powerful techniques like multi scheduling or operating system emulation. The simultaneous execution of a realtime- and pre-emptive scheduler on multi processor machines or the emulation of an entire operating system like UNIX in heterogeneous environments are some application areas of this technique. But in general this superiority applies and occurs only significantly in parallel- or distributed computing environments. A real-time operating system (RTOS) is a multitasking operating system intended for real-time applications. ... Pre-emptive multitasking is a form of multitasking. ... Filiation of Unix and Unix-like systems Unix (officially trademarked as UNIX®) 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. ...


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. ... 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. ... 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 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. ...

Design concepts

Complexity in general usage is the opposite of simplicity. ... Design by contract, DBC or Programming by contract is a methodology for designing computer software. ... Eiffel is an ISO-standardized object-oriented programming language designed for extensibility, reusability, reliability and programmer productivity. ... An interface defines the communication boundary between two entities, such as a piece of software, a hardware device, or a user. ... Look up isolation in Wiktionary, the free dictionary. ... Modularity is a concept that has applications in the contexts of computer science, particularly programming, as well as cognitive science in investigating the structure of mind. ... A namespace is a context in which a group of one or more identifiers might exist. ... Plan 9 from Bell Labs is a distributed operating system, primarily used as a research vehicle. ... 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. ... Sing♯ is a concurrent programming language that is a superset of the Spec♯ programming language; in turn, Spec♯ is an extension of the C♯ programming language. ...

Nanokernel-based operating systems


  Results from FactBites:
 
KeyKOS Nanokernel Architecture (8483 words)
The decision not to buffer messages within the nanokernel was prompted by the desire to avoid dynamic memory allocation, limit I/O overhead, keep the context switch path length short, and simplify the checkpoint operation.
Process exceptions are encapsulated by the nanokernel and routed to a user-level handler known as a keeper.
The nanokernel is responsible for the construction of mapping tables for the particular hardware platform.
  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.