NetBSD is a
free and open-source Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser 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, and ot ...
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
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 system
An embedded system is a 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 ''embedded'' as ...
s.
The NetBSD project focuses on code clarity, careful design, and portability across many
computer architecture
In computer engineering, computer architecture is a description of the structure of a computer system made from component parts. It can sometimes be a high-level description that ignores details of the implementation. At a more detailed level, t ...
s. 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 of the
University of California, Berkeley
The University of California, Berkeley (UC Berkeley, Berkeley, Cal, or California) is a public land-grant research university in Berkeley, California. Established in 1868 as the University of California, it is the state's first land-grant u ...
, via their Net/2
source code
In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
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
Theo de Raadt (; ; born May 19, 1968) is a South African-born software engineer who lives in Calgary, Alberta, Canada. He is the founder and leader of the OpenBSD and OpenSSH projects and was also a founding member of NetBSD. In 2004, 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 system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a '' network of networks'' that consists of private, pub ...
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, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by forking NetBSD 1.0. According to the website, the OpenBSD project em ...
, 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 19 ...
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
Software versioning is the process of assigning either unique ''version names'' or unique ''version numbers'' to unique states of computer software. Within a given version number category (e.g., major or minor), these numbers are generally assig ...
, 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.
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
In computer architecture, 64-bit Integer (computer science), integers, memory addresses, or other Data (computing), data units are those that are 64 bits wide. Also, 64-bit central processing unit, CPUs and arithmetic logic unit, ALUs are those ...
architectures
Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction. It is both the process and the product of sketching, conceiving, planning, designing, and constructing buildings o ...
. These range from
VAX
VAX (an acronym for Virtual Address eXtension) is a series of computers featuring a 32-bit instruction set architecture (ISA) and virtual memory that was developed and sold by Digital Equipment Corporation (DEC) in the late 20th century. The V ...
minicomputer
A minicomputer, or colloquially mini, is a class of smaller general purpose computers that developed in the mid-1960s and sold at a much lower price than mainframe and mid-size computers from IBM and its direct competitors. In a 1970 survey, ...
s to
Pocket PC PDAs. As of 2019, NetBSD supports 59 hardware platforms (across 16 different
instruction set
In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, such as a central processing unit (CPU), is called an ' ...
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
μClinux is a variation of the Linux kernel, previously maintained as a fork, that targets microcontrollers without a memory management unit (MMU). It was integrated into the mainline kernel as of 2.5.46; the project continues to develop patc ...
, 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
Hardware abstractions are sets of routines in software that provide programs with access to hardware resources through programming interfaces. The programming interface allows all devices in a particular class ''C'' of hardware devices to be acce ...
interfaces for low-level hardware access such as
bus
A bus (contracted from omnibus, with variants multibus, motorbus, autobus, etc.) is a road vehicle that carries significantly more passengers than an average car or van. It is most commonly used in public transport, but is also in use for cha ...
input/output or
DMA. Using this portability layer,
device driver
In computing, 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, enabling operating systems and ot ...
s can be split into "machine-independent" and "machine-dependent" 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 80386 microprocessor in 1985. IA-32 is the first incarnation o ...
,
Alpha
Alpha (uppercase , lowercase ; grc, ἄλφα, ''álpha'', or ell, άλφα, álfa) 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 , whic ...
,
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
SPARC (Scalable Processor Architecture) is a reduced instruction set computer (RISC) instruction set architecture originally developed by Sun Microsystems. Its design was strongly influenced by the experimental Berkeley RISC system developed ...
, 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
In computing, PC Card is a configuration for computer parallel communication peripheral interface, designed for laptop computers. Originally introduced as PCMCIA, the PC Card standard as well as its successors like CardBus were defined and devel ...
.
In comparison,
Linux
Linux ( or ) 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. Linux is typically packaged as a Linux distribution, which ...
device driver code often must be reworked for each new architecture. As a consequence, in porting efforts by NetBSD and Linux developers, NetBSD has taken much less time to port to new hardware.
This
platform independence
In 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 platforms. Some cross-platform software r ...
aids the development of
embedded system
An embedded system is a 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 ''embedded'' as ...
s, particularly since NetBSD 1.6, when the entire toolchain of
compiler
In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
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 A ...
,
linkers, and other tools fully support
cross-compiling
A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on an Android smartphone is a cross c ...
.
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
A toaster is a small electric appliance that uses radiant heat to brown sliced bread into toast.
Types
Pop-up toaster
In pop-up or automatic toasters, a single vertical piece of bread is dropped into a slot on the top of the toaste ...
.
Commercial ports to embedded platforms, including the
AMD Geode
Geode was a series of x86-compatible system-on-a-chip microprocessors and I/O companions produced by AMD, targeted at the embedded computing market.
The series was originally launched by National Semiconductor as the Geode family in 1999. The or ...
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, embed ...
PowerQUICC
PowerQUICC is the name for several PowerPC- and Power ISA-based microcontrollers from Freescale Semiconductor. They are built around one or more PowerPC cores and the Communications Processor Module ( QUICC Engine) which is a separate RISC core sp ...
processors, Marvell Orion,
AMCC 405 family of PowerPC processors,
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 seri ...
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, were available from and supported by Wasabi Systems.
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
A cross compiler is a compiler capable of creating executable code for a platform other than the one on which the compiler is running. For example, a compiler that runs on a PC but generates code that runs on an Android smartphone is a cross c ...
), 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 both the system- and user-level application programming interf ...
-compliant systems). Several embedded systems using NetBSD have required no additional software development other than toolchain and target rehost.
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 19 ...
'' (short for "package source"), a framework for building and managing third-party
application software
Application may refer to:
Mathematics and computing
* Application software, computer software designed to help the user to perform specific tasks
** Application layer, an abstraction layer that specifies protocols and interface methods used in a c ...
packages. The pkgsrc collection consists of more than 20,000 packages as of . Building and installing packages such as
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 allow collaborative work on this kind of software. Well-known products include the ...
,
GNOME, the
Apache HTTP Server
The Apache HTTP Server ( ) is a free and open-source cross-platform web server software, released under the terms of Apache License 2.0. Apache is developed and maintained by an open community of developers under the auspices of the Apache So ...
or
Perl
Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offici ...
is performed through the use of a system of
makefile
In software development, Make is a build automation tool that automatically builds executable programs and libraries from source code by reading files called ''Makefiles'' which specify how to derive the target program. Though integrated devel ...
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 supports not only NetBSD, but also several other BSD variants like
FreeBSD
FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
and
Darwin/
Mac OS X
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
, and other
Unix-like
A Unix-like (sometimes referred to as UN*X 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 Unix-li ...
operating systems such as
Linux
Linux ( or ) 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. Linux is typically packaged as a Linux distribution, which ...
,
Solaris
Solaris may refer to:
Arts and entertainment Literature, television and film
* ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem
** ''Solaris'' (1968 film), directed by Boris Nirenburg
** ''Solaris'' (1972 film), directed by ...
,
IRIX, and others, as well as
Interix
Interix was an optional, POSIX-conformant Unix subsystem for Windows NT operating systems. Interix was a component of Windows Services for UNIX, and a superset of the Microsoft POSIX subsystem. Like the POSIX subsystem, Interix was an environment ...
.
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 19 ...
was 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 Ju ...
.
Symmetric multiprocessing
NetBSD has supported
SMP since the NetBSD 2.0 release in 2004, which was initially implemented using the
giant lock
In operating systems, a giant lock, also known as a big-lock or kernel-lock, is a lock that may be used in the kernel to provide concurrency control required by symmetric multiprocessing (SMP) systems.
A giant lock is a solitary global lock that i ...
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
In computer science, a lock or mutex (from mutual exclusion) is a synchronization primitive: a mechanism that enforces limits on access to a resource when there are many threads of execution. A lock is designed to enforce a mutual exclusion concu ...
approach. New
synchronization primitives were implemented and
scheduler activations Scheduler activations are a threading mechanism that, when implemented in an operating system's process scheduler, provide kernel-level thread functionality with user-level thread flexibility and performance. This mechanism uses a so-called "N:M" ...
was replaced with a
1:1 threading model in February 2007. A scalable M2 thread scheduler was implemented, though the old 4.4BSD scheduler still remains the default but was modified to scale with SMP. 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 very ...
system,
memory allocator and
trap handling were made MP safe. The file system framework, including the
VFS and major
file system
In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one larg ...
s were modified to be MP safe. Since April 2008 the only subsystems running with a giant lock are the
network protocols
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any kind of variation of a physical quantity. The protocol defines the rules, syntax, semantics and synchroniza ...
and most
device driver
In computing, 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, enabling operating systems and ot ...
s.
Security
NetBSD provides various features in the security area. The Kernel Authorization framework (or Kauth) is a subsystem managing all authorization requests inside the kernel, and used as system-wide security policy. It allows external modules to plug-in the authorization process. NetBSD also incorporates exploit mitigation features,
ASLR
Address space layout randomization (ASLR) is a computer security technique involved in preventing Exploit (computer security), exploitation of memory corruption Vulnerability (computing), vulnerabilities. In order to prevent an attacker from reli ...
, KASLR, restricted mprotect() and Segvguard from the
PaX
Pax or PAX may refer to:
Peace
* Peace (Latin: ''pax'')
** Pax (goddess), the Roman goddess of peace
** Pax, a truce term
* Pax (liturgy), a salutation in Catholic and Lutheran religious services
* Pax (liturgical object), an object formerly ki ...
project, and
GCC Stack Smashing Protection (SSP, or also known as ProPolice, enabled by default since NetBSD 6.0) compiler extensions.
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 family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offici ...
to run only scripts that match their fingerprints. The cryptographic device driver (CGD) allows using disks or partitions (including CDs and DVDs) for encrypted storage.
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 hypervisor NVMM (NetBSD Virtual Machine Monitor).
It provides a virtualization API,
libnvmm
, that can be leveraged by emulators such as
QEMU
QEMU is a free and open-source emulator (Quick EMUlator). It emulates the machine's central processing unit, processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it t ...
. 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.
NetBSD 5.0 introduced 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.
The NetBSD drivers can be used on top of the ...
, an architecture to run drivers in user-space by emulating kernel-space calls. This anykernel architecture allows adding support of NetBSD drivers to other kernel architectures, ranging from
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.
Operating systems generally present hardware resources to applications through high-lev ...
s to
monolithic kernel
A monolithic kernel is an operating system architecture where the entire operating system is working in kernel space. The monolithic model differs from other operating system architectures (such as the microkernel architecture) in that it alone ...
s.
Storage
NetBSD includes many enterprise features like
iSCSI
Internet Small Computer Systems Interface or iSCSI ( ) is an Internet Protocol-based storage networking standard for linking data storage facilities. iSCSI provides block-level access to storage devices by carrying SCSI commands over a TCP/IP ...
, a
journaling filesystem,
logical volume management and the
ZFS
ZFS (previously: Zettabyte File System) is a file system with volume management capabilities. It began as part of the Sun Microsystems Solaris operating system in 2001. Large parts of Solaris – including ZFS – were published under an ope ...
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 politici ...
interface for vendor-agnostic
RAID
Raid, RAID or Raids may refer to:
Attack
* Raid (military), a sudden attack behind the enemy's lines without the intention of holding ground
* Corporate raid, a type of hostile takeover in business
* Panty raid, a prankish raid by male college ...
volume management through
bioctl
The bio(4) pseudo-device driver and the bioctl(8) utility implement a generic RAID volume management interface in OpenBSD and NetBSD. The idea behind this software is similar to ifconfig, where a single utility from the operating system can be ...
has been available in NetBSD since 2007.
The
WAPBL __NOTOC__
Write Ahead Physical Block Logging (WAPBL) provides meta data journaling for file systems in conjunction with Fast File System (FFS) to accomplish rapid filesystem consistency after an unclean shutdown of the filesystem and better gener ...
journaling filesystem, an extension of the BSD FFS filesystem, was contributed by Wasabi Systems in 2008.
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
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 ...
tools. It was mostly written during the
Google Summer of Code
The Google Summer of Code, often abbreviated to GSoC, is an international annual program in which Google awards stipends to contributors who successfully complete a free and open-source software coding project during the summer. , the program is ...
2008.
The
ZFS
ZFS (previously: Zettabyte File System) is a file system with volume management capabilities. It began as part of the Sun Microsystems Solaris operating system in 2001. Large parts of Solaris – including ZFS – were published under an ope ...
filesystem developed by
Sun Microsystems
Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the ...
was imported into the NetBSD base system in 2009.
The
CHFS Flash memory
Flash memory is an electronic 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 the NOR and NAND logic gates. Both us ...
filesystem was imported into NetBSD in November 2011. CHFS is a file system developed at the Department of Software Engineering,
University of Szeged
, mottoeng = Truth. Bravery. Freedom.
, established =
, type = Public research university
, founder = Emperor Franz Joseph I
, affiliation = European University Association, Science Without Borders, Confucius Institute
, budget = US$220 m ...
,
Hungary
Hungary ( hu, Magyarország ) is a landlocked country in Central Europe. Spanning of the 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 a ...
, and is the first open source Flash-specific file system written for NetBSD.
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 both the system- and user-level application programming interf ...
.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 (commonly abbreviated to 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, acc ...
-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, multiuser 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, and ot ...
-derived and UNIX-like operating systems, including
Linux
Linux ( or ) 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. Linux is typically packaged as a Linux distribution, which ...
, and other 4.3BSD derivatives like
SunOS 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.
A variety of "foreign" disk
filesystem
In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is Computer data storage, stored and retrieved. Without a file system, data placed in a storage me ...
formats are also supported in NetBSD, including
ZFS
ZFS (previously: Zettabyte File System) is a file system with volume management capabilities. It began as part of the Sun Microsystems Solaris operating system in 2001. Large parts of Solaris – including ZFS – were published under an ope ...
,
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 spec ...
,
NTFS
New Technology File System (NTFS) is a proprietary journaling file system developed by Microsoft. Starting with Windows NT 3.1, it is the default file system of the Windows NT family. It superseded File Allocation Table (FAT) as the preferred fil ...
, Linux
ext2fs
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 p ...
,
Apple
An apple is an edible fruit produced by an apple tree (''Malus domestica''). Apple fruit tree, trees are agriculture, cultivated worldwide and are the most widely grown species in the genus ''Malus''. The tree originated in Central Asia, wh ...
HFS and
OS X
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
UFS,
RISC OS
RISC OS is a computer operating system originally designed by Acorn Computers Ltd in Cambridge, England. First released in 1987, it was designed to run on the ARM chipset, which Acorn had designed concurrently for use in its new line of Archi ...
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 Fast File System may refer to:
* Berkeley Fast File System, as used by the various BSD variants
* Amiga Fast File System
The Amiga Fast File System (abbreviated AFFS, or more commonly historically as FFS) is a file system used on the Amiga pe ...
,
IRIX EFS,
Version 7 Unix File System, and many more through
PUFFS.
Kernel scripting
Kernel-space scripting with the
Lua programming language
Lua ( ; from meaning ''moon'') is a lightweight, high-level, multi-paradigm programming language designed primarily for embedded use in applications. Lua is cross-platform, since the interpreter of compiled bytecode is written in ANSI C, ...
was added in NetBSD 7.0. The Lua language (i.e., its interpreter and standard libraries) was initially ported to the NetBSD kernel during Google Summer of Code 2010 and has undergone several improvements since then. There are two main differences between user and kernel space Lua: kernel Lua does not support
floating-point numbers
In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can ...
; 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'').
Sensors
NetBSD has featured a native
hardware monitoring
A system monitor is a hardware or software component used to monitor system resources and performance in a computer system.
Among the management issues regarding use of system monitoring tools are resource usage and privacy.
Overview
Software ...
framework since 1999/2000, and in 2003, it served as the inspiration behind the
OpenBSD
OpenBSD is a security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by forking NetBSD 1.0. According to the website, the OpenBSD project em ...
's sysctl
hw.sensors
The hw.sensors framework is a kernel-level hardware sensors framework originating from OpenBSD, which uses the sysctl kernel interface as the transport layer between the kernel and the userland. , the framework is used by over a hundred devi ...
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, serialisation 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 lis ...
s with the help of NetBSD's
proplib(3)
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 list ...
.
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.
A commercial
real-time operating system
A real-time operating system (RTOS) is an operating system (OS) for real-time applications that processes data and events that have critically defined time constraints. An RTOS is distinct from a time-sharing operating system, such as Unix, which m ...
,
QNX
QNX ( or ) is a commercial Unix-like real-time operating system, aimed primarily at the embedded systems market. QNX was one of the first commercially successful microkernel operating systems.
The product was originally developed in the early ...
, 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.
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.
NetBSD was used in
NASA
The National Aeronautics and Space Administration (NASA ) is an independent agency of the US federal government responsible for the civil space program, aeronautics research, and space research.
NASA was established in 1958, succeeding t ...
's
SAMS-II Project of measuring the microgravity environment on the
International Space Station
The International Space Station (ISS) is the largest modular space station currently in low Earth orbit. It is a multinational collaborative project involving five participating space agencies: NASA (United States), Roscosmos (Russia), JAXA ...
, and for investigations of
TCP for use in
satellite
A satellite or artificial satellite is an object intentionally placed into orbit in outer space. Except for passive satellites, most satellites have an electricity generation system for equipment on board, such as solar panels or radioisotope ...
networks.
In 2004,
SUNET used NetBSD to set the
Internet2
Internet2 is a not-for-profit United States computer networking consortium led by members from the research and education communities, industry, and government. The Internet2 consortium administrative headquarters are located in Ann Arbor, Mi ...
Land Speed Record. NetBSD was chosen "due to the scalability of the TCP code".
NetBSD is also used in
Apple's AirPort Extreme
The AirPort Extreme is a residential gateway combining the functions of a router, network switch, wireless access point and NAS as well as varied other functions, and one of Apple's former AirPort products. The latest model, the 6th generatio ...
and
Time Capsule
A time capsule is a historic 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 relics dates ...
products, instead of their own
OS X
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
(most of whose Unix-level userland code is derived from FreeBSD code but some is derived from NetBSD code).
The operating system of the
T-Mobile Sidekick
The Danger Hiptop, also re-branded as the T-Mobile Sidekick, Mobiflip and Sharp Jump is a GPRS/EDGE/UMTS smartphone that was produced by Danger, Inc. from 2002 to 2010.
The Hiptop software was designed by Danger, Inc., which was located in Pal ...
LX 2009
smartphone
A smartphone is a portable computer device that combines mobile telephone and computing functions into one unit. They are distinguished from feature phones by their stronger hardware capabilities and extensive mobile operating systems, whic ...
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 19 ...
packages infrastructure since version 3.2.
Parts of
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
were originally taken from NetBSD, such as some userspace command line tools.
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
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general u ...
, 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
GNU () is an extensive collection of free software (383 packages as of January 2022), which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operat ...
development tools and other packages, which are covered by the GPL and other open source licenses. As with other
BSD
The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berk ...
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 their older logo, 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, often abbreviated as WWII or WW2, was a world war that lasted from 1939 to 1945. It involved the vast majority of the world's countries—including all of the great powers—forming two opposin ...
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
A 501(c)(3) organization is a United States corporation, trust, unincorporated association or other type of organization exempt from federal income tax under section 501(c)(3) of Title 26 of the United States Code. It is one of the 29 types of 50 ...
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 (also known as Columbia, and officially as Columbia University in the City of New York) is a private research university in New York City. Established in 1754 as King's College on the grounds of Trinity Church in Manhatt ...
, and
Western Washington University
Western Washington University (WWU or Western) is a public university in Bellingham, Washington. The northernmost university in the contiguous United States, WWU was founded in 1893 as the state-funded New Whatcom Normal School, succeeding a pri ...
, fronted by a
CDN
CDN may refer to:
Places
* Canada (Canadian), a North American country
* , a neighborhood in Montreal, Quebec, Canada
Technology
* Content delivery network, on the Internet
* Change detection and notification, of Web pages
Transportation
* Can ...
provided by
Fastly
Fastly is an American cloud computing services provider. It describes its network as an edge cloud platform, which is designed to help developers extend their core cloud infrastructure to the edge of the network, closer to users. The Fastly edge ...
. Mirrors for the project are spread around the world and provided by volunteers and supporters of the project.
See also
*
Comparison of operating systems
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 (including smartphone and tablet computer) operating sy ...
*
Comparison of operating system kernels
A kernel is a 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.
Comparison criteria
The following tabl ...
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