Rump kernel

Last updated
Graphic overview of the rump kernel OS rumparch.png
Graphic overview of the rump kernel

The NetBSD rump kernel is the first implementation of the "anykernel" concept where drivers either can be compiled into or run in the monolithic kernel or in user space on top of a light-weight kernel. [1] [2] [3] [4] The NetBSD drivers can be used on top of the rump kernel on a wide range of POSIX operating systems, such as the Hurd, [5] Linux, NetBSD, DragonFly BSD, Solaris kernels and even Cygwin, along with the file system utilities [6] built with the rump libraries. The rump kernels can also run without POSIX directly on top of the Xen hypervisor, an L4 microkernel using the Genode OS Framework [7] or even on "OS-less" bare metal.

Contents

Anykernel

An anykernel is different in concept from microkernels, exokernels, partitioned kernels or hybrid kernels in that it tries to preserve the advantages of a monolithic kernel, while still enabling the faster driver development and added security in user space. [8] The "anykernel" concept refers to an architecture-agnostic approach to drivers where drivers can either be compiled into the monolithic kernel or be run as a userspace process, microkernel-style, without code changes. [9] With drivers, a wider concept is considered where not only device drivers are included but also file systems and the networking stack.

File System Access Utilities

The File System Access Utilities (fs-utils) is a subproject built with the rump libraries. It aims to have a set of utilities to access and modify a file system image without having to mount it. The fs-utils does not require superuser account to access the image or device. The advantage of fs-utils over similar projects such as mtools is supporting the usage of familiar filesystem Unix commands ( ls , cp , mv , cd , etc.) for a large number of file systems which are supported by NetBSD. [10]

See also

Related Research Articles

GNU Hurd Operating system kernel designed as a replacement for Unix

GNU Hurd is the multiserver microkernel written as part of GNU. It has been under development since 1990 by the GNU Project of the Free Software Foundation, designed as a replacement for the Unix kernel, and released as free software under the GNU General Public License. When the Linux kernel proved to be a viable solution, development of GNU Hurd slowed, at times having slipped intermittently between stasis and renewed activity and interest.

Mach is a kernel developed at Carnegie Mellon University by Richard Rashid and Avie Tevanian and derived originally from 4.3BSD to support operating system research, primarily distributed and parallel computing. Mach is often mentioned as one of the earliest examples of a microkernel. However, not all versions of Mach are microkernels. Mach's derivatives are the basis of the operating system kernel in GNU Hurd and of Apple's XNU kernel used in macOS, iOS, iPadOS, tvOS, and watchOS.

The ext2 or second extended file system is a file system for the Linux kernel. It was initially designed by French software developer Rémy Card as a replacement for the extended file system (ext). Having been designed according to the same principles as the Berkeley Fast File System from BSD, it was the first commercial-grade filesystem for Linux.

Darwin is an open-source Unix-like operating system first released by Apple Inc. in 2000. It is composed of code derived from NeXTSTEP, BSD, Mach, and other free software projects code, as well as code developed by Apple.

tmpfs is a temporary file storage paradigm implemented in many Unix-like operating systems. It is intended to appear as a mounted file system, but data is stored in volatile memory instead of a persistent storage device. A similar construction is a RAM disk, which appears as a virtual disk drive and hosts a disk file system.

FOSDEM Annual event in Brussels centered on free and open source software development

Free and Open source Software Developers' European Meeting (FOSDEM) is a non-commercial, volunteer-organized European event centered on free and open-source software development. It is aimed at developers and anyone interested in the free and open-source software movement. It aims to enable developers to meet and to promote the awareness and use of free and open-source software.

These tables provide a comparison of operating systems, of computer devices, as listing general and technical information for a number of widely used and currently available PC or handheld operating systems. The article "Usage share of operating systems" provides a broader, and more general, comparison of operating systems that includes servers, mainframes and supercomputers.

Filesystem in USErspace (FUSE) is a software interface for Unix and Unix-like computer operating systems that lets non-privileged users create their own file systems without editing kernel code. This is achieved by running file system code in user space while the FUSE module provides only a "bridge" to the actual kernel interfaces.

Linux kernel interfaces

The Linux kernel provides several interfaces to user-space applications that are used for different purposes and that have different properties by design. There are two types of application programming interface (API) in the Linux kernel that are not to be confused: the "kernel–user space" API and the "kernel internal" API.

NILFS or NILFS2 is a log-structured file system implementation for the Linux kernel. It is being developed by Nippon Telegraph and Telephone Corporation (NTT) CyberSpace Laboratories and a community from all over the world. NILFS was released under the terms of the GNU General Public License (GPL).

A kernel is the most fundamental component of a computer operating system. A comparison of system kernels can provide insight into the design and architectural choices made by the developers of particular operating systems.

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.

The following tables compare general and technical information for a number of file systems.

Minix 3

Minix 3 is a project to create a small, high availability, high functioning Unix-like operating system. It is published under a BSD-3-Clause license and is a successor project to the earlier versions, Minix 1 and 2.

NTFS-3G

NTFS-3G is an open-source cross-platform implementation of the Microsoft Windows NTFS file system with read/write support. NTFS-3G often uses the FUSE file system interface, so it can run unmodified on many different operating systems. It is runnable on Linux, FreeBSD, NetBSD, OpenSolaris, illumos, BeOS, QNX, WinCE, Nucleus, VxWorks, Haiku, MorphOS, Minix, macOS and OpenBSD. It is licensed under the GNU General Public License. It is a partial fork of ntfsprogs and is under active maintenance and development.

Kernel (operating system) Core of a computer operating system

The kernel is a computer program at the core of a computer's operating system and has complete control over everything in the system. It is the "portion of the operating system code that is always resident in memory", and facilitates interactions between hardware and software components. A full kernel controls all hardware resources via device drivers, arbitrates conflicts between processes concerning such resources, and optimizes the utilization of common resources e.g. CPU & cache usage, file systems, and network sockets. On most systems, the kernel is one of the first programs loaded on startup. It handles the rest of startup as well as memory, peripherals, and input/output (I/O) requests from software, translating them into data-processing instructions for the central processing unit.

NetBSD Open-source Unix-like operating system

NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was forked. It continues to be actively developed and is available for many platforms, including servers, desktops, handheld devices, and embedded systems.

Ghost (operating system)

Ghost OS is an open-source hobbyist operating system and kernel. It is under development since 2014 and currently compatible with the x86 platform.

A virtual kernel architecture (vkernel) is an operating system virtualisation paradigm where kernel code can be compiled to run in the user space, for example, to ease debugging of various kernel-level components,​​​ in addition to general-purpose virtualisation and compartmentalisation of system resources. It is used by DragonFly BSD in its vkernel implementation since DragonFly 1.7,​ having been first revealed in September 2006,​​ and first released in the stable branch with DragonFly 1.8 in January 2007.​​​​ The long-term goal, in addition to easing kernel development, is to make it easier to support internet-connected computer clusters without compromising local security.​​ Similar concepts exist in other operating systems as well; in Linux, a similar virtualisation concept is known as user-mode Linux;​​ whereas in NetBSD since the summer of 2007, it has been the initial focus of the rump kernel infrastructure.​

References

  1. "The Anykernel and Rump Kernels". Netbsd.org. Retrieved 2013-08-15.
  2. "FOSDEM 2013 - Interview: Antti Kantee:The Anykernel and Rump Kernels". archive.fosdem.org. 2013-02-03. Retrieved 2013-08-15.
  3. "FOSDEM 2013 - The Anykernel and Rump Kernels". archive.fosdem.org. 2013-02-03. Retrieved 2013-08-15.
  4. "FOSDEM 2014 - Rump Kernels, Just Components". archive.fosdem.org. 2014-02-03. Retrieved 2015-02-21.
  5. "Hurd, Rump kernel, sound, and USB". FOSDEM 2016. Retrieved February 15, 2016.
  6. file system utilities
  7. "Release notes for the Genode OS Framework 17.02".
  8. Kantee, Antti (2012). The Design and Implementation of the Anykernel and Rump Kernels (Ph.D). Aalto university.
  9. "Rump File Systems: Kernel Code Reborn". Usenix.org. 2002-02-01. Retrieved 2013-08-15.
  10. Kantee, Antti; Ysmal, Arnaud (2009). Fs-utils: File Systems Access Tools for Userland (PDF) (Thesis).