Things have been pretty active lately. The big news of the month (or is that of the year?) is that Berkeley Software Design, Inc. (BSDI) have acquired Walnut Creek CDROM, the main sponsor of the FreeBSD project. We'll look at that below; first, a couple of other observations.
Those who do not understand Unix are condemned to reinvent it, poorly.In fact, the SIS is not the same thing as a symbolic link. The discussions were obviously significant enough that Microsoft sat up, took notice, and modified the page to describe the differences between SIS and symbolic links. I'll summarize their version in my own words:
In summary, SIS seems to do the same things that links and symbolic links do, just in a slightly different manner. It also seems to require a lot of resources. It may under certain circumstances have the advantage of automatically creating a copy of files if a modification is made to one of the copies, but it's unlikely that there would be a significant number of copies of frequently modified files. Microsoft obviously expects massive replication:
The result is a feature that frees up as much as 80 to 90 percent of the space on a server, allowing users to store as much as five to 10 times the information as they could before. ``The bottom line is that it saves the administrator time, which is why it?s part of Zero Administration for Windows,'' Bolosky said. ``It?s designed to ease the lives of the technical support staff.''
The ? marks in the text above represent non-standard additions to the specified character set in the original. They appear to be intended to represent an apostrophe, but since they're not part of the ISO 8859-1 character set, which this document claims to be written in, Netscape doesn't recognize them and represents them as ?.
The Linux people I have met seem to share some of these views. I can't say, ``no, we're all one big happy family'', because it's not true, but I suspect that the incidents that they're thinking about also lie years back. We have had some spectacular flame wars, and without them there would probably be fewer BSD communities.
But what about Linux, I asked my friends. They all agree that serious disagreements between Linux hackers are very rare. This reminds me somehow of the respective mascots, a daemon for BSD and a particularly placid looking penguin for Linux (never mind that the penguin mascot came into being after Linus was bitten by a penguin, nor that I can't recall any cases of daemons biting).
I can't believe that Linux hackers are such fundamentally different people that they are all sweetness and light where we are continually flaming each other. I'm sure there's some other reason, and I discussed it with my friends. We spoke specifically about kernel modifications, including FreeBSD's famous ``Danish axes''. About the only thing we could come up with is that Linus' word is final: if there's a difference of opinion, Linus decides. In the FreeBSD development environment, in which I am located, things aren't so clear cut: we need a consensus, and it's not always easy to get one. The ensuing flames^H^H^H^H^H^Hdiscussions can become somewhat heated. I assume that the situation in NetBSD and OpenBSD is similar.
I don't think any of us particularly value flaming, so it might seem as if the Linux approach is better. If you value peace and quiet above everything else, this is a reasonable viewpoint. But I don't think it is conducive to the best possible code. Linus is definitely an exceptional hacker, but he's only one person, and he can't always be right. The BSD way may be more strenuous, but it has the potential to create a better overall code base.
Looking at the issue in social terms, it would seem as if Linux is a monarchy,
and BSD is a collection of anarchies. Nowadays the term ``anarchy'' has a
somewhat negative flavour about it, but that's mainly because in real life an
anarchy doesn't work. In BSD development, it seems that it is working, at least
up to a point. I'm thinking about the comparison, and I'd welcome feedback
about it.
Finally, the merger
Unless you have spent the last month hiding under a rock without a network
connection, you'll know about the merger between Walnut Creek CDROM and Berkeley Software Design, Inc, usually known as
BSDI. At this point, I should present my rant on the name of the latter
company: for reasons I don't understand, a number of people write it
BSDi, with a lower case i. I have even heard rumours from people
who should know better that the new, merged company will spell its abbreviation
BSDi. This is a long-standing tradition, but I can't see any evidence
that there is any truth in the spelling. Check out the BSDI web site for
further details.
So what's really going on? I think the real issue is that some of the details haven't been finalized, but here's my take:
A good example of how not to do it is UNIX System V.4, which was supposed to be formed by merging the previous System V code with 4.3BSD. In fact, if you look at the source trees, it seems to be more of an addition than a merge: base System V.4 can do most things either the System V way or the BSD way, which goes quite some way to explain its enormous size. I wouldn't give BSD/OS and FreeBSD much chance, either, except that the systems really are very similar.
Nevertheless, it's a daunting task. At a meeting of the BAFUG in Berkeley on the 23rd March, Bob Bruce, the president of Walnut Creek, described some of the difficulties. It now looks as if the merge will take longer than originally hoped. Given the magnitude of the task, that's not really surprising.
Looking at Linux, you'll see that there are a large number of different Linux distributions. Each of these has their own version of some programs, their own directory layout, but they are all called Linux. By contrast, the BSD systems don't (yet) call themselves BSD. This nurtures the general perception that the BSDs are very dissimilar operating systems.
There's more to this issue than the name. Each BSD has a different kernel, and the interface isn't completely uniform. Where it's possible at all, you may need an emulation module to run an xBSD program on yBSD. Device names are different, especially since FreeBSD changed the names for disks and tapes.
The differences aren't big; I'm currently writing a book on Systems Administration which I hope will be able to cover all three BSDs. But they're big enough to confuse users who aren't interested in the nitty-gritty and who only want to get their work done. In a word, we need (dare I say it?) standards.
In some circles, the term ``standards'' is treated as a dirty word. They hinder progress and bind people to the lowest common denominator. On the other hand, too much innovation can be confusing. Where do we draw the line? We already try to adhere to many standards, such as POSIX.1 and POSIX.2. It would make a lot of sense to have a single standard for other things, such as the system call interface.
Probably the biggest challenge for BSD in the next 12 months will to be to address this kind of issue and show the world that the individual projects are not groups of enemy gangs spending all their efforts fighting each other. The BSDI/WC merger is a good step in this direction. Let's hope that they're successful.