< Back to index

NetBSD is a freely redistributable, open source version of the Unix-like BSD computer operating system. It was the second open source BSD variant to be formally released, after 386BSD, and continues to be actively developed. Noted for its portability and quality of design and implementation, it is often used in embedded systems and as a starting point for the porting of other operating systems to new architectures.

History


NetBSD, like its sister project FreeBSD, was derived from the original University of California Berkeley's 4.3BSD release via the Networking/2 and 386BSD releases. The project began as a result of frustration within the 386BSD developer community with the pace and direction of the operating system's development. The four founders of the NetBSD project, Chris Demetriou, Theo de Raadt, Adam Glass and Charles Hannum, felt that a more open development model would be more beneficial to the project; one which was centred on portable, clean, correct code. Their aim was to produce a unified, multi-platform, production-quality, BSD-based operating system.

Because of the importance of networks such as the Internet in the distributed, collaborative nature of its development, de Raadt suggested the name "NetBSD", which was readily accepted by the other founders.

The NetBSD source code repository was established on March 21 1993 and the first official release, NetBSD 0.8, was made in 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.

In August the same year, NetBSD 0.9 was released, which 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.

NetBSD 1.0 was released in October, 1994. This was the first multi-platform release, supporting the PC, HP 9000 Series 300, Amiga, 68k Macintosh, Sun-4c series and PC532. Also in this release, 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.

In 1994, for disputed reasons, one of the founders, Theo de Raadt, was forced out of the project. He later founded a new project, OpenBSD, from a forked version of NetBSD 1.0 near the end of 1995.

NetBSD 1.x releases continued at roughly annual intervals, with minor "patch" releases in between. NetBSD 1.3 introduced the pkgsrc packages collection in 1998. By 1999, NetBSD 1.4 had been released, supporting 16 different platforms in its binary release, and several others in the source code.

In December, 2004, NetBSD 2.0 was released. The change in major version number signified the introduction of a native threads implementation for all platforms (based on the Scheduler Activations model) and support for SMP on several different CPU architectures. 48 platforms were supported in the 2.0 binary release, with another six in source code form only.

From release 2.0 onwards, each major NetBSD release now increments the major version number, ie. the major releases following 2.0 are 3.0, 4.0 and so on. The previous minor releases are now divided into separate "stable" x.y maintenance releases and "security/critical fix" x.y.z releases.

The current release of NetBSD is version 3.1 (November 4, 2006).

Portability


NetBSD has been ported to a large number of 32- and 64-bit architectures, from VAX minicomputers to Pocket PC PDAs; the NetBSD motto is "Of course it runs NetBSD." The kernel and userland for the 54+ currently-supported hardware platforms (comprising around 17 different processor architectures) are all built from a central unified source-code tree managed by CVS.

Due to the centralized source code management, and highly portable design, feature additions (which are not hardware specific) benefit all platforms immediately, with no re-porting required. Device driver development is also often platform-independent, eg. the driver for a specific PCI card will work whether that card is in a PCI slot on an i386, Alpha, PowerPC, SPARC, or other architecture with PCI buses. Many NetBSD device drivers also have bus-specific code factored out into bus drivers, allowing a single driver for a specific device to operate via several different buses (eg. ISA, PCI, PCMCIA, etc).

This platform independence helps greatly in developing embedded systems, especially starting in NetBSD 1.6, with the entire toolchain of compilers, assemblers, linkers, and other tools fully supporting cross-compiling.
The NetBSD cross-compiling framework allows a complete NetBSD system for an architecture to be built from another system of different architecture (usually fastest or with more hardware resources), even of different operating system since the framework supports most POSIX-compliant systems.

NetBSD's portability is due to its unique Modular Portability Layer (MPL). With the MPL, the driver is completely isolated from the hardware platform, I/O instructions or no I/O instructions, interlocking, retry error recovery, bounce buffers, memory type boundaries, scatter/gather maps in host bridges, even peripherals which use pseudo-DMA to write a buffer RAM with host CPU copy-in and copy-out, all are transparently handled beneath the driver layer. Moreover, several embedded systems using NetBSD have required no additional software development other than toolchain and target rehost.(Wasabi Systems White Paper.[http://wasabisystems.com/pdfs/Linux_or_BSD.pdf BSD or Linux: Which Unix is better for embedded applications?], (c) 2003 Wasabi Systems Inc. All rights reserved. This paper may not be sold or distributed without the permission of Wasabi Systems Inc. (www.wasabisystems.com). Citations and quotations from this document must include the copyright notice.)

With Linux, however, device driver code must be reworked for every new architecture. As a consequence, in recent porting efforts by NetBSD and Linux developers, NetBSD has taken as little as 10% of the time to port to new hardware. Engineers ported NetBSD to the SuperH processor core in under six weeks; Linux took three months. NetBSD was ported to the AMD x86-64 architecture (now known as AMD64) in about a month; Linux took six months.

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 .

Licensing


All of the NetBSD kernel and most of the core userland source code is released under the terms of the BSD License (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 stipulates that changes to source code must be released to the public whenever products derived from those changes are released.

NetBSD also includes the GNU development tools and other packages, which are covered by the GPL and other open source licenses.

Compatibility with other operating systems


At the source code level, NetBSD is very nearly entirely compliant with POSIX.1 (IEEE 1003.1-1990) standard and mostly compliant with POSIX.2 (IEEE 1003.2-1992).

NetBSD also provides system call-level binary compatibility on the appropriate processor architectures with several UNIX-derived and UNIX-like operating systems, including GNU/Linux, FreeBSD, Darwin, Solaris, HP-UX, SunOS 4 and SCO UNIX. 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 formats are also supported in NetBSD, including FAT, NTFS, Linux ext2fs, Mac OS X UFS, RISC OS FileCore/ADFS and AmigaOS Fast File System.

The pkgsrc packages collection


NetBSD features its own collection of third-party application software packages that will install almost automagically, pkgsrc (short for "package source"), which consists of more than 6000 packages as of April 2006. Installing software such as KDE, GNOME, the Apache server or Perl is just a matter of changing into the right directory and typing make install. This will 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. Either way, any prerequisites/dependencies will be installed automatically by the packages system, with no need for manual intervention.

Following its mantra of portability, pkgsrc has been made portable not only across all the hardware platforms that run NetBSD, but also — with the help of an autoconf-based bootstrap system—on many other operating systems, such as GNU/Linux, FreeBSD, OpenBSD, Solaris, Darwin/Mac OS X, IRIX, Interix and others. pkgsrc has also been adopted as the official package system for DragonFly BSD .

Logo


The NetBSD "flag" logo, designed by Grant Bisset, was introduced in 2004 and is an abstraction of their [http://www.netbsd.org/images/NetBSD-old.jpg older logo], designed by Shawn Mueller in 1994. This was based on the famous World War II photograph Raising the Flag on Iwo Jima, which some perceived as culturally insensitive and inappropriate for an international project[http://mail-index.netbsd.org/netbsd-advocacy/2004/01/14/0001.html].

"NETBSD" is a registered trademark of The NetBSD Foundation as of April 20, 2004.[http://tarr.uspto.gov/servlet/tarr?regser=serial&entry=78-025507]

"PKGSRC" is a registered trademark of The NetBSD Foundation as of July 6, 2004. [http://tarr.uspto.gov/servlet/tarr?regser=registration&entry=2860236]

Hosting


Hosting for the project is provided primarily by the Internet Systems Consortium Inc, the Helsinki University of Technology, and Columbia University. Mirrors for the project are spread around the world and provided by volunteers and supporters of the project.
This entry uses material from from Wikipedia, the leading user-contributed encyclopedia. It is licensed under the GNU Free Documentation License. Disclaimer.