NetBSD
   HOME

TheInfoList



OR:

NetBSD is a
free and open-source Free and open-source software (FOSS) is software available under a Software license, license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term ...
Unix-like A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
based on the
Berkeley Software Distribution The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginn ...
(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 system An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is e ...
s. The NetBSD project focuses on code clarity, careful design, and portability across many computer architectures. Its source code is publicly available and permissively licensed.


History

NetBSD was originally derived from the 4.3BSD-Reno release of the Berkeley Software Distribution from the
Computer Systems Research Group The Computer Systems Research Group (CSRG) was a research group at the University of California, Berkeley, that was dedicated to enhancing AT&T Unix operating system and funded by the Defense Advanced Research Projects Agency. History Profes ...
of the
University of California, Berkeley The University of California, Berkeley (UC Berkeley, Berkeley, Cal, or California), is a Public university, public Land-grant university, land-grant research university in Berkeley, California, United States. Founded in 1868 and named after t ...
, via its Net/2
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
release and the 386BSD project. The NetBSD project began as a result of frustration within the 386BSD developer community with the pace and direction of the operating system's development. The four founders of the NetBSD project, Chris Demetriou, Theo de Raadt, Adam Glass, and Charles Hannum, felt that a more open development model would benefit the project: one centered on portable, clean, correct code. They aimed to produce a unified, multi-platform, production-quality, BSD-based operating system. The name "NetBSD" was chosen based on the importance and growth of networks such as the
Internet The Internet (or internet) is the Global network, global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a internetworking, network of networks ...
at that time, and the distributed, collaborative nature of its development. The NetBSD source code repository was established on 21 March 1993 and the first official release, NetBSD 0.8, was made on 19 April 1993. This was derived from 386BSD 0.1 plus the version 0.2.2 unofficial patchkit, with several programs from the Net/2 release missing from 386BSD re-integrated, and various other improvements. The first multi-platform release, NetBSD 1.0, was made in October 1994, and being updated with 4.4BSD-Lite sources, it was free of all legally encumbered 4.3BSD Net/2 code. Also in 1994, for disputed reasons, one of the founders, Theo de Raadt, was removed from the project. He later founded a new project,
OpenBSD OpenBSD is a security-focused operating system, security-focused, free software, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by fork (software development), forking NetBSD ...
, from a forked version of NetBSD 1.0 near the end of 1995. In 1998, NetBSD 1.3 introduced the
pkgsrc pkgsrc (''package source'') is a package management system for Unix-like operating systems. It was forked from the FreeBSD ports collection in 1997 as the primary package management system for NetBSD. Since then it has evolved independently; in 1 ...
packages collection. Until 2004, NetBSD 1.x releases were made at roughly annual intervals, with minor "patch" releases in between. From release 2.0 onwards, NetBSD uses semantic versioning, and each major NetBSD release corresponds to an incremented major version number, i.e. the major releases following 2.0 are 3.0, 4.0 and so on. The previous minor releases are now divided into two categories: ''x.y'' "stable" maintenance releases and ''x.y.z'' releases containing only security and critical fixes. NetBSD used to ship with twm as a preconfigured graphical interface (
window manager A window manager is system software that controls the placement and appearance of window (computing), windows within a windowing system in a graphical user interface. Most window managers are designed to help provide a desktop environment. They ...
); in 2020 (version 9.1) this was changed to the more modern and versatile CTWM.


Features


Portability

As the project's motto (''"Of course it runs NetBSD"'' ) suggests, NetBSD has been ported to a large number of 32- and 64-bit architectures. These range from VAX minicomputers to Pocket PC PDAs. NetBSD has also been ported to several video game consoles such as the Sega Dreamcast and the Nintendo Wii. As of 2019, NetBSD supports 59 hardware platforms (across 16 different
instruction set In computer science, an instruction set architecture (ISA) is an abstract model that generally defines how software controls the CPU in a computer or a family of computers. A device or program that executes instructions described by that ISA, s ...
s). The kernel and userland for these platforms are all built from a central unified source-code tree managed by CVS. Currently, unlike other kernels such as ÎĽClinux, the NetBSD kernel requires the presence of an MMU in any given target architecture. NetBSD's portability is aided by the use of hardware abstraction layer interfaces for low-level hardware access such as bus input/output or DMA. Using this portability layer,
device driver In the context of an operating system, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabli ...
s can be split into "machine-independent" (MI) and "machine-dependent" (MD) components. This makes a single driver easily usable on several platforms by hiding hardware access details, and reduces the work to port it to a new system. This permits a particular device driver for a PCI card to work without modifications, whether it is in a PCI slot on an
IA-32 IA-32 (short for "Intel Architecture, 32-bit", commonly called ''i386'') is the 32-bit version of the x86 instruction set architecture, designed by Intel and first implemented in the i386, 80386 microprocessor in 1985. IA-32 is the first incarn ...
,
Alpha Alpha (uppercase , lowercase ) is the first letter of the Greek alphabet. In the system of Greek numerals, it has a value of one. Alpha is derived from the Phoenician letter ''aleph'' , whose name comes from the West Semitic word for ' ...
,
PowerPC PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
, SPARC, or other architecture with a PCI bus. Also, a single driver for a specific device can operate via several different buses, like ISA, PCI, or PC Card. This platform independence aids the development of
embedded system An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is e ...
s, particularly since NetBSD 1.6, when the entire toolchain of
compiler In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
s,
assemblers Assembler may refer to: Arts and media * Nobukazu Takemura, avant-garde electronic musician, stage name Assembler * Assemblers, a fictional race in the ''Star Wars'' universe * Assemblers, an alternative name of the superhero group Champions of ...
, linkers, and other tools fully support cross-compiling. In 2005, as a demonstration of NetBSD's portability and suitability for embedded applications, Technologic Systems, a vendor of embedded systems hardware, designed and demonstrated a NetBSD-powered kitchen toaster. Commercial ports to embedded platforms were available from and supported by Wasabi Systems, including platforms such as the AMD Geode LX800,
Freescale Freescale Semiconductor, Inc. was an American semiconductor manufacturer. It was created by the divestiture of the Semiconductor Products Sector of Motorola in 2004. Freescale focused their integrated circuit products on the automotive, embedde ...
PowerQUICC processors, Marvell Orion, AMCC 405 family of PowerPC processors, and the
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
XScale XScale is a microarchitecture for central processing units initially designed by Intel implementing the ARM architecture (version 5) instruction set. XScale comprises several distinct families: IXP, IXC, IOP, PXA and CE (see more below), with some ...
IOP and IXP series.


Portable build framework

The NetBSD cross-compiling framework (also known as "build.sh") lets a developer build a complete NetBSD system for an architecture from a more powerful system of different architecture ( cross-compiling), including on a different operating system (the framework supports most
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
-compliant systems). Several embedded systems using NetBSD have required no additional software development other than toolchain and target rehost. As of 2017, NetBSD had reached fully reproducible builds on amd64 and SPARC64. The build.sh -P flag handles reproducible builds automatically.


The pkgsrc packages collection

NetBSD features ''
pkgsrc pkgsrc (''package source'') is a package management system for Unix-like operating systems. It was forked from the FreeBSD ports collection in 1997 as the primary package management system for NetBSD. Since then it has evolved independently; in 1 ...
'' (short for "package source"), a framework for building and managing third-party
application software Application software is any computer program that is intended for end-user use not operating, administering or programming the computer. An application (app, application program, software application) is any program that can be categorized as ...
packages. The pkgsrc collection consists of more than 20,000 packages as of . Building and installing packages such as Lumina,
KDE KDE is an international free software community that develops free and open-source software. As a central development hub, it provides tools and resources that enable collaborative work on its projects. Its products include the KDE Plasma gra ...
, GNOME, the
Apache HTTP Server The Apache HTTP Server ( ) is a free and open-source software, free and open-source cross-platform web server, released under the terms of Apache License, Apache License 2.0. It is developed and maintained by a community of developers under the ...
or
Perl Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl was developed ...
is performed through the use of a system of
makefile In software development, Make is a command-line interface software tool that performs actions ordered by configured Dependence analysis, dependencies as defined in a configuration file called a ''makefile''. It is commonly used for build automati ...
s. This can automatically fetch the source code, unpack, patch, configure, build and install the package such that it can be removed again later. An alternative to compiling from source is to use a precompiled binary package. In either case, any prerequisites/dependencies will be installed automatically by the package system, without need for manual intervention.
pkgsrc pkgsrc (''package source'') is a package management system for Unix-like operating systems. It was forked from the FreeBSD ports collection in 1997 as the primary package management system for NetBSD. Since then it has evolved independently; in 1 ...
is a
cross-platform Within computing, cross-platform software (also called multi-platform software, platform-agnostic software, or platform-independent software) is computer software that is designed to work in several Computing platform, computing platforms. Some ...
packaging system, for it supports not only NetBSD, but can be used on several other Unices, among which
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
, Solaris and
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
are considered primary targets. Other
BSD The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
s,
HP-UX HP-UX (from "Hewlett Packard Unix") is a proprietary software, proprietary implementation of the Unix operating system developed by Hewlett Packard Enterprise; current versions support HPE Integrity Servers, based on Intel's Itanium architect ...
, Minix, SCO UNIX ( Unixware and OpenServer) and QNX have a number of active pkgsrc users but do not receive active maintenance. pkgsrc is the default package management system on SmartOS and Minix3. It was also previously adopted as the official package management system for
DragonFly BSD DragonFly BSD is a free and open-source Unix-like operating system forked from FreeBSD 4.8. Matthew Dillon, an Amiga developer in the late 1980s and early 1990s and FreeBSD developer between 1994 and 2003, began working on DragonFly BSD in ...
, and made available as an alternative packaging framework on MirBSD and QNX.


Symmetric multiprocessing

NetBSD has supported SMP since the NetBSD 2.0 release in 2004, which was initially implemented using the giant lock approach. During the development cycle of the NetBSD 5 release, major work was done to improve SMP support; most of the kernel subsystems were modified to use the fine-grained locking approach. New synchronization primitives were implemented and scheduler activations was replaced with a 1:1 threading model in February 2007. A scalable M2 thread scheduler was also implemented, providing separate real-time (RT) and time-sharing (TS) queues, and improving the performance on MP systems. Threaded software interrupts were implemented to improve synchronization. The
virtual memory In computing, virtual memory, or virtual storage, is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a ver ...
system, memory allocator and trap handling were made MP safe. The file system framework, including the VFS and major file systems were modified to be MP safe. As of NetBSD 10.0, the only subsystems running with a giant lock are SATA
device driver In the context of an operating system, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabli ...
s,
interrupt In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted ...
handlers, the autoconf(9) framework and most the network stack, unless the NET_MPSAFE kernel option is enabled. In reality, starting with release 8.0, various parts of the network stack have been made MP safe already, but NET_MPSAFE is kept disabled by default, because non-MP-safe components that are also unprotected by the giant lock may otherwise crash the kernel when loaded in memory. The 4.4BSD scheduler still remains the default, but was modified to scale with SMP, merging features from SCHED_M2. In 2017, the scheduler was changed to better distribute load of long-running processes on multiple CPUs, and tunable kern.sched sysctl(3) parameters were introduced. The release of NetBSD 10.0 brought significant performance enhancements, especially on multiprocessor and multicore systems; the scheduler gained major awareness of NUMA and hyperthreading, and became able to spread the load evenly across different physical CPUs, as well as to scale better on a mixture of slow and fast cores (e.g. ARM big.LITTLE).


Security

NetBSD supports a number of features designed to improve system security. Some are listed below. The Kernel Authorization framework (or kauth) is a subsystem managing all authorization requests inside the kernel, and used as system-wide security policy. kauth(9) acts as a gatekeeper between kernel's own routines, by checking whether a given call or a specific operation is allowed within the context, and returns EPERM if not. Most syscalls issue an authorization request in their corresponding handler via kauth_authorize_action(). kauth also allows external modules to plug-in the authorization process. Verified Executables (or Veriexec) is an in-kernel file integrity subsystem in NetBSD. It allows the user to set digital fingerprints (hashes) of files, and take a number of different actions if files do not match their fingerprints. For example, one can allow
Perl Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl was developed ...
to run only scripts that match their fingerprints. Starting with version 2.0, NetBSD supports non-executable mappings on platforms where the hardware allows it. Process stack and heap mappings are non-executable by default. This makes exploiting potential buffer overflows harder. NetBSD supports PROT_EXEC permission via mmap() for all platforms where the hardware differentiates execute access from data access, though not necessarily with single-page granularity. NetBSD implements several exploit mitigation features, such as ASLR (in both userland and kernel), restricted mprotect() ( W^X) and Segvguard from the PaX project, and GCC Stack Smashing Protection (SSP, or also known as ProPolice, enabled by default since NetBSD 6.0) compiler extensions. The cryptographic device driver (CGD) provides transparent disk encryption by acting as a logical device that is layered on top of another block device, such as a physical disk or partition (including CDs and DVDs) or a vnd(4) pseudo device. It supports the Adiantum cipher, besides AES in CBC/XTS modes. NPF, introduced with NetBSD 6.0, is a layer 3 packet filter, supporting stateful packet inspection,
IPv6 Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP), the communication protocol, communications protocol that provides an identification and location system for computers on networks and routes traffic ...
, NAT, IP sets, and extensions. It uses BPF as its core engine, and supports bpfjit. NPF was designed with a focus on high performance, scalability, multi-threading and modularity. Relevant to security are also BSD securelevels, blocklistd(8), a daemon capable of blocking ports on demand to avoid DoS abuse, and the wg(4) interface, which provides a homegrown implementation of the Wireguard protocol. The NetBSD code is regularly scanned for bugs, and security advisories — containing a pointer to the fix — are published on the official mailing lists.


Memory management

NetBSD uses the UVM
virtual memory In computing, virtual memory, or virtual storage, is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a ver ...
system, developed by Charles D. Cranor at Washington University in 1998, and committed to the NetBSD source tree by Matthew Green, who handled integration issues and wrote the swap subsystem. The original
Mach The Mach number (M or Ma), often only Mach, (; ) is a dimensionless quantity in fluid dynamics representing the ratio of flow velocity past a Boundary (thermodynamic), boundary to the local speed of sound. It is named after the Austrian physi ...
based 4.4BSD system was replaced by UVM in NetBSD 1.4. UVM is designed to reduce the complexity of the 4.4BSD VM system, and offer improved performance for those applications which make heavy use of VM features, such as
memory-mapped file A memory-mapped file is a segment of virtual memory that has been assigned a direct byte-for-byte correlation with some portion of a file or file-like resource. This resource is typically a file that is physically present on disk, but can also b ...
s and copy-on-write memory. While retaining the same MD/MI layering and mapping structures of the BSD VM, UVM introduces some noticeable changes: * Memory objects are allocated and managed in cooperation with their backing data source (typically vnodes), reducing the overhead of the ''vm_object'' chain management. The vm_page
structure A structure is an arrangement and organization of interrelated elements in a material object or system, or the object or system so organized. Material structures include man-made objects such as buildings and machines and natural objects such as ...
describes how the backing store can be accessed. Essentially, this is a pointer to a list of functions which act as bridge between UVM and the external backing store (such as a disk) that provides UVM with its data. UVM's memory object points directly to the
pager A pager, also known as a beeper or bleeper, is a Wireless communication, wireless telecommunications device that receives and displays Alphanumericals, alphanumeric or voice messages. One-way pagers can only receive messages, while response p ...
operations, making the allocation of pager-related
data structure In computer science, a data structure is a data organization and storage format that is usually chosen for Efficiency, efficient Data access, access to data. More precisely, a data structure is a collection of data values, the relationships amo ...
s more efficient. * Anonymous pages are grouped in multi-page clusters for pageout. Each
page Page most commonly refers to: * Page (paper), one side of a leaf of paper, as in a book Page, PAGE, pages, or paging may also refer to: Roles * Page (assistance occupation), a professional occupation * Page (servant), traditionally a young m ...
’s location on swap is assigned, so that the cluster occupies a contiguous chunk of swap and can be paged out in a single large I/O operation. This enhances paging response time for I/O operations, and allows UVM to recover quicker from page shortages. * Memory sharing is supported using three data movement mechanisms: ''page loanout'', ''page transfer'', and ''map entry passing''. A
process A process is a series or set of activities that interact to produce a result; it may occur once-only or be recurrent or periodic. Things called a process include: Business and management * Business process, activities that produce a specific s ...
may safely let a shared copy-on-write copy of its memory be used either by other processes, the I/O system, or the IPC system. The ''unified buffer cache'' (ubc(9) ), written by Chuck Silvers, allows to use UVM pages to cache vnode data rather than the traditional UNIX buffer cache. This avoids costly data copies, and makes more memory available for caching regular file data. In 2003, UVM was modified to use a top-down memory management, thus merging the space reserved for heap growth and the area of space reserved for mmap(2)'ed allocations. This allows the heap to grow larger, or a process to mmap more or larger objects. Support for RAM hot-plugging was added in 2016. The uvm_hotplug(9) API replaces the previously exposed vm_physmem static array with a red–black tree backing to keep track of memory segments, allowing the list of physical pages to be dynamically expanded or collapsed. During the release cycle of NetBSD 10.0, major work was done to optimize the virtual memory system. The page allocator was rewritten to be more efficient and CPU topology aware, adding preliminary NUMA support. The algorithm used in the memory page lookup cache was switched to a faster radix tree. Tracking and indexing of clean/ dirty pages was improved, speeding up fsync(2) on large files by orders of magnitude.
Lock Lock(s) or Locked may refer to: Common meanings *Lock and key, a mechanical device used to secure items of importance *Lock (water navigation), a device for boats to transit between different levels of water, as in a canal Arts and entertainme ...
contention was reduced by making the maintentance of page replacement state more concurrent.


Virtualization

The Xen virtual-machine monitor has been supported in NetBSD since release 3.0. The use of Xen requires a special pre-kernel boot environment that loads a Xen-specialized kernel as the "host OS" (Dom0). Any number of "guest OSes" (DomU) virtualized computers, with or without specific Xen/DomU support, can be run in parallel with the appropriate hardware resources. The need for a third-party boot manager, such as GRUB, was eliminated with NetBSD 5's Xen-compatible boot manager. NetBSD 6 as a Dom0 has been benchmarked comparably to Linux, with better performance than Linux in some tests. As of NetBSD 9.0, accelerated virtualization is provided through the native type-2 hypervisor NVMM (NetBSD Virtual Machine Monitor). It provides a virtualization API, libnvmm, that can be leveraged by emulators such as
QEMU The Quick Emulator (QEMU) is a free and open-source emulator that uses dynamic binary translation to emulate a computer's processor; that is, it translates the emulated binary codes to an equivalent binary format which is executed by the mach ...
. The kernel NVMM driver comes as a dynamically loadable kernel module, made of a generic machine-independent frontend, to which machine-dependent backends can be plugged to implement the core virtualization (currently only
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
AMD SVM and Intel VMX are supported). A unique property of NVMM is that the kernel never accesses guest VM memory, only creating it. Intel's Hardware Accelerated Execution Manager (HAXM) provides an alternative solution for acceleration in QEMU for Intel CPUs only, similar to Linux's KVM.


Rump kernels

NetBSD 5.0 introduced the rump kernel, an architecture to run drivers in user-space by emulating kernel-space calls. A rump kernel can be seen as a lightweight, portable virtualized driver execution environment, characterized by small
memory footprint Memory footprint refers to the amount of main memory that a program uses or references while running. The word footprint generally refers to the extent of physical dimensions that an object occupies, giving a sense of its size. In computing, t ...
and minimized
attack surface The attack surface of a software environment is the sum of the different points (for " attack vectors") where an unauthorized user (the "attacker") can try to enter data to, extract data, control a device or critical software in an environment. Ke ...
. The core of a rump kernel contains a set of fundamental routines which allow it to access the host platform's resources, such as
virtual memory In computing, virtual memory, or virtual storage, is a memory management technique that provides an "idealized abstraction of the storage resources that are actually available on a given machine" which "creates the illusion to users of a ver ...
, thread scheduler and I/O functions. This is called the rampuser(3) hypercall interface. The various kernel subsystems (e.g.
TCP/IP The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suite are ...
stack, filesystems, hardware
device driver In the context of an operating system, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabli ...
s), globally referred as ''drivers'', are layered on top of the hypercall interface, by being linked against a stripped-down version of the NetBSD kernel that can be executed in user mode. Most drivers are optional, and may be included or not depending on the target application and scope. This "anykernel" design allows adding support of NetBSD drivers to other kernel architectures, ranging from exokernels to
monolithic kernel A monolithic kernel is an operating system software architecture, architecture with the entire operating system running in kernel space. The monolithic model differs from other architectures such as the microkernel in that it alone defines a high ...
s. Other possible applications of rump kernels include deploying a task-specific unikernel to provide a
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
API for application depending on it, running a self-contained
database In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and a ...
with minimal footprints, a userspace Wireguard instance, editing the contents of a file system as unprivileged user, and segregating a web browser to its own TCP/IP stack. Rump kernels are also used internally by the NetBSD project for running tests on different kernel subsystems, as well as for
debugging In engineering, debugging is the process of finding the Root cause analysis, root cause, workarounds, and possible fixes for bug (engineering), bugs. For software, debugging tactics can involve interactive debugging, control flow analysis, Logf ...
purposes.


Storage

NetBSD includes many enterprise features like iSCSI, a journaling filesystem,
logical volume management In computer storage, logical volume management or LVM provides a method of allocating space on mass-storage devices that is more flexible than conventional partitioning schemes to store volumes. In particular, a volume manager can concatenate, ...
and the
ZFS ZFS (previously Zettabyte File System) is a file system with Volume manager, volume management capabilities. It began as part of the Sun Microsystems Solaris (operating system), Solaris operating system in 2001. Large parts of Solaris, includin ...
filesystem. The
bio(4) Bio or BIO may refer to: Computing * bio(4), a pseudo-device driver in RAID controller management interface in OpenBSD and NetBSD * Block I/O, a concept in computer data storage Politics * Julius Maada Bio (born 1964), Sierra Leonean politician, ...
interface for vendor-agnostic
RAID RAID (; redundant array of inexpensive disks or redundant array of independent disks) is a data storage virtualization technology that combines multiple physical Computer data storage, data storage components into one or more logical units for th ...
volume management through bioctl has been available in NetBSD since 2007. Support for software RAID is provided as a port of CMU RAIDframe, available since NetBSD 1.4. The ccd(4) driver provides the capability of combining one or more disks/partitions into one virtual disk, acting as another in-kernel RAID 0 subsystem. UFS2, an extension to BSD FFS adding 64-bit block pointers, variable-sized blocks (similar to extents), and extended flag fields, was ported from FreeBSD in 2003 and made available since NetBSD 2.0. The fss(4) snapshot driver was introduced the same year, allowing to create a read-only, atomic view of a FFS filesystem at a given point of time; a FFS snapshot works as a special device, which can be mounted and used in conjunction with utilities like dump(8) to create and export system
backup In information technology, a backup, or data backup is a copy of computer data taken and stored elsewhere so that it may be used to restore the original after a data loss event. The verb form, referring to the process of doing so, is "wikt:back ...
s. WAPBL, a FFS filesystem extension providing data journaling, was contributed by Wasabi Systems in 2008. Journaling allows rapid filesystem consistency after an unclean shutdown, and improves write performance by reducing synchronous
metadata Metadata (or metainformation) is "data that provides information about other data", but not the content of the data itself, such as the text of a message or the image itself. There are many distinct types of metadata, including: * Descriptive ...
writes, especially when creating a large number of inodes. Support for soft updates on NetBSD FFS(v1/2) was eventually removed in favor of WAPBL. Starting with release 10.0, FFSv2 also supports extended file attributes and ACLs as well as data TRIM. The
ZFS ZFS (previously Zettabyte File System) is a file system with Volume manager, volume management capabilities. It began as part of the Sun Microsystems Solaris (operating system), Solaris operating system in 2001. Large parts of Solaris, includin ...
filesystem developed by
Sun Microsystems Sun Microsystems, Inc., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
was imported into the NetBSD base system in 2009. In 2018, the ZFS codebase was updated and rebased on
FreeBSD FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
's implementation. ZFS was finally marked safe for daily use in NetBSD 9.0. As of 10.0 release, NetBSD ZFS stack is comparable to that of FreeBSD 12 (or below), with ZFS filesystem version "5.3", zpool version "5000" (some feature flags are not supported). Native ZFS encryption is noticeably missing, though a zpool may be created within a cgd(4) encrypted disk. Initial support for ZFS
root In vascular plants, the roots are the plant organ, organs of a plant that are modified to provide anchorage for the plant and take in water and nutrients into the plant body, which allows plants to grow taller and faster. They are most often bel ...
is available, but neither integrated in the installer nor in the bootloader. The NetBSD Logical Volume Manager is based on a BSD reimplementation of a device-mapper driver and a port of the Linux Logical Volume Manager tools. It was mostly written during the Google Summer of Code 2008. The CHFS
Flash memory Flash memory is an Integrated circuit, electronic Non-volatile memory, non-volatile computer memory storage medium that can be electrically erased and reprogrammed. The two main types of flash memory, NOR flash and NAND flash, are named for t ...
filesystem was imported into NetBSD in November 2011. CHFS is a file system developed at the Department of Software Engineering,
University of Szeged The University of Szeged () is a Public university, public research university in Szeged, Hungary. Established as the Jesuit Academy of Kolozsvár in present-day Cluj-Napoca in 1581, the institution was re-established as a university in 1872 by ...
,
Hungary Hungary is a landlocked country in Central Europe. Spanning much of the Pannonian Basin, Carpathian Basin, it is bordered by Slovakia to the north, Ukraine to the northeast, Romania to the east and southeast, Serbia to the south, Croatia and ...
, and is the first open source Flash-specific file system written for NetBSD. The PUFFS framework, introduced in NetBSD 5.0, is a kernel subsystem designed for running filesystems in userspace, and provides FUSE kernel level API compatibility in conjunction with the perfused(8) userland daemon. A tmpfs implementation for NetBSD using conventional in-memory data structures, was first developed by Julio M. Merino Vidal in 2005 as a GSoC project, and merged the same year in the NetBSD source tree.


Compatibility with other operating systems

At the source code level, NetBSD is very nearly entirely compliant with
POSIX The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
.1 (IEEE 1003.1-1990) standard and mostly compliant with POSIX.2 (IEEE 1003.2-1992). NetBSD provides
system call In computing, a system call (syscall) is the programmatic way in which a computer program requests a service from the operating system on which it is executed. This may include hardware-related services (for example, accessing a hard disk drive ...
-level binary compatibility on the appropriate processor architectures with its previous releases, but also with several other
UNIX Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
-derived and UNIX-like operating systems, including
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
, and other 4.3BSD derivatives like
SunOS SunOS is a Unix-branded operating system developed by Sun Microsystems for their workstation and server computer systems from 1982 until the mid-1990s. The ''SunOS'' name is usually only used to refer to versions 1.0 to 4.1.4, which were based ...
4. This allows NetBSD users to run many applications that are only distributed in binary form for other operating systems, usually with no significant loss of performance. Initial support for a
Haiku is a type of short form poetry that originated in Japan. Traditional Japanese haiku consist of three phrases composed of 17 Mora (linguistics), morae (called ''On (Japanese prosody), on'' in Japanese) in a 5, 7, 5 pattern; that include a ''kire ...
binary compat layer was published on the netbsd-user mailing list. A variety of "foreign" disk filesystem formats are also supported in NetBSD, including
ZFS ZFS (previously Zettabyte File System) is a file system with Volume manager, volume management capabilities. It began as part of the Sun Microsystems Solaris (operating system), Solaris operating system in 2001. Large parts of Solaris, includin ...
,
FAT In nutrition science, nutrition, biology, and chemistry, fat usually means any ester of fatty acids, or a mixture of such chemical compound, compounds, most commonly those that occur in living beings or in food. The term often refers specif ...
,
NTFS NT File System (NTFS) (commonly called ''New Technology File System'') is a proprietary journaling file system developed by Microsoft in the 1990s. It was developed to overcome scalability, security and other limitations with File Allocation Tabl ...
, Linux ext2fs,
Apple An apple is a round, edible fruit produced by an apple tree (''Malus'' spp.). Fruit trees of the orchard or domestic apple (''Malus domestica''), the most widely grown in the genus, are agriculture, cultivated worldwide. The tree originated ...
HFS HFS may refer to: Businesses and organisations * Croatian Film Association () * Hellenic Fire Service, Greece * Hospitality Franchise Systems, US Computing * Hierarchical file system, a system for organizing directories and files * Hierarchica ...
and
OS X macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
UFS,
RISC OS RISC OS () is an operating system designed to run on ARM architecture, ARM computers. Originally designed in 1987 by Acorn Computers of England, it was made for use in its new line of ARM-based Acorn Archimedes, Archimedes personal computers an ...
FileCore/ADFS,
AmigaOS AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions ...
Fast File System,
IRIX IRIX (, ) is a discontinued operating system developed by Silicon Graphics (SGI) to run on the company's proprietary MIPS architecture, MIPS workstations and servers. It is based on UNIX System V with Berkeley Software Distribution, BSD extensio ...
EFS, Version 7 Unix File System, and many more through PUFFS.
WINE Wine is an alcoholic drink made from Fermentation in winemaking, fermented fruit. Yeast in winemaking, Yeast consumes the sugar in the fruit and converts it to ethanol and carbon dioxide, releasing heat in the process. Wine is most often made f ...
can be installed on NetBSD through
pkgsrc pkgsrc (''package source'') is a package management system for Unix-like operating systems. It was forked from the FreeBSD ports collection in 1997 as the primary package management system for NetBSD. Since then it has evolved independently; in 1 ...
. Kernel support for USER_LTD — required for WoW64 — was contributed by Maxime Villard in 2017, allowing Win32 applications to be executed on amd64. The amd64 port of wine for NetBSD was completed by Naveen Narayanan as part of GSoC 2019.


Kernel scripting

Kernel-space scripting with the Lua programming language was added in NetBSD 7.0. The Lua language (i.e., its interpreter and standard libraries) was initially ported by Lourival Vieira Neto to the NetBSD kernel during GSoC 2010 and has undergone several improvements since then. The Lua (userspace) Test Suite was ported to NetBSD kernel Lua during GSoC 2015. There are two main differences between user and kernel space Lua: kernel Lua does not support floating-point numbers; as such, only Lua integers are available. It also does not have full support to user space libraries that rely on the operating system (e.g., ''io'' and ''os''). A sample implementation of I/O (file systems and sockets) bindings for kernel Lua was developed by Guilherme Salazar. Possible applications of the Lua kernel interpreter include embedding extensions for the NPF packet fiter, and building an in-kernel application sandbox based on kauth(9), with sandbox policies provided as Lua scripts.


Kernel debugging

NetBSD provides a minimalist kernel debugger — DDB(4) — which is invoked by default whenever the kernel would otherwise panic. DDB allows to inspect processes and threads, investigate deadlocks, get a stack trace, and generate a kernel crash dump for later analysis. Strict consistency check is enabled by building the kernel with option DIAGNOSTIC. This will cause the kernel to panic if corruption of internal data structures is detected (e.g. kernel NULL pointer dereference). NetBSD also supports a variety of in-kernel bug detection facilities, including code sanitizers (undefined behavior, address, thread, memory sanitizers), a kernel memory disclosure detection system (KLEAK) and a kernel diagnostic subsystem named heartbeat(9).


LKMs

Loadable kernel modules have been supported on NetBSD since 0.9. The original lkm(4) interface written by Terry Lambert was replaced by the new modules(7) subsystem, which supports dependency handling between modules, and loading of kernel modules on demand. New modules can only be loaded when securelevel is less than or equal to zero, or if the kernel was built with options INSECURE, due to security concerns regarding the lack of memory protection between modules and the rest of the kernel. Every kernel module is required to define its metadata through the C macro MODULE(class, name, required) and to implement a MODNAME_modcmd function, which the kernel calls to report important module-related events, like when the module loads or unloads.


Init

NetBSD uses a BSD style
init In Unix-based computer operating systems, init (short for ''initialization'') is the first process started during booting of the operating system. Init is a daemon process that continues running until the system is shut down. It is the direc ...
. Support for using an initial ramdisk is available but not enabled by default, except for specific configurations (e.g. root
encryption In Cryptography law, cryptography, encryption (more specifically, Code, encoding) is the process of transforming information in a way that, ideally, only authorized parties can decode. This process converts the original representation of the inf ...
). The rc.d(8) framework, designed by Luke Mewburn for NetBSD 1.5, provides a fully modular service management system, using individual shell scripts for controlling services, similar to what System V does, but without runlevels. When ''/etc/rc/'' is invoked by init(8), it executes scripts located in the /etc/rc.d directory. The order in which scripts are executed is determined by the rcorder(8) utility, based on the requirements stated in the dependency tags found within each script.


Sensors

NetBSD has featured a native hardware monitoring framework since 1999/2000. In 2003, it served as the inspiration behind the
OpenBSD OpenBSD is a security-focused operating system, security-focused, free software, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by fork (software development), forking NetBSD ...
's sysctl hw.sensors framework when some NetBSD drivers were being ported to OpenBSD. , NetBSD had close to 85 device drivers exporting data through the API of the envsys framework. Since the 2007 revision, serialization of data between the kernel and userland is done through XML
property list In the macOS, iOS, NeXTSTEP, and GNUstep programming frameworks, property list files are files that store serialized objects. Property list files use the filename extension .plist, and thus are often referred to as p-list files. Property l ...
s with the help of NetBSD's proplib(3).


Sound subsystem

The NetBSD audio(4) kernel API, modelled after
SunOS SunOS is a Unix-branded operating system developed by Sun Microsystems for their workstation and server computer systems from 1982 until the mid-1990s. The ''SunOS'' name is usually only used to refer to versions 1.0 to 4.1.4, which were based ...
sound stack (SADA), provides at the same time a uniform programming interface layer above different underlying audio hardware drivers, and a simple and well-documented backend for different sound libraries ( SDL, PortAudio, Mozilla cubeb) to use. Applications may interact with the ''/dev/audio'' device node directly, using a series of ioctls specified in the ''sys/audioio.h'' header file. Audio device information may be queried with the AUDIO_GETDEV ioctl. Playing and recording sound implies opening ''/dev/audio'' for read() / write() operations and passing a audio_info struct to the kernel. This results in reduced audio latency and CPU usage compared to using additional abstraction layers (other sound libraries and/or sound servers). The audio stack was reworked in NetBSD 8.0 to provide an in-kernel software mixing engine, with support for virtual channels; this allows more than one process to play or record audio at the same time. A compatibility mode for the OSS API is provided by the ''soundcard.h'' header file and the ''libossaudio'' library, which internally operate using the native Sun-like audio interface. NetBSD includes built-in MIDI support through the machine-independent midi(4) system.


Uses

NetBSD's clean design, high performance, scalability, and support for many architectures has led to its use in embedded devices and servers, especially in networking applications. NetBSD has also been noted for its stability and reliability over time. A commercial
real-time operating system A real-time operating system (RTOS) is an operating system (OS) for real-time computing applications that processes data and events that have critically defined time constraints. A RTOS is distinct from a time-sharing operating system, such as Unix ...
, QNX, uses a network stack based on NetBSD code, and provides various drivers ported from NetBSD. Dell Force10 uses NetBSD as the underlying operating system that powers FTOS (the Force10 Operating System), which is used in high scalability switch/routers. Force10 also made a donation to the NetBSD Foundation in 2007 to help further research and the open development community. NetBSD was used in
NASA The National Aeronautics and Space Administration (NASA ) is an independent agencies of the United States government, independent agency of the federal government of the United States, US federal government responsible for the United States ...
's SAMS-II Project of measuring the microgravity environment on the
International Space Station The International Space Station (ISS) is a large space station that was Assembly of the International Space Station, assembled and is maintained in low Earth orbit by a collaboration of five space agencies and their contractors: NASA (United ...
, and for investigations of TCP for use in
satellite A satellite or an artificial satellite is an object, typically a spacecraft, placed into orbit around a celestial body. They have a variety of uses, including communication relay, weather forecasting, navigation ( GPS), broadcasting, scient ...
networks. In 2004, SUNET used NetBSD to set the Internet2 Land Speed Record. NetBSD was chosen "due to the scalability of the TCP code". NetBSD is also used in Apple's AirPort Extreme and
Time Capsule A time capsule is a historic treasure trove, cache of goods or information, usually intended as a deliberate method of communication with future people, and to help future archaeologists, anthropologists, or historians. The preservation of holy ...
products, instead of Apple's own
OS X macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
(of which most Unix-level userland code is derived from FreeBSD code but some is derived from NetBSD code). Several companies are known to use NetBSD internally: * Wasabi Systems provides a commercial "Wasabi Certified BSD" product based on NetBSD with proprietary enterprise features and extensions, which are focused on embedded, server and storage applications. Wasabi has a long history of cooperation with the NetBSD project, including the development of WAPBL and PCI storage devices powered by NetBSD. * Precedence Technologies offers thin-client software (ThinIT) and accompanying hardware based on NetBSD. * Internet Initiative Japan, Inc. (IIJ) sells CPE routers commercialized as "SEIL", which run a modified version of NetBSD at their core, and operate through a proprietary network management system (SMF) also based on NetBSD. The SEIL/X4 has 2x GE ports ( WAN, DMZ), 4x GE L2 switch ports, 2x
USB Universal Serial Bus (USB) is an industry standard, developed by USB Implementers Forum (USB-IF), for digital data transmission and power delivery between many types of electronics. It specifies the architecture, in particular the physical ...
2.0 ports, and reaches a throughput of 2 Gbps, and VPN rate of up to 2 Gbit/s. * Moritz Systems, an EU-based IT company specialized in embedded systems, IoT,
edge computing Edge computing is a distributed computing model that brings computation and data storage closer to the sources of data. More broadly, it refers to any design that pushes computation physically closer to a user, so as to reduce the Latency (engineer ...
and quality audits, also bases its products on NetBSD. * TDI Security, a US company specialized in
cybersecurity Computer security (also cybersecurity, digital security, or information technology (IT) security) is a subdiscipline within the field of information security. It consists of the protection of computer software, systems and networks from thr ...
, offers portable SAN and VPN solutions (named "pocketSAN" and "pocketVPN" respectively), designed to be run from a USB thumb-drive or an embedded device, and built upon a minimalist deployment of NetBSD installed on
flash memory Flash memory is an Integrated circuit, electronic Non-volatile memory, non-volatile computer memory storage medium that can be electrically erased and reprogrammed. The two main types of flash memory, NOR flash and NAND flash, are named for t ...
("polyBSD"). The operating system of the T-Mobile Sidekick LX 2009
smartphone A smartphone is a mobile phone with advanced computing capabilities. It typically has a touchscreen interface, allowing users to access a wide range of applications and services, such as web browsing, email, and social media, as well as multi ...
is based on NetBSD. The Minix operating system uses a mostly NetBSD userland as well as its
pkgsrc pkgsrc (''package source'') is a package management system for Unix-like operating systems. It was forked from the FreeBSD ports collection in 1997 as the primary package management system for NetBSD. Since then it has evolved independently; in 1 ...
packages infrastructure since version 3.2. Parts of
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
were originally taken from NetBSD, such as some userspace command line tools. Bionic, the
C standard library The C standard library, sometimes referred to as libc, is the standard library for the C (programming language), C programming language, as specified in the ISO C standard.International Organization for Standardization, ISO/International Electrote ...
found in Android, incorporates code from NetBSD libc. The NPF packet filter has been used in commercial products such as Outscale and BisonRouter. NetBSD's own curses implementation is used by Sabotage Linux. NetBSD has earned popularity among retrocomputing enthusiasts, due to its lightweight and support for a wide range of hardware architecures. NetBSD may be used to revive vintage hardware, rainging from DEC VAXen, to Commodore
Amiga Amiga is a family of personal computers produced by Commodore International, Commodore from 1985 until the company's bankruptcy in 1994, with production by others afterward. The original model is one of a number of mid-1980s computers with 16-b ...
and IBM PCs. Rump kernels have been integrated in other operating systems to provide additional functionality: * Genode OS Framework; uses a rump kernel to support various files systems, both as a standalone FS server (''rump_fs'') and as a library plugin for its modular VFS (''vfs_rump.lib.so''). * GNU Hurd; implements multiple rump kernel deployments to get modern device drivers, ranging from storage device drivers (''RumpDisk''), to sound devices drivers (''RumpSound''), and drivers for
Ethernet Ethernet ( ) is a family of wired computer networking technologies commonly used in local area networks (LAN), metropolitan area networks (MAN) and wide area networks (WAN). It was commercially introduced in 1980 and first standardized in 198 ...
/ WLAN controllers (''RumpNet''). * VMware's Node Replicated Kernel (NRK); uses a rump kernel to provide a POSIX userspace API (
libc The C standard library, sometimes referred to as libc, is the standard library for the C programming language, as specified in the ISO C standard.ISO/ IEC (2018). '' ISO/IEC 9899:2018(E): Programming Languages - C §7'' Starting from the origina ...
, libpthread etc.) used by applications like memcached, LevelDB and Redis. The SDF Public Access Unix System, a
non-profit A nonprofit organization (NPO), also known as a nonbusiness entity, nonprofit institution, not-for-profit organization, or simply a nonprofit, is a non-governmental (private) legal entity organized and operated for a collective, public, or so ...
public access
UNIX Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
shell provider with the aim to provide remotely accessible computing facilities, uses NetBSD to power its infrastructure. With a network of eight 64-bit enterprise class servers running NetBSD, and realising a combined processing power of over 21.1 GFLOPS (2018), the SDF.org cluster is considered the largest NetBSD installation in the world, factually working as a testbed for future NetBSD releases.


Licensing

All of the NetBSD kernel and most of the core userland source code is released under the terms of the
BSD License BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lic ...
(two, three, and four-clause variants). This essentially allows everyone to use, modify, redistribute or sell it as they wish, as long as they do not remove the copyright notice and license text (the four-clause variants also include terms relating to publicity material). Thus, the development of products based on NetBSD is possible without having to make modifications to the source code public. In contrast, the GPL, which does not apply to NetBSD, stipulates that changes to source code of a product must be released to the product recipient when products derived from those changes are released. On 20 June 2008, the NetBSD Foundation announced a transition to the two clause BSD license, citing concerns with UCB support of clause 3 and industry applicability of clause 4. NetBSD also includes the GNU development tools and other packages, which are covered by the GPL and other open source licenses. As with other
BSD The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
projects, NetBSD separates those in its base source tree to make it easier to remove code that is under more restrictive licenses. As for packages, the installed software licenses may be controlled by modifying the list of allowed licenses in the pkgsrc configuration file (mk.conf).


Releases

The following table lists major NetBSD releases and their notable features in reverse chronological order. Minor and patch releases are not included.


Logo

The NetBSD "flag" logo, designed by Grant Bissett, was introduced in 2004 and is an abstraction of the older logo, which was designed by Shawn Mueller in 1994. Mueller's version was based on the famous
World War II World War II or the Second World War (1 September 1939 – 2 September 1945) was a World war, global conflict between two coalitions: the Allies of World War II, Allies and the Axis powers. World War II by country, Nearly all of the wo ...
photograph Raising the Flag on Iwo Jima.


The NetBSD Foundation

The NetBSD Foundation is the legal entity that owns the intellectual property and trademarks associated with NetBSD, and on 22 January 2004, became a 501(c)3 tax-exempt non-profit organization. The members of the foundation are developers who have CVS commit access. The NetBSD Foundation has a Board of Directors, elected by the voting of members for two years.


Hosting

Hosting for the project is provided primarily by
Columbia University Columbia University in the City of New York, commonly referred to as Columbia University, is a Private university, private Ivy League research university in New York City. Established in 1754 as King's College on the grounds of Trinity Churc ...
, and
Western Washington University Western Washington University (WWU or Western) is a public university in Bellingham, Washington, United States. The northernmost university in the contiguous United States, WWU was founded in 1893 as the state-funded New Whatcom Normal School, s ...
, fronted by a CDN provided by Fastly. Mirrors for the project are spread around the world and provided by volunteers and supporters of the project.


See also

*
Berkeley Software Distribution The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginn ...
*
BSD licenses BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lice ...
* Comparison of BSD operating systems * List of BSD operating systems * Lumina (desktop environment) * Comparison of operating systems * Comparison of operating system kernels


References

* *


External links

* {{Unix-like ARM operating systems Lightweight Unix-like systems PowerPC operating systems Software using the BSD license 1993 software X86-64 operating systems IA-32 operating systems Monolithic kernels