Safekipedia

NetBSD

Adapted from Wikipedia · Discoverer experience

A screenshot of a computer desktop with basic tools and applications open.

NetBSD is a free and open-source operating system based on the Berkeley Software Distribution. It was the first open-source version of BSD to be officially released after 386BSD was created separately. Today, NetBSD is still being developed and can run on many different types of devices, such as servers, desktops, handheld devices, and embedded systems.

The NetBSD project puts a lot of effort into making its code easy to understand, well-designed, and able to work on many different kinds of computers. Because its source code is available to everyone and has flexible licensing, anyone can use, change, or share it.

NetBSD can support over 59 different hardware platforms across 16 instruction set architectures. This includes everything from old VAX minicomputers and vintage home computers to modern ARM-based systems, Raspberry Pis, and RISC-V hardware. A special layer in the system helps make drivers work across many platforms. NetBSD also includes a large collection of third-party software packages, which has been used by other operating systems as well.

The operating system is developed by the NetBSD Foundation, a non-profit organization that owns the project's intellectual property and trademarks. The latest stable version is NetBSD 10.1, released in December 2024. This version includes improvements for better performance on certain computers, better support for ZFS file systems, integration of WireGuard VPN technology, and support for hardware such as Apple M1 chips and Raspberry Pi 4 models.

History

NetBSD started from the Berkeley Software Distribution, a type of computer system. It was created because some developers were unhappy with how another project, called 386BSD, was progressing. Four people started NetBSD to make a better system that could work on many types of computers. They chose the name “NetBSD” because networks, like the Internet, were becoming very important.

The first official version of NetBSD was released in 1993. Over time, it was updated to work on many different devices and to include new features. In 1998, one of the founders left and started a new project called OpenBSD. Today, NetBSD continues to be developed and improved.

Features

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

The project's motto, "Of course it runs NetBSD," highlights its wide portability. NetBSD has been adapted to run on numerous 32-bit and 64-bit architectures, from older minicomputers to modern handheld devices and video game consoles. It supports 59 hardware platforms across 16 different instruction sets. All these platforms are built from a single, unified source-code tree.

NetBSD's portability is enhanced by its hardware abstraction layer, which allows device drivers to work across multiple platforms by hiding hardware differences. This makes it easier to develop and maintain drivers for various systems. The system also supports cross-compiling, enabling developers to build NetBSD for one architecture using a different, more powerful system.

Uses

NetBSD's clear design, high performance, scalability, and support for many architectures has led to its use in embedded devices and servers, especially in networking applications.

NetBSD is popular among retrocomputing fans because it is light weight and works on many types of old hardware, from DEC VAXen to the Commodore Amiga and IBM PCs.

NetBSD was used in NASA's SAMS-II Project of measuring the microgravity environment on the International Space Station, and for investigations of TCP for use in satellite networks.

NetBSD has been used in many important projects, like NASA's SAMS-II Project and for studying TCP in satellite networks. It is also used in Apple's AirPort Extreme and Time Capsule products.

Several companies use NetBSD for their products, including Wasabi Systems, Precedence Technologies, and Internet Initiative Japan, Inc. (IIJ). The operating system of the T-Mobile Sidekick LX 2009 smartphone is based on NetBSD.

Parts of macOS and Bionic, the C standard library in Android, also come from NetBSD. NetBSD's tools are used by other operating systems to add extra features.

Licensing

NetBSD allows anyone to use, change, share, or sell its code as long as they keep the copyright notice. This is because it uses the BSD License. Unlike the GPL, which requires sharing changes, the BSD License does not force this.

In 2008, NetBSD switched to a simpler version of the BSD License to make it easier for companies to use. NetBSD also includes some tools from GNU, which have different rules, but these are kept separate to keep things simple.

Releases

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

Major releasesRelease dateNotable features and changes
Latest version: 10.028 March 2024
Scheduler aware of non-uniform memory access, hyperthreading, and ARM big.LITTLE. File path cache replaced with faster red–black tree. Memory page lookup cache replaced with faster radix tree.
Updated Direct Rendering Manager (DRM) to Linux 5.6
Support for new AArch64 security features: Privileged Access Never, Pointer Authentication, Branch Target Identification. Support for Linux binary compatibility on AArch64.
Support for PVH Xen virtualization, paravirtualization and multiprocessor Dom0 support in Xen
POSIX.1e access-control lists for the Fast File System, Filesystem in Userspace API compatibility up to FUSE 3.10, fsck support for the Universal Disk Format
Compatibility with WireGuard VPNs, Adiantum disk encryption, Argon2 password hashing, constant time in-kernel cryptography
Removal of various obsolete and unmaintained networking components, such as HIPPI, Fiber Distributed Data Interface, and Token Ring support
Supported: 9.014 February 2020
Support for AArch64 (64-bit ARMv8-A) machines, including SBSA/SBBR, big.LITTLE, compatibility with 32-bit binaries, and up to 256 CPUs
Enhanced support for ARMv7-A, including UEFI bootloader, big.LITTLE, kernel mode setting for Allwinner and other SoCs, and device tree support
Updated Direct Rendering Manager (DRM) to Linux 4.4, support for Intel graphics up to and including Kaby Lake
Hardware accelerated virtualization for QEMU via NVMM (NetBSD Virtual Machine Monitor)
Improvements in the NPF firewall, updated ZFS, new and reworked drivers
Support for various new kernel and userland code sanitizers, and kernel ASLR. Audited network stack.
Removal of various old and unmaintained components, such as Intel 386 and ISDN support
Unsupported: 8.017 July 2018
Audio system reworked with an in-kernel mixer
USB stack reworked with support for USB 3 host controllers and data rates
PaX ASLR enabled by default on supported architectures
Hardened memory layout with fewer writable pages and PaX MPROTECT (W^X) enforced by default on supported architectures
Support for reproducible builds, and userland built with position-independent code by default
Meltdown and Spectre vulnerability mitigations for Intel and AMD CPUs
Added a UEFI bootloader, NVMe driver, nouveau driver for Nvidia GPUs, support for more ARM boards including the Raspberry Pi 3
Unsupported: 7.08 October 2015
Add accelerated support for modern Intel and Radeon devices on x86 through a port of the Linux 3.15 DRM/KMS code.
Lua kernel scripting
blacklistd, a daemon that integrates with packet filters to dynamically protect network daemons from network break-in attempts.
NPF improvements such as JIT compilation and dynamic rules.
Multiprocessor ARM support
Support for many new ARM boards:
Freescale i.MX50, i.MX51: (Kobo Touch, Netwalker)
Xilinx Zynq: (Parallella, ZedBoard)
Add support for Lemote Yeeloong Notebooks.
Unsupported: 6.017 October 2012
Support for thread-local storage, Logical Volume Manager functionality
Rewritten disk quota subsystem
New subsystems to handle flash devices and NAND controllers
An experimental CHFS file system designed for flash devices
Support for the Multiprotocol Label Switching protocol.
Introduce NetBSD Packet Filter (NPF) – a new packet filter, designed with multi-core systems in mind, which can do TCP/IP traffic filtering, stateful inspection, and Network Address Translation
SMP support for Xen domU kernels, initial suspend/resume support for Xen domU, PCI pass-through support for Xen3, and addition of the balloon driver
Major rework of MIPS port adding support for Symmetric multiprocessing and 64-bit (O32, N32, N64 ABIs are supported) processors, DSP v2 ASE extension, various NetLogic/RMI processor models, Loongson family processors, and new SoC boards
Improved SMP on PowerPC port and added support for Book E Freescale MPC85xx (e500 core) processors
ARM has gained support for Cortex-A8 processors, various new SoCs, and initial support for Raspberry Pi
To address the year 2038 problem, time t was extended to 64-bit type on all NetBSD ports.
apropos rewritten to implement full text search for man pages
Access to driver-internal limit values added to sysmon_envsys(9), freshly utilized by new drivers like aibs(4)
Unsupported: 5.029 April 2009
Rewritten threading subsystem based on a 1:1 model and rewritten scheduler implementation.
Support for kernel preemption, POSIX real-time scheduling extensions, processor-sets, and dynamic CPU sets for thread affinity
Added jemalloc memory allocator. A metadata journaling for FFS, known as WAPBL (Write Ahead Physical Block Logging)
Rewritten Loadable kernel module framework, which will replace old LKMs. Use of X.Org rather than XFree86 by default for i386 and amd64 ports, and introduction of drm(4)/DRI for 3D hardware acceleration. Preliminary support for using Clang instead of GCC as the system compiler.
Added support for ASLR in the kernel and dynamic linker.
Rewritten envsys framework (envsys2); addition of 8 new Hardware Monitoring sensor drivers; new I2C attachment of the lm(4) driver; additional hardware support in several sensor drivers
Unsupported: 4.019 December 2007
Added support for slab allocator, bioctl, iSCSI target, CARP, tmpfs, Explicit Congestion Notification, Xen 3, the Kernel Authorization framework, Veriexec and other security extensions, property list exchange between kernel/userland through ioctl with proplib(3), and a Bluetooth protocol suite.
Unsupported: 3.023 December 2005
Support for Xen 2.0
Support for filesystems > 2 terabytes added.
OpenBSD Packet Filter was integrated as an alternative to IPFilter.
UFS directory hash support.
Unsupported: 2.09 December 2004
Addition of native POSIX threads and SMP support on i386 and other platforms.
AMD64 architecture added.
Support for UFS2 and SMBFS, addition of kqueue.
Unsupported: 1.614 September 2002
Unified Buffer Cache (UBC) was introduced, which unifies the filesystem and virtual memory caches of file data.
Zero-copy support for TCP and UDP transmit path.
Ten new platforms supported.
New implementation of cross-building (build.sh) infrastructure.
Added support for multibyte LC_CTYPE locales.
Unsupported: 1.56 December 2000
IPv6 and IPsec were added to the network stack.
OpenSSL and OpenSSH imported.
New implementation of rc.d system start-up mechanism.
Start of migration to ELF-format binaries.
A ktruss utility for kernel tracing was added.
Six new platforms supported, including sparc64.
Added FFS soft updates and support for NTFS.
Unsupported: 1.412 May 1999
UVM, a rewritten virtual memory subsystem, was introduced.
Added RAIDframe, a software RAID implementation, and imported IPFilter.
Completion of the integration of all remaining 4.4BSD Lite-2 kernel improvements.
Ports to Power Macintosh and NeXTcube/station systems added.
Added full USB support.
Unsupported: 1.39 March 1998
XFree86 source tree was made a supported part of the distribution.
Support for ISA Plug and Play, PCMCIA, ATAPI and APM added.
ext2fs and FAT32 filesystems added.
The pkgsrc packages collection system was introduced.
Unsupported: 1.24 October 1996
Support for NFSv3, SCSI scanner and medium changer devices added.
NTP phase-locked loop added in kernel.
Ports for ARM and Sharp X68k systems added.
Unsupported: 1.126 November 1995
Ports for DEC Alpha, Atari TT/Falcon030 and MVME68k systems added.
Binary emulation facility added.
Generic audio subsystem introduced.
Unsupported: 1.026 October 1994
The first multi-platform release, supporting the PC, HP 9000 Series 300, Amiga, 68k Macintosh, Sun-4c series and the PC532.
The legally encumbered Net/2-derived source code was replaced with equivalent code from 4.4BSD-lite, in accordance with the USL v BSDi lawsuit settlement.
Addition of shared libraries and Kerberos 5.
Unsupported: 0.920 August 1993
Contained many enhancements and bug fixes.
This was still a PC-platform-only release, although by this time, work was underway to add support for other architectures.
Support for loadable kernel modules (LKM).
Unsupported: 0.820 April 1993
The first official release, 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.

Logo

The NetBSD "flag" logo was created by Grant Bissett in 2004. It is inspired by an older logo made by Shawn Mueller in 1994. Mueller’s logo was based on a famous photograph from World War II called Raising the Flag on Iwo Jima.

The NetBSD Foundation

The NetBSD Foundation is the group that owns the rights to NetBSD. On 22 January 2004, it became a special type of non-profit organization. The people who help create NetBSD can vote for leaders to guide the foundation for two years.

Hosting

The NetBSD project is mainly hosted by Columbia University and Western Washington University. A CDN from Fastly helps make the project available faster. Volunteers and supporters around the world also provide mirrors to help share the project.

Related articles

This article is a child-friendly adaptation of the Wikipedia article on NetBSD, available under CC BY-SA 4.0.

Images from Wikimedia Commons. Tap any image to view credits and license.