So what's the point? On the whole, we're not a very evangelistic group of people, which is one of the reasons why BSD is not very well known. I personally prefer the image of a craftsman sitting in his workshop making the best possible example of his craft, rather than the hawkers in the bazaar outside extolling the excellence of their wares. Of course, even a craftsman needs to earn some money, but he desires that the quality of his products speaks for itself; he doesn't want to have to convince people about them.
Assuming that this is the paradigm under which we advocate BSD, it's clear that we have a limited clientele, discerning people able to recognize good quality when they see it. To be blunt, that excludes nearly all current users of computers: we have a long way to go before the man in the street is really computer literate. In particular, it makes it very difficult to advocate BSD to people used to Microsoft. The people who are most likely to appreciate BSD are those who frequent the bazaar and are looking for goods off better quality than what they get from the hawkers.
How do we go about it? We see enough chest-beating on the advocacy lists and IRC: ``You Linux lusers should get a real operating system''. I don't think this is much of an advertisement for BSD, and I doubt that it gains many converts.
But can we assume this good faith? I recently saw a case which convinces me that at least some of the anti-GPL ``advocates'' are not acting in good faith. The question arose--again--about whether it would be worth porting IBM's JFS (journalling file system) to FreeBSD. I am interested in doing this port, and we discussed it for a while. Then a number of people came up with some reasons why we couldn't do it: JFS is released under the GPL. We discussed the issue of incorporating GPL licensed source files into the FreeBSD source tree. Brett Glass (yes, he explicitly wants his name mentioned) wrote:
Date: Sun, 16 Dec 2001 22:21:50 -0700 If they're part of the kernel, they're not separate works. RMS would have the right to demand, TODAY, that the entire FreeBSD kernel be licensed under the GPL. This is the danger of permitting the camel's nose into the tent.
Well, there's a way to check that. I asked rms, who replied:
Date: Sun, 16 Dec 2001 22:50:40 -0700 (MST) When code is linked together, that is not "mere aggregation"; that is making one program. If you link some GPL-covered code into the kernel, the GPL's conditions will apply to the kernel as a whole. I don't think that results in any legal difficulty. The FreeBSD kernel uses the revised BSD license, right? That is compatible with the GPL. So you can link these things together. The kernel code released under the revised BSD license will continue to be under the revised BSD license; it is only the *combination as a whole* that will be covered by the GPL--if and when the GPL-covered code is included in it. If someone links a kernel without that GPL-covered code, the GPL won't apply to that kernel.
OK, so we have a binary kernel covered by the GPL. The only requirement there is that you need to supply the source code if you give it to anybody. So you shouldn't give anybody a kernel which contains both proprietary and GPL code. Let them link it themselves. I think many people can live with that. It's not a complete release, of course: if you're a manufacturer of BSD-based embedded products with a proprietary component, you can't use any GPL software in the kernel. But that's the choice that you, as an individual, get to make. The important issue is that the rest of the source code doesn't get ``tainted''. This obviously applies all the more to any other unrelated data, the ``mere aggregation'', such as other data on a CD-ROM.
I put this back to the discussion in FreeBSD-chat, and got another reply:
Date: Mon, 17 Dec 2001 09:33:29 -0700 At 01:27 AM 12/17/2001, Greg Lehey wrote: >> Not true. The FreeBSD Project would be obliged to license the entire >> kernel -- source and binary -- under the GPL. > >That is a complete and utter contradiction of what Stallman said. I >see that you carefully removed his words: > >> The kernel code released under the revised BSD license will continue >> to be under the revised BSD license; it is only the *combination as >> a whole* that will be covered by the GPL--if and when the >> GPL-covered code is included in it. That's right. That means that every FreeBSD CD-ROM must be GPLed. So must the kernel as a whole.
If you compare the last two messages carefully, you'll notice that Brett removed the last sentence of rms' paragraph: ``If someone links a kernel without that GPL-covered code, the GPL won't apply to that kernel'', thus implying that the previous sentence meant a one-way change. It's difficult to ascribe this removal to anything except deliberate obfuscation and bad faith. This is not a way to pursue BSD advocacy: in fact, I don't see any advocacy here, just a misunderstanding of the licensing issues.
So why should we want to convert people from Linux at all? That's still a good question, and probably everybody has his own reasons. I don't personally want to ``convert'' anybody, but it's possible that Linux people will prefer BSD to Linux. Initially, I didn't think that this was very likely, but over the last few years I've seen a lot of evidence that many Linux people are very interested in BSD.
Talk to a Linux person about, say, wireless Ethernet support, and they might say ``Hey, it's great, we support just about every wireless card there is, and everything works. Well, we do have some difficulty with ad-hoc mode, and you may have to upgrade your card to the latest microcode, but there are no serious problems''.
Talk to a FreeBSD person about the same topic and you might hear: ``It works, sort of. It could be better. We're continually having problems with new cards which we don't know, and some people report panics when running PCMCIA at all under -STABLE. We've got a long way to go, and Warner has a lot of other things to do, but sooner or later we should have everything in place.''
I've deliberately singled out FreeBSD here, because my understanding is that support in NetBSD, for example, is better. The point, though, is that wireless support in FreeBSD is still a lot better than in Linux. We have severe interoperability problems, which we don't have between the BSD implementations, and I have never been able to get ad-hoc mode to interoperate at all between BSD and Linux. But the FreeBSD attitude is pessimistic, while the Linux attitude is optimistic. There's nothing wrong with optimism, of course; but often a bit of constructive pessimism results in better code.
But what else? There are bigots on both sides, of course, but there are also some excellent technical people: I have the good luck to work with a number of excellent Linux people. It's true that there's a lot of dubious code in Linux, but there's also some very good code, and the standard is undoubtedly improving. The BSDs could learn a lot from Linux.
There's no animosity involved, either: we can laugh about the differences between the camps. As I mentioned in the October 2001 column, the last Installfest fell coincidentally on the tenth anniversary of the first announcement of Linux, and as a BSD hacker I was given the honour of ``killing'' the penguin--see the link for more details.