I guess I could have called this a Mac OS X entry, a Linux entry, an UNIX entry, pretty much anything. But I think that the main subject here is BSD, so I'll go with that for now
It all started here, with this rather impressive description of the differences between Linux and BSD. Not the implementation differences; indeed I might pen a few sentences about those some time. This article describes the broad methodological differences between the systems. Unfortunately, when it got to
This was partly due to the way the article was worded. For instance, the author said that in his experience, BSD people understood Linux more than Linux people understood BSD. Well, maybe that's true, but it's not the kindof thing you say on a predominantly Linux-oriented site if you want objective reviews
The article noted the difference between a Linux distro and a BSD system, such as FreeBSD, NetBSD etc. This is a very key point. The various BSD flavours are not merely different distributions of the same system. They are different systems. Each one derives from the final Berkeley release of BSD, and has modified, added to, removed or replaced that Berkeley code as its developers have seen fit. So whereas SuSE and Fedora Linuxen use the same kernel, fileutils, C compiler etc. the different BSD systems truly are self-contained units.
A Linux distribution is a collection of software that contains the Linux kernel, and a bunch of other software that is necessary to get a useful operating system involving that kernel. The software is not (usually) maintained by the distributors. For instance, a particular Mandrake distribution may contain kernel version x.y.z from the Linux kernel project, gcc a.b from the Free Software Foundation, OpenSSL c.dp from OpenBSD, etc. etc.
A BSD system does not have distributions, per se. There is only one FreeBSD, for instance. As the original article stated, to obtain a BSD you typically have two options. One is to check out the current source code from their versioning system, the other is to download a "release" which is a snapshot of the source tree at a particular time. Some of the BSDs offer ISOs of their snapshot releases as binaries, which may be installed without the need to compile your own system.
The entire "base system" of a BSD is maintained as a single entity by its development team. So although a particular system may use a GNU utility, for instance, autoconf, if it's part of the base system then that autoconf is really a BSD derivative of the GNU code, and not necessarily identical to the GNU code that was merged with the base system. This is typically not the case with Linux distributions, in which the code is simply built and packaged 'as-is'.
I noticed while looking through the
Darwin - I promised I'd mention it near the end, I'm not sure whether or not this is the end but I've run out of things I thought I was going to talk about, otherwise
As regards the subject of this little journal entry, the important differences between Darwin and the other popular BSDs are the existence of a commericial version and the lack of a ports system. Obtaining Darwin is also more geared toward binary distributions than checking out the source tree, although the latter is available. There are also snapshot source distributions at the Darwin website, and more information at OpenDarwin.