kids encyclopedia robot

NetBSD facts for kids

Kids Encyclopedia Facts
Quick facts for kids
NetBSD
NetBSD.svg
NetBSD 10.1 sparc64 ctwm screenshot.png
NetBSD 10.1 default CTWM desktop on a Sun UltraSPARC-IIe station
Company / developer The NetBSD Foundation, Inc.
Programmed in C
OS family Unix-like (BSD)
Working state Current
Source model Open source
Initial release 19 April 1993; 32 years ago (1993-04-19)
Latest stable release 10.1 / 16 December 2024; 8 months ago (2024-12-16)
Package manager pkgsrc
Supported platforms Alpha, ARM, x86 (IA-32 and x86-64), PA-RISC, 68k, MIPS, PowerPC, SH3, SPARC, RISC-V, VAX
Kernel type Monolithic with dynamically loadable modules, rump kernel
Userland BSD
Influenced by 386BSD
Default user interface ash, X11 (CTWM)
License 2-clause BSD license

NetBSD is a special kind of operating system that is free to use and change. It's like the main program that makes your computer work. NetBSD is based on something called Berkeley Software Distribution (BSD), which is a family of operating systems similar to Unix.

It was one of the first open-source BSD systems released. This means its code is available for anyone to see and improve. NetBSD is still being actively developed today. You can use it on many different devices, from big servers to regular desktops, and even small handheld gadgets or specialized devices.

The people who work on NetBSD really care about making the code clear, well-designed, and able to run on many different types of computers. Their motto is: "Of course it runs NetBSD!"

History of NetBSD

NetBSD started from an older system called 386BSD and parts of the Berkeley Software Distribution. Some developers working on 386BSD felt that its progress was too slow. They wanted a more open way to develop the operating system.

Four founders – Chris Demetriou, Theo de Raadt, Adam Glass, and Charles Hannum – decided to create a new project. Their goal was to build a unified, high-quality, BSD-based operating system that could run on many different computer types. They chose the name "NetBSD" because of how important the Internet and computer networks were becoming.

The NetBSD project officially began on March 21, 1993. The very first version, NetBSD 0.8, was released on April 19, 1993. It included improvements and missing parts from the older 386BSD.

In October 1994, NetBSD 1.0 was released. This was a big step because it was the first version that could run on multiple types of computers. Around that time, one of the founders, Theo de Raadt, left the project. He later started his own project called OpenBSD in 1995, using a version of NetBSD 1.0 as a starting point.

In 1998, NetBSD 1.3 introduced something called pkgsrc. This is a system for easily installing and managing other software programs.

Before 2004, new NetBSD versions came out about once a year. After version 2.0, they started using a different numbering system. Major updates now get a new main number (like 3.0, 4.0, and so on). Smaller updates are called "stable" releases, and tiny updates with only security fixes are also released.

NetBSD used to come with a simple graphical interface called twm. In 2020, with version 9.1, they switched to a more modern one called CTWM.

Cool Features of NetBSD

NetBSD 9.2 boot screenshot
NetBSD/amd64 starting up in console mode
NetBSD 9.2 welcome message as normal user screenshot
NetBSD/amd64 console login and welcome message

Runs on Many Devices

NetBSD is famous for being able to run on a huge variety of computers. This is called "portability." It can run on old VAX computers, small Pocket PC devices, and even video game consoles like the Sega Dreamcast and Nintendo Wii. As of 2019, NetBSD supports 59 different types of hardware!

This amazing flexibility is partly because NetBSD uses special layers that help it talk to different hardware parts. This means that a single piece of code, like a device driver for a PCI card, can work on many different computer types without needing big changes.

This makes NetBSD great for embedded systems, which are computers built into other devices. For example, in 2005, a company showed off a kitchen toaster that ran NetBSD!

Easy to Build Software

NetBSD has a special system that helps developers build a complete NetBSD system for one type of computer, even if they are working on a different type of computer. This is called "cross-compiling." It's very useful for creating software for embedded devices.

The pkgsrc Software Collection

NetBSD uses a system called pkgsrc to help you install and manage other software. Think of it like a giant app store for your computer, but for more technical programs. As of October 2019, pkgsrc has over 20,000 different software packages!

You can use pkgsrc to automatically download, build, and install programs like KDE or GNOME (which are desktop environments), the Apache HTTP Server (for websites), or Perl (a programming language). It also makes sure that any other programs needed for your chosen software are installed too.

What's really cool is that pkgsrc works not just on NetBSD, but also on other Unix-like systems like macOS, Solaris, and Linux.

Using Multiple Processors

NetBSD has been able to use multiple computer processors (or "cores") at the same time since 2004. This is called SMP. This means it can spread out tasks across different parts of the computer, making things run faster.

Over the years, NetBSD developers have made many improvements to how it handles multiple processors. This helps it run very smoothly and efficiently on modern computers with many cores. The latest versions are even better at using all the power of your computer, especially on systems with different types of cores, like those found in some phones and tablets.

Keeping Your Computer Safe

NetBSD has many features to help keep your computer secure.

  • Kernel Authorization (kauth): This is like a security guard inside the operating system. It checks if a program is allowed to do certain things before it does them.
  • Verified Executables (Veriexec): This feature lets you "fingerprint" files. If a file doesn't match its fingerprint, NetBSD can stop it from running. This helps prevent harmful programs from taking over.
  • Non-executable Memory: NetBSD can mark certain parts of the computer's memory as "non-executable." This makes it much harder for bad programs to trick your computer into running harmful code.
  • Exploit Protection: NetBSD includes features like ASLR (which shuffles memory around to make attacks harder) and Stack Smashing Protection (which helps prevent a common type of attack called a "buffer overflow").
  • Disk Encryption (CGD): This allows you to encrypt your entire disk, keeping your data safe even if someone gets access to your computer.
  • Firewall (NPF): NPF is a powerful firewall that helps protect your computer from unwanted network traffic. It can block suspicious connections and keep your computer safe from attacks.
  • WireGuard VPN: NetBSD also supports WireGuard, a modern and secure way to create a VPN, which helps keep your internet connection private.

The NetBSD team regularly checks their code for problems and publishes security updates to fix any issues.

How NetBSD Manages Memory

NetBSD uses a system called UVM to manage your computer's virtual memory. This system helps the computer use its memory efficiently, especially when dealing with many programs at once. UVM was designed to be simpler and faster than older memory management systems.

It helps programs share memory safely and quickly. It also makes sure that when your computer needs to save information to the hard drive (called "swapping"), it does so in a very efficient way.

Newer versions of NetBSD have made the memory system even better, especially for computers with many processors.

Virtualization Fun

NetBSD can also be used with Xen, which is a virtual machine monitor. This means you can run several "virtual computers" on one physical computer. Each virtual computer can run its own operating system, like NetBSD or Linux.

Since NetBSD 9.0, it also has its own built-in virtualization system called NVMM (NetBSD Virtual Machine Monitor). This makes it even easier and faster to run virtual machines, especially with programs like QEMU.

Rump Kernels: Tiny Operating Systems

NetBSD 5.0 introduced a cool idea called "rump kernels." Imagine taking just a small part of the NetBSD operating system, like a device driver, and running it by itself in a special, lightweight environment. That's a rump kernel!

These tiny kernels are very small and use little memory. They can be used for many things, like:

  • Adding NetBSD features to other operating systems.
  • Creating very small, specialized programs that only do one job.
  • Running parts of the system in a safer, isolated way.
  • Testing different parts of the NetBSD system.

Storing Your Data

NetBSD includes many advanced features for storing data.

  • RAID: It supports different ways to combine multiple disks into one larger, faster, or more reliable storage system.
  • UFS2 and Snapshots: NetBSD uses an advanced file system called UFS2. It also has a "snapshot" feature that lets you take a quick picture of your file system at a certain moment. This is great for making backups.
  • WAPBL (Journaling): This feature helps your file system recover quickly if your computer suddenly turns off. It also makes writing files faster.
  • ZFS: NetBSD also supports ZFS, a very powerful and advanced file system known for its data protection and management features.
  • Logical Volume Manager (LVM): This lets you manage your disk space more flexibly, combining different parts of disks into larger "logical volumes."
  • CHFS: This is a special file system designed for flash memory devices, like those found in USB drives or solid-state drives.

Works with Other Operating Systems

NetBSD is very good at following standard rules for operating systems, like POSIX. This means many programs designed for Unix-like systems will work on NetBSD.

It can also run programs made for other operating systems, like Linux or older versions of SunOS. This is called "binary compatibility." You can even install WINE through pkgsrc to run some Win32 programs!

NetBSD also understands many different disk formats from other operating systems, like NTFS (from Windows) and HFS (from Apple).

Kernel Scripting with Lua

Since NetBSD 7.0, you can use the Lua programming language to write small scripts that run directly inside the NetBSD kernel. This is a very advanced feature that allows for powerful and flexible ways to extend the operating system. For example, it can be used to create special rules for the NPF firewall.

Finding Bugs (Debugging)

NetBSD has tools to help developers find and fix problems (bugs) in the system. It has a built-in kernel debugger called DDB that can help investigate crashes. It also has various tools to detect memory errors and other issues.

Loadable Kernel Modules (LKMs)

NetBSD supports Loadable Kernel Modules (LKMs). These are like small programs that can be added to the running operating system without needing to restart the whole computer. This is useful for adding new device drivers or features.

How NetBSD Starts Up

NetBSD uses a traditional BSD-style system to start up. It has a flexible system called `rc.d` that uses individual scripts to control different services when the computer boots up. This is similar to how some other Unix systems work.

Sensors and Monitoring

NetBSD has a built-in system called `envsys` that allows it to monitor hardware sensors. This means it can read information from things like temperature sensors in your computer. This data can be used by other programs to keep an eye on your system's health.

Sound System

NetBSD has a sound system that lets programs play and record audio. It's designed to be simple and efficient, allowing applications to interact directly with your sound hardware. This helps reduce delays and uses less of your computer's power. It can also mix sounds from different programs at the same time.

How NetBSD is Used

ISS on 20 August 2001
NetBSD was used in NASA's SAMS-II Project for measuring microgravity on the International Space Station.

NetBSD's clear design, good performance, and ability to run on many different computers make it popular for embedded devices and servers, especially for things that involve networking. It's also known for being very stable and reliable.

Here are some examples of where NetBSD has been used:

  • A commercial real-time operating system called QNX uses parts of NetBSD's network code.
  • Dell Force10 uses NetBSD as the base for its operating system in high-performance network switches and routers.
  • NASA used NetBSD in a project on the International Space Station to measure microgravity. It was also used for research on TCP for satellite networks.
  • In 2004, SUNET used NetBSD to achieve a very fast internet speed record, choosing it because of how well its TCP code could handle large amounts of data.
  • Apple's AirPort Extreme and Time Capsule products use NetBSD as their core operating system.
  • Many companies use NetBSD internally for their products, including those focused on embedded systems, network routers, and cybersecurity solutions.
  • The operating system for the T-Mobile Sidekick LX 2009 smartphone was based on NetBSD.
  • The Minix operating system uses many parts of NetBSD, including its `pkgsrc` system.
  • Parts of macOS and Android's C standard library originally came from NetBSD.
  • The NPF firewall from NetBSD is used in commercial products.
  • NetBSD is popular among people who enjoy retrocomputing because it's lightweight and supports many older computer architectures. You can use it to bring old computers like DEC VAXen or Commodore Amigas back to life!
  • Rump kernels (the tiny operating system parts) from NetBSD are used in other operating systems like Genode and GNU Hurd to add new features.
  • The SDF Public Access Unix System, a non-profit organization that provides computing services, uses NetBSD to power its large network of servers. It's considered the biggest NetBSD installation in the world!

How NetBSD is Licensed

Most of NetBSD's code is released under the BSD License. This is a very flexible license. It means that anyone can use, change, share, or even sell NetBSD, as long as they keep the original copyright notice. This makes it easy for companies to build products based on NetBSD without having to share their own changes.

In 2008, The NetBSD Foundation decided to use a simpler version of the BSD license (the two-clause BSD license).

NetBSD also includes some tools from the GNU project, which are covered by the GPL. The NetBSD project keeps these separate so that it's clear which parts have different licenses.

NetBSD Releases

Here are some of the major releases of NetBSD and some of their most important new features:

Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future release
Major releases Release date Cool New Features
Current stable version: 10.0 28 March 2024
  • Improved how it uses multiple processors, especially for modern chips with different types of cores.
  • Better support for new hardware like Apple M1 and Raspberry Pi 4.
  • Updated graphics drivers for better performance.
  • New security features for AArch64 (64-bit ARM) and support for running Linux programs on it.
  • Better file system features, including support for ACLs and data TRIM.
  • Improved security with WireGuard VPNs and new encryption methods.
Older version, yet still maintained: 9.0 14 February 2020
  • Added full support for AArch64 (64-bit ARM) computers, including up to 256 CPUs.
  • Improved support for ARMv7-A devices.
  • Updated graphics drivers for Intel chips.
  • Introduced NVMM for faster virtualization (running virtual machines).
  • Better firewall (NPF) and updated ZFS file system.
  • More security features to protect against attacks.
Old version, no longer maintained: 8.0 17 July 2018
  • The sound system was improved to allow multiple programs to play sound at the same time.
  • Updated USB 3 support for faster devices.
  • More security features like ASLR enabled by default.
  • Added protection against Meltdown and Spectre security problems.
  • New bootloader for UEFI and support for more ARM boards like the Raspberry Pi 3.
Old version, no longer maintained: 7.0 8 October 2015
  • Improved graphics support for modern Intel and Radeon devices.
  • Added Lua scripting inside the kernel.
  • Introduced `blacklistd` to help protect network services from attacks.
  • Better NPF firewall with faster rules.
  • Support for many new ARM boards like Raspberry Pi 2 and BeagleBone Black.
Old version, no longer maintained: 6.0 17 October 2012
  • Added Logical Volume Manager for flexible disk management.
  • New systems for handling flash devices.
  • Introduced NPF, a new firewall designed for computers with multiple processors.
  • Improved SMP support for Xen virtual machines.
  • Updated support for MIPS and PowerPC processors.
  • Time values were extended to 64-bit to avoid the year 2038 problem.
Old version, no longer maintained: 5.0 29 April 2009
  • Completely rewritten system for handling multiple tasks (threading) and scheduling.
  • Added WAPBL for faster and safer file system operations.
  • New system for Loadable Kernel Modules.
  • Better graphics acceleration for 3D.
  • Added ASLR for kernel and programs to improve security.
Old version, no longer maintained: 4.0 19 December 2007
  • Added support for slab allocator (better memory management), iSCSI (network storage), and CARP (network redundancy).
  • Introduced tmpfs (temporary file system in memory) and Bluetooth support.
  • New security features like Kernel Authorization and Veriexec.
Old version, no longer maintained: 3.0 23 December 2005
  • Added support for Xen 2.0 (virtual machines).
  • Can now handle filesystems larger than 2 terabytes.
  • Integrated OpenBSD's Packet Filter as an option.
Old version, no longer maintained: 2.0 9 December 2004
  • Added native POSIX threads and full SMP support (using multiple processors).
  • Added support for the AMD64 computer architecture.
  • New file system features like UFS2 and SMBFS.
Old version, no longer maintained: 1.6 14 September 2002
  • Introduced Unified Buffer Cache (UBC) for better memory use.
  • Improved network speed for TCP and UDP.
  • Added support for ten new computer platforms.
  • Improved system for building NetBSD for different computers.
Old version, no longer maintained: 1.5 6 December 2000
  • Added IPv6 (new internet addresses) and IPsec (secure network communication).
  • Imported OpenSSL and OpenSSH for secure connections.
  • New system for starting up the computer (`rc.d`).
  • Added support for six new platforms, including sparc64.
Old version, no longer maintained: 1.4 12 May 1999
  • Introduced UVM, a completely rewritten virtual memory system.
  • Added RAIDframe (software RAID) and imported IPFilter (a firewall).
  • Added support for Power Macintosh and NeXTcube systems.
  • Full USB support was added.
Old version, no longer maintained: 1.3 9 March 1998
  • XFree86 (a graphics system) became a supported part of NetBSD.
  • Added support for ISA Plug and Play, PCMCIA, ATAPI, and APM.
  • Added support for ext2fs (Linux file system) and FAT32 (Windows file system).
  • The pkgsrc software collection system was first introduced.
Old version, no longer maintained: 1.2 4 October 1996
  • Added support for NFSv3 (network file sharing).
  • NTP (for keeping time accurate) was added to the kernel.
  • Added support for ARM and Sharp X68k systems.
Old version, no longer maintained: 1.1 26 November 1995
  • Added support for DEC Alpha, Atari TT/Falcon030 systems.
  • Added the ability to run programs from other operating systems.
  • Introduced a general audio system.
Old version, no longer maintained: 1.0 26 October 1994
  • This was the first version that could run on many different types of computers.
  • Old code that had legal issues was replaced with new, clean code.
  • Added shared libraries and Kerberos 5 (for secure network authentication).
Old version, no longer maintained: 0.9 20 August 1993
  • Included many improvements and bug fixes.
  • Still only for PC computers, but work was starting on other types.
  • Added support for loadable kernel modules (LKMs).
Old version, no longer maintained: 0.8 20 April 1993
  • The very first official release of NetBSD.
  • It was based on 386BSD but with many improvements.

The NetBSD "flag" logo, which looks like a waving flag, was created in 2004 by Grant Bissett. It's a simpler version of an older logo designed by Shawn Mueller in 1994. Mueller's original design was inspired by the famous World War II photograph of soldiers raising a flag.

The NetBSD Foundation

The NetBSD Foundation is a non-profit organization that legally owns the NetBSD project's name and ideas. It was officially recognized as a non-profit in 2004. The members of the foundation are developers who actively contribute to NetBSD. They elect a Board of Directors every two years to guide the project.

Where NetBSD is Hosted

The NetBSD project's main homes for its files and development are at Columbia University and Western Washington University. They also use a CDN from Fastly to help deliver files quickly around the world. Many volunteers and supporters also provide "mirrors" (copies of the files) in different countries.

See also

Kids robot.svg In Spanish: NetBSD para niños

  • Berkeley Software Distribution
  • BSD licenses
  • Comparison of BSD operating systems
  • List of BSD operating systems
  • Lumina (desktop environment)
  • Comparison of operating systems
  • Comparison of operating system kernels
kids search engine
NetBSD Facts for Kids. Kiddle Encyclopedia.