Welcome
to the NetBSD Project
``Of course it
runs NetBSD.''
The NetBSD Project is a collective volunteer effort to produce a freely available and redistributable UNIX-like operating system.
NetBSD runs on a broad range of hardware platforms, is highly portable, comes with complete source code, and is user-supported.
A project has no point if it doesn't have goals. Thankfully, the NetBSD Project has enough goals to keep it busy for quite some time. Generally speaking, the NetBSD Project:
In summary:
The NetBSD Project provides a freely available and redistributable system that professionals, hobbyists, and researchers can use in whatever manner they wish.
People often ask for a list of differences between NetBSD and other freely available unix systems. It would not be appropriate to try to explain the goals and philosophy behind other projects here - we suggest you check each site for their goals, and make your own decision.
Probably the primary goal of the NetBSD project is emphasising correct design and well written code. One example is the implementation of a machine independent bus infrastructure, which enables a single driver for a device (such as an Ethernet or SCSI interface) to be shared across different busses (such as PCI, EISA, Turbochannel), and across different platforms (alpha, pmax, i386, etc), rather than the traditional approach of writing and maintaining many different versions of the driver, each with their own tweaks. In NetBSD, the `tweaks' are in small 'glue' functions that allow improvements to the core driver to benefit all ports.
This also means that, in many cases, a new port is as simple as implementing the machine specific code to access the machine independent bus infrastructure to utilize drivers that have already been written.
Some systems seem to have the philosophy of "If it works, it's right". In that light NetBSD could be described as "It doesn't work unless it's right".
Just what defines a "complete" system? NetBSD provides a relatively lean standard system, with all the base functionality expected of a BSD system: the network protocols, the ability to recompile itself, and so on. Extra facilities are provided by a package system, which allows third party applications to be easily installed, either from source or prebuilt binaries. This allows the NetBSD developers to concentrate their efforts on the core system.
NetBSD runs on a wide range of equipment with innumerable possible hardware combinations. This makes good machine independent design essential for success. The net result is a system that is in production use throughout the world on dozens of distinct hardware platforms. That's the bottom line.
NetBSD runs on some of the slowest vax and hp300 machines, to the largest AlphaServer 8x00 systems. Maintaining acceptable performance on machines with limited CPU and memory resources pays dividends on more powerful machines as well; code bloat has to be kept to a minumum. We also support a wide range of communications hardware, from slow serial and parallel devices, to Ethernet, FDDI and (800Mb/s) HIPPI interfaces.
Microoptimizations can play a part in any system, but design is even more important. Rewriting a routine to speed it up by 80% may sound impressive, but that routine may have only been using 5% of the CPU time. Looking at the larger picture and saving 10% overall by redesigning the way an operation is carried out gives over double the benefit. There is room for both in NetBSD, but we prefer getting a design right to tweaking a poor implementation.
This page exists to give you a bit of backround information about copyright, to explain the licensing terms that most of the NetBSD operating system is distributed under, and to explain why we chose those licensing terms.
This information is for educational purposes only and we do not claim to provide legal advice. If you need legal advice, you should talk to a lawyer licensed to practice in your area. If you would like more information about copyright than we provide here, you may want to look at the Copyright FAQ, but you should note that it doesn't provide legal advice, either.
Copyright is the mechanism that allows creators to obtain certain exclusive rights to their creations. For instance, it allows a poem's author the right of exclusive reproduction of his or her poem; only the creator of a work, or those given permission by the creator, may reproduce that work. Copyright protects original expression. It does not protect the ideas or facts that underly a work, nor does it protect any pre-existing work that the creator of a work has incorporated into their work. In the United States and in other countries that are signatories to the Berne Convention, a work's creator does not need to mark the work in any way to retain copyright.
The various protected rights to a work can be granted by means of a license, a set of terms and conditions that define the situations in which a third party may reproduce a creator's work. The terms of a license can vary greatly: some licenses demand a fee, while others make no such requirement; some licenses restrict further redistribution of a work, while others may require it in certain conditions.
There are many ways that the terms of a license can come into effect. For instance, a license agreement may be signed before access to a work is given, or a prominent statement of the license terms may be made along with a statement that use of the work implies acceptance of the license terms (known as a shrink-wrap agreement).
Note that there is a significant difference between works for which a creator retains copyright and works that are placed into the public domain by their creator. When a creator places a work into the public domain, he or she gives up all rights to the work in question. An author of a piece of software cannot say something such as, "This work is in the public domain. You may redistribute it freely as long as you do not charge for it." This is self-contradictory, because by placing the work in the public domain, they gave up their right to control its reproduction.
For the most part, the software constituting the NetBSD operating system is not in the public domain; its authors retain their copyright. However, because the people working on the NetBSD Project are committed to providing a free operating system, the license terms that cover most of the Project's source code are relatively lenient. In general, developers pattern their license terms after what's known as the "Berkeley license." This license was used in the University of California, Berkeley's second Berkeley Networking Release and the 4.4BSD Lite software release, and looks like this:
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the University of California, Berkeley and its contributors. 4. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
The license is preceeded by the copyright statement itself, and is followed by some disclaimer information, so that if someone has problems with the software the authors can't be held liable.
The Berkeley license is a rather liberal license. All it requires is that the author of the work be given due credit for their creation, and that their name not be used to promote products based on their work. It allows free distribution, as long as the terms are followed, and also allows people to modify the work and not distribute it, if they so choose. Some contributors also omit the third clause.
Though the Berkeley license is generally used as the template for the license terms of works that are part of the NetBSD source tree, it does not apply to all works in the source tree, and you should check the individual source files to see what license applies to them. In particular, certain parts of the source tree are covered by the GNU General Public License (also known as the GPL), which is very different from the Berkeley license. Though we would like all of the software that we distribute to be covered by a Berkeley-style license, we can't make other people change their license terms, and we don't have an infinite amount of time to rewrite all of the software that we need.
The people working on the NetBSD Project want to provide a high-quality system that anyone can use for whatever they want. We're not in it for the money (we're volunteers!), so we've no desire to keep people from distributing our work. However, for various reasons, we'd like credit for the work that we do, and so neither do we want to place our work into the public domain, and thereby give up our claim to even having our names on the software we wrote! Berkeley-style licenses are a happy medium: they allow people to copy and modify the software, so long as we get name recognition and our names aren't used without our permissions.
One thing that some people don't realize about Berkeley-style licenses is that they allow licensees (the users of the licensed work) to sell the code, in any form, with or without modification, and that they make no requirement that licensees give away the source code, even if they're selling binaries. This provides a striking contrast to the license terms granted by the GNU General Public License, because the GPL requires that, if you're distributing binaries, you be willing to give away the sources to build those binaries.
Those of us working on the NetBSD Project are aware of this distinction, and some even value it. As stated above, we want anyone to be able to use the NetBSD operating system for whatever they want, just as long as they follow the few restrictions made by our license terms. Additionally, we don't think it's right to require people who add to our work and want to distribute the results (for profit or otherwise) to give away the source to their additions; they made the additions, and they should be free to do with them as they wish.
In summary, the people involved in the NetBSD Project use a Berkeley-style license where possible because it closely matches our goal of allowing users to do whatever they'd like with our software, while making sure that we get credit for the work we have done. We are pragmatic, however, and will include software with different license terms in the NetBSD operating system if it significantly improves the quality of the system.
Every effort is made to keep everything cleanly split into 'Machine Dependent' (MD) and 'Machine Independent' (MI) areas. For example an ethernet chipset would have a single MI core hardware driver, which would be matched with appropriate MD bus attach code for a given platform. Not all drivers are as clean as we would like for historical reasons, but any new driver will be, and old drivers are in the process of being converted across.
NetBSD's logo is "Of course it runs NetBSD", and with good cause. At the time of writing NetBSD provides formal releases for fifteen platforms, and has ports for five others. Those numbers can be deceptive - within one port (mac68k), there are 93 different machines, of which 89 are currently supported (37 fully).
Good design and correct implementation are only part of the story. NetBSD is also highly interoperable with other systems.
NetBSD provides a binary emulation system, which permits directly running binaries for other UNIX-like operating systems, including FreeBSD, HP-UX, Interactive UNIX, Linux, OSF/1, SCO UNIX, SunOS, System V Release 4, Solaris and Ultrix on the same CPU type. For example, any NetBSD/m68k based platform can run SunOS binaries for Sun 3 and 3x systems (but not SunOS binaries for SPARC or UltraSPARC systems), while NetBSD/sparc can run SunOS and Solaris binaries for SPARC systems. [Note: for dynamically linked binaries, the dynamic linker and libraries from the emulated operating system are usually required.]
In addition, the WINE package and doscmd package permit running of Windows and MS-DOS applications, and the Linux version of Executor can be used to run MacOS applications.
Although NetBSD releases are not currently certified, we attempt to be compatible with established standards:
We also follow some de facto standards:
Also see: more information on standards conformance.
In addition to the native 64-bit FFS file system, NetBSD can read file systems from other operating systems, including:
NetBSD supports a large number of network protocols. Some of them are: