Kernel (operating system)

kerneloperating system kernelkernelsnucleuskernel imageoperating system kernelsKernel (computer science)kernel (computing)kernel memorykernel space
The kernel is a computer program that is the core of a computer's operating system, with complete control over everything in the system.wikipedia
802 Related Articles

System call

syscallcallaccess
When a process makes requests of the kernel, it is called a system call.
In computing, a system call is the programmatic way in which a computer program requests a service from the kernel of the operating system it is executed on.

User space

userspaceuserlanduser mode
The kernel performs its tasks, such as running processes, managing hardware devices such as the hard disk, and handling interrupts, in this protected kernel space.
Kernel space is strictly reserved for running a privileged operating system kernel, kernel extensions, and most device drivers.

Application software

applicationapplicationssoftware application
The critical code of the kernel is usually loaded into a separate area of memory, which is protected from access by application programs or other, less critical parts of the operating system.
As another example, the GNU/Linux naming controversy is, in part, due to disagreement about the relationship between the Linux kernel and the operating systems built over this kernel.

Singularity (operating system)

SingularitySingularity shell
This fundamental partition of memory space has contributed much to the current designs of actual general-purpose kernels and is almost universal in such systems, although some research kernels (e.g. Singularity) take other approaches. Examples of systems with language-based protection include JX and Microsoft's Singularity.
It was designed as a high dependability OS in which the kernel, device drivers, and application software were all written in managed code.

Operating system

operating systemsOScomputer operating system
The kernel is a computer program that is the core of a computer's operating system, with complete control over everything in the system.
Later versions have all been based on the Windows NT kernel.

Hybrid kernel

Hybridhybrid architecture
These are called hybrid kernels.
A hybrid kernel is an operating system kernel architecture that attempts to combine aspects and benefits of microkernel and monolithic kernel architectures used in computer operating systems.

Call gate (Intel)

call gate
This type of mechanism is essential in modern operating systems that employ memory protection since it allows user applications to use kernel functions and system calls in a way that can be controlled by the operating system.

Capability-based addressing

capabilitycapability computercapability machines
An efficient and simple way to provide hardware support of capabilities is to delegate to the MMU the responsibility of checking access-rights for every memory access, a mechanism called capability-based addressing.
Under a capability-based addressing scheme, pointers are replaced by protected objects (called capabilities) that can be created only through the use of privileged instructions which may be executed only by either the kernel or some other privileged process authorised to do so.

Linux

GNU/LinuxLinux on the desktopLin
Modern monolithic kernels, such as those of Linux and FreeBSD, both of which fall into the category of Unix-like operating systems, feature the ability to load modules at runtime, thereby allowing easy extension of the kernel's capabilities as required, while helping to minimize the amount of code running in kernel space.
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds.

Exokernel

ExOS
More exotic designs such as nanokernels and exokernels are available, but are seldom used for production systems.
Exokernel is an operating system kernel developed by the MIT Parallel and Distributed Operating Systems group, and also a class of similar operating systems.

FreeBSD

TrustedBSDFreeBSD kernel*BSD
Modern monolithic kernels, such as those of Linux and FreeBSD, both of which fall into the category of Unix-like operating systems, feature the ability to load modules at runtime, thereby allowing easy extension of the kernel's capabilities as required, while helping to minimize the amount of code running in kernel space. Apple Inc's own macOS uses a hybrid kernel called XNU which is based upon code from OSF/1's Mach kernel (OSFMK 7.3) and FreeBSD's monolithic kernel.
FreeBSD has similarities with Linux, with two major differences in scope and licensing: FreeBSD maintains a complete system, i.e. the project delivers a kernel, device drivers, userland utilities, and documentation, as opposed to Linux only delivering a kernel and drivers, and relying on third-parties for system software; and FreeBSD source code is generally released under a permissive BSD license, as opposed to the copyleft GPL used by Linux.

JX (operating system)

JXJX microkernel for JavaJXOS
Examples of systems with language-based protection include JX and Microsoft's Singularity.
JX is a microkernel operating system with both the kernel and applications implemented using the Java programming language.

CPU modes

CPU modekernel-modemode
Support for hierarchical protection domains is typically implemented using CPU modes.
Ideally, only highly trusted kernel code is allowed to execute in the unrestricted mode; everything else (including non-supervisory portions of the operating system) runs in a restricted mode and must use a system call (via interrupt) to request the kernel perform on its behalf any operation that could damage or compromise the system, making it impossible for untrusted programs to alter or damage other programs (or the computing system itself).

Process (computing)

processprocessesprocessing
When a process makes requests of the kernel, it is called a system call.
An operating system kernel that allows multitasking needs processes to have certain states.

Microsoft

Microsoft CorporationMicrosoft Corp.MS
Examples of systems with language-based protection include JX and Microsoft's Singularity.
It shipped on July 21, 1993, with a new modular kernel and the Win32 application programming interface (API), making porting from 16-bit (MS-DOS-based) Windows easier.

Separation of protection and security

adoption of this distinctiondistinction between protection and security
These two aspects are usually not clearly distinguished, and the adoption of this distinction in the kernel design leads to the rejection of a hierarchical structure for protection.
The adoption of this distinction in a computer architecture, usually means that protection is provided as a fault tolerance mechanism by hardware/firmware and kernel, whereas the operating system and applications implement their security policies.

Computer security

cybersecuritycyber securitysecurity
An important consideration in the design of a kernel is the support it provides for protection from faults (fault tolerance) and from malicious behaviours (security).
A firewall can be defined as a way of filtering network data between a host or a network and another network, such as the Internet, and can be implemented as software running on the machine, hooking into the network stack (or, in the case of most UNIX-based operating systems such as Linux, built into the operating system kernel) to provide real-time filtering and blocking.

Linus Torvalds

Linus Benedict TorvaldsJust for FunTorvalds, Linus
As a result, the design of Linux as a monolithic kernel rather than a microkernel was the topic of a famous debate between Linus Torvalds and Andrew Tanenbaum.
Linus Benedict Torvalds (, ; born December 28, 1969) is a Finnish-American software engineer who is the creator and, historically, the principal developer of the Linux kernel, which is the kernel for Linux operating systems (distributions) and other operating systems such as Android and Chrome OS.

QNX

QNX NeutrinoQNX Software SystemsQuantum Software Systems
In the case of QNX and Hurd user sessions can be entire snapshots of the system itself or views as it is referred to. They are part of the operating systems like GNU Hurd, MINIX, MkLinux, QNX and Redox OS.
As a microkernel-based OS, QNX is based on the idea of running most of the operating system kernel in the form of a number of small tasks, known as Resource Managers.

Unix

UNIX operating systemAT&T UnixUnix-like
Some developers, such as UNIX developer Ken Thompson, maintain that it is "easier to implement a monolithic kernel" than microkernels.
Under Unix, the operating system consists of many libraries and utilities along with the master control program, the kernel.

Context switch

context switchingtask switchingswitch
Very important decisions have to be made when designing the device management system, as in some designs accesses may involve context switches, making the operation very CPU-intensive and easily causing a significant performance overhead.
The kernel does not spawn or schedule a special process to handle interrupts, but instead the handler executes in the (often partial) context established at the beginning of interrupt handling.

Tanenbaum–Torvalds debate

Tanenbaum-Torvalds debatehad generally believedongoing discussion
There is merit on both sides of the argument presented in the Tanenbaum–Torvalds debate.
The Tanenbaum–Torvalds debate was a debate between Andrew S. Tanenbaum and Linus Torvalds, regarding the Linux kernel and kernel architecture in general.

XNU

XNU kernelDarwin kernelMac OS X Kernel
Apple Inc's own macOS uses a hybrid kernel called XNU which is based upon code from OSF/1's Mach kernel (OSFMK 7.3) and FreeBSD's monolithic kernel.
XNU is the computer operating system kernel developed at Apple Inc. since December 1996 for use in the macOS operating system and released as free and open-source software as part of the Darwin operating system, which is the basis for the Apple TV Software, iOS, iPadOS, watchOS, and tvOS operating systems.

Booting

bootloaderboot loaderboot
On most systems, it is one of the first programs loaded on start-up (after the bootloader).
The VBR is often operating-system specific; however, in most operating systems its main function is to load and execute the operating system kernel, which continues startup.

MINIX

MINIX 2.0MINIX 3MINIX 1.0
They are part of the operating systems like GNU Hurd, MINIX, MkLinux, QNX and Redox OS.
An abridged 12,000 lines of the C source code of the kernel, memory manager, and file system of MINIX 1.0 are printed in the book.