In order to cut down on repeats of very simple questions, please read this post first to determine if your question can easily be answered by existing resources.
You're highly encouraged to read the supplemental documentation for whatever BSD you're using
before posting a question. Most questions will be answered by the documentation on the respective BSD's website. Unlike some Linux distributions,
all BSDs are very well documented with meaningful examples. Trust me, read the docs first.
BSD project official homesites & documentation
FreeBSD
Website:
www.FreeBSD.org
Handbook:
http://www.freebsd.org/doc/en_US.ISO...ook/index.html
NetBSD
Website:
www.NetBSD.org
Documentation:
http://www.netbsd.org/Documentation/
OpenBSD
Website:
www.OpenBSD.org
FAQ:
http://www.openbsd.org/faq/index.html
BSD FAQ
Q: Is BSD Linux?/Does BSD use Linux?/What's the difference between BSD and Linux?
A: BSD for Linux Users
Q: What are the differences between the major *BSDs?
A1: The long answer my be found at
Daemon News: The BSD Family Tree
A2: My answer would break down like this:
Darwin/OpenDarwin: The open source versions of Mac OS X (sans the Auqua interface). Obviously they're for the PPC architecture.
DragonflyBSD: Focuses on massive scalability and being a logical continuation of the
FreeBSD 4.x tree. More information on their goals may be found on
their website
FreeBSD: Focuses on being a mainstream server platform and also supporting as much i386 hardware as possible. This means that it often supports more rare or new x86 hardware than the other *BSDs.
NetBSD: Focuses on being able to run and cross-compile on any device capable of being bootstrapped. They also are very concerned with correctness and code auditing, and it's widely believed that
NetBSD has the fastest TCP/IP stack.
OpenBSD: Focuses on correctness and security. People think that
OpenBSD is completely focused on security, but that's not quite right. The developers are more concerned with correct coding techniques and security is a byproduct of that (less bugs). Also having a very secure default configuration lends a lot to the reputation for security.
A3: You should really read for yourself. Each of the *BSDs generally has a website with an address of
www.<name of bsd>.org, and on that website there is a "goals" link. Read the goals of each OS and make up your own mind whether it fits what you're looking for.
A4: You could also read this article at ServerWatch
"Differentiating among BSD Distros" Note that the article isn't exactly accurate, as it wrongly calls BSD operating systems "distros", claims that BSD has less software available than Linux (FreeBSD has over 10,000 ports), and attributes the TCP/IP speed record to FreeBSD (actually NetBSD currently holds the record).
Q: How are the different *BSDs related?
A: FreeBSD and
NetBSD are derived from
4.4BSD Lite.
OpenBSD is a fork of
NetBSD, and
DragonflyBSD is a fork of
FreeBSD.
Darwin is the underlying OS to
Mac OS X, which is built on a
Mach microkernel, that is itself derived from
4.2BSD. Userland in
OS X comes mostly from
FreeBSD and
NetBSD, so basically
OS X is a big BSD melding pot.
Q: Should I edit my kernel configuration?/Should I build a custom kernel?
A: Almost certainly,
NO. All the BSDs are built to have completely usable kernels by default and should have the correct options for 99% of all situations. Note that hacking your kernel config to remove device drivers will not increase performance at all, it just makes the kernel smaller (and only by a few hundred KB at that, i.e. not worth it). On
FreeBSD you
might need to edit the configuration to add your sound devices (although it's usually possible to enable sound via a loadable module), and on
OpenBSD you will need to add some options if you're setting up RAIDFrame (don't do it unless you acctually
are setting up RAIDFrame, though).
In general kernel config hacking on BSD is discouraged. It puts your kernel out of sync with what the developers are using and means that every time new devices or options are added to the default kernel, you'll have to hand-merge those changes into your own kernel config. On OpenBSD, as long as you're only
adding options you can actually create a tiny config file with just your changes and have it include the GENERIC kernel config.
The bottom line is that you shouldn't change your kernel config unless you have a
very good reason to. BSD veterans won't consider you "l33+" if you hack your kernel config, they'll consider you an amateur. Developers and mailing list members are extremely unlikely to help you if they find that you're using a custom kernel, and may well ridicule you (particularly on the
OpenBSD lists).
Q: Will customizing my kernel increase performance?
A: In most cases,
NO. The one exception is the
FreeBSD development tree, that has a substantial amount of debugging code in it (5.0-5.2.x). On the other BSDs (including
FreeBSD 4.x) all you can really remove from the kernel is device drivers and removing those only shrinks your kernel a tiny bit and possibly decreases your bootup time by a few seconds.
Unless the difference of a few hundred KB on disk or in RAM is some how a huge issue to you, you shouldn't be removing device drivers. Some device drivers rely on each other in ways that might not immediately be obvious, for instance USB mass storage relies on SCSI drivers, so even if you don't have a SCSI device in your machine, you almost certainly want to keep those drivers in so you could use a USB thumbdrive or USB-attached digital camera.
Trust me, it's really not worth it given all the interesting ways that you could break things and the fact that customizing will make it dificult if not impossible for people to help you with weird problems you might encounter.
I'll be adding more useful links here as time permits.
Please e-mail me if you have any suggestions, corrections, or additions to the BSD FAQ.