NetBSD features

The features listed below are all available in the base system, which is compiled from a single source tree.

About NetBSD

Networking

Storage

Other Features


About NetBSD

Clean design (top)

NetBSD focuses on clean design and well architected solutions. Because of this NetBSD may support certain 'exciting' features later than other systems, but as time progresses the NetBSD codebase is getting even stronger and easier to manage, while other systems that value features over code quality are finding increasing problems with code management and conflicts.

NetBSD supports a massive range of hardware platforms from a single source tree, including simultaneous release across all platforms, and continues to attract users and experienced developers despite lack of media exposure and commercial backing - all thanks to attention to code quality.

Wide platform support (top)

NetBSD is designed to take advantage of the latest high end hardware available in Alpha, PowerPC, and PC systems, while still retaining support for older architectures. This is all done from the same source tree and is only possible due to the emphasis on correct design and clean code. It also makes NetBSD an ideal codebase to port to new machines and embedded platforms, such as mips, ARM and Super-H based handheld Windows CE devices.

BSD Licence (top)

While NetBSD uses the GNU toolchain (compiler, assembler, etc), and certain other GNU tools, the entire kernel and the core of the userland utilities are shipped under a BSD licence. This allows companies to develop products based on NetBSD without the requirement to make changes public (as with the GPL). While the NetBSD Project encourages companies and individuals to feed back changes to the tree, we respect their right to make that decision themselves.

Full source availability (top)

NetBSD makes the full source available, both the source code and the full CVS repository. Since everything is in the same source tree, you can always access any version of all files. We were not the first BSD to make a CVS repository available, but we were the only one to meticulously check every file and remove only those revisions that contained tainted USL code, rather than discarding every revision before an arbitrary date.

Security (top)

NetBSD has the least number of security bugs reported in any public forums (such as bugtraq). We believe in security without the hype. We do manual code audits and add extended checking capabilities to our toolchain. Retrieval of kernel data is geared towards a sysctl based approach, as opposed to the traditional Unix based kmem access, which requires full access to the whole system, and is often exploited.

Mature and stable (top)

The BSD codebase can be traced back to the early 80s at UC Berkeley, and has been open to public scrutiny ever since. NetBSD continues this tradition and works ever harder to promote clean design and functionality over hype. NetBSD is being used at NASA's Numerical Aerospace Simulation facility for a reason. Their main platforms are Alpha systems with lots of RAM and diskspace (terabyte and up), and they need a good, stable, codebase on which they can build custom projects. NetBSD was also the first free OS to make a y2k statement. See our testimonials for more success stories!

Hype free (top)

Probably the only thing you won't get with NetBSD is the media hype. You'll need to get that somewhere else.


Networking

Packet filtering and Network Address Translation (NAT) (top)

NetBSD ships with an in-kernel packet filtering engine, allowing filtering of traffic based on interface, protocol, port, tos, ttl, source, destination and many other factors. Keeping this inside the kernel permits higher performance.

Network Address Translation can permit a local network of machines to use one set of addresses internally, and a different set (or even single IP address) externally. This can be used for security or simple convenience reasons, and also includes a transparent FTP proxy. Again this is all kept inside the kernel for higher performance.

IPv6 (top)

NetBSD was the first free OS to provide a leading edge standards conforming IPv6 implementation, and we continue to work with the KAME project to track changes to the specification. NetBSD was also the first free operating system to ship with NFS via IPv6, for both client and server part.

Network File System (NFS) (top)

NetBSD provides complete in-kernel NFS client and server support, interoperable with other systems, for both NFS2 and NFS3 protocols. This includes support for swapping over NFS, and no arbitrary limits on the size of swap partitions. Client side file creation is correctly implemented as an atomic operation - on systems without this dot locking is not reliable.

Comprehensive and robust networking (top)

NetBSD supports the following network types:

In the process of ARCnet support the ARP subsystem was reworked to remove Ethernet dependencies and to be more generally applicable.

NetBSD also supports the following network protocols:

NetBSD also ships with many standard networking daemons, with built-in tcp wrappers support where appropriate, including bootparamd(8), bootpd(8), dhcpd(8), ftpd(8), identd(8), mopd(8), named(8), postfix(1), rarpd(8), rbootd(8), sendmail(8), sshd(8), tftpd(8), and xntpd(8).

Wireless networking (top)

NetBSD supports a long list of IEEE 802.11 based wireless networking devices, see an(4), wi(4), ray(4), awi(4) and cnw(4).


Storage

Hardware and software RAID (top)

In addition to many standalone SCSI RAID devices, NetBSD supports a variety of RAID controllers and a complete software RAID 0, 1, 4, 5, and 6 system in RAIDframe. (More details)

High performance PCI IDE (top)

Many recent PCI IDE controllers support high speed DMA transfers. NetBSD is one of the few systems to take advantage of these features 'out of the box'. Due to NetBSD's clean design the same drivers and features are available on alpha, i386, macppc and sparc64.

SCSIPI subsystem - combined SCSI and ATAPI (top)

NetBSD implements a unified SCSIPI subsystem, avoiding code duplication and allowing a common userland SCSI and ATAPI interface for many devices. As a direct result of this, when ATAPI CD-R units became available existing tools such as sysutils/cdrtools worked with them without any need for modification.

64-bit file systems (top)

NetBSD has shipped with 64-bit file systems since the 1.0 release in October 1994. Under NetBSD berkeley fast file systems can be up to 4TB (4096GB) in size, on both 64- and 32-bit machines. Files and user file quotas can also reach terabytes. Many other systems limit filesize to 4GB on 32-bit machines.

An ffs can have up to 2^31 fragment blocks - the maximum file system size is dependent on the fragment size:

Frag size fs size
512 bytes 1 TB
1kB 2 TB
2kB 4 TB

Large IDE disks (top)

NetBSD fully supports IDE disks of over 34GB in size, including booting from partitions beyond 8GB (where the BIOS permits). Starting with release 1.6, NetBSD can also use 48-bit logical block addresses (ATA-6 Expanded Addressing) in order to access disks with sizes greater than 137GB.

Soft Updates on FFS for high performance and reliability (top)

Soft Updates permit metadata writes to be ordered to achieve close to asynchronous disk performance without risk of metadata corruption. This significantly improves the performance of FFS file systems. (More details)

Many file system types (top)

NetBSD can handle and manipulate many different file systems, which is useful for both data exchange and binary compatibility. Systems can also optionally mount file systems writing with opposing byte ordering. Note that unlike some other systems NetBSD imposes metadata write ordering, allowing fsync(2) to be used to avoid important data loss in the event of power failure, even on ext2fs.

NetBSD also has a range of virtual file system types, including:

DVD ROM and RAM (top)

NetBSD supports large capacity DVD drives for reading data in the common DVD file systems available nowadays.


Other Features

The package system (applications) (top)

The package system (pkg) provides easy source or binary installation of a large number of third party applications. It includes all the essentials such as meta-pkgs/kde3, meta-pkgs/gnome, www/mozilla, www/apache2, lang/perl5, net/samba, misc/openoffice, graphics/gimp, and more. Features include:

Pkgsrc was derived from FreeBSD's 'ports' system, but has been substantially enhanced.

Machine independent driver framework (top)

A clean separation of chipset drivers from bus attach code, and implementation of a MI bus_space(9) and bus_dma(9) framework has the following advantages:

Machine independent audio framework (top)

In a similar fashion to the SCSI subsystem, NetBSD has a generic audio layer which attaches to the individual chipset drivers. This gives significantly more consistency and code sharing than other free OS projects.

Kernel debugging (top)

OS emulation (top)

NetBSD's unique binary compatibility protects users' investment in existing applications by in kernel support for non-native binaries (for the same processor) to run transparently. Systems include:

The package system includes many emulators, including

See also supported file systems.

USB (Universal serial bus) (top)

NetBSD was the first free OS to provide USB support, and was using USB on Apple Power Macintosh machines before Apple had MacOS X even booting. The USB support is available on all appropriate platforms, including alpha, i386, and macppc. Supported devices include mice, keyboards, modems, and mass storage devices (ZIP), with more drivers becoming available as the USB standard develops.

Other device support (top)

The UVM virtual memory system (top)

UVM is a new virtual memory system specifically designed to provide the I/O and IPC (Inter Process Communication) systems with a range of flexible data movement mechanisms. UVM completely replaces the Mach based 4.4BSD VM system, improving virtual memory performance over other VM systems. (More details)

Cardbus (top)

Support for the 'cardbus' PC-card and PCMCIA sockets found in modern laptops is available, including hot-swapping, power management and detaching of devices.

wscons machine independent console (top)

The wscons(4) driver provides support for machine independent access to the console. It is composed of a number of cooperating modules, in particular:

64-bit clean (top)

NetBSD was the first free OS to support a 64-bit architecture such as the alpha, and still supports more alpha models than any other. The entire source tree has been 64-bit clean for some time, and the package system includes patches to make many third party applications 64-bit clean.

Non-executable stack and heap (top)

Starting with version 2.0, NetBSD supports non-executable mappings on many platforms. If non-executable mappings are enabled, parts of the stack and heap are made non-executable when they are marked writable. This makes exploiting potential buffer overflows harder. We have a seperate page with more detailed information about this subject.

(contact us)   Generated from %NetBSD: features.xml,v 1.14 2006/03/02 14:14:07 kano Exp %
Copyright © 1994-2006 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.
NetBSD® is a registered trademark of The NetBSD Foundation, Inc.