|February 2002||BSD Newsletter||Get BSD||Contact Us||Search BSD||FAQ||New to BSD?|
Two kinds of advocacy
Greg Lehey, [email protected]
In the last few years, I've talked about all kinds of BSD-related topics, but the intention is always what's reflected in the name: advocacy. It's been some time since I discussed straightforward BSD advocacy; this month I'd like to consider whom we target with advocacy, and how we handle it.
Who wants BSD?
The first question we need to ask is why we should advocate BSD. It's not necessary for the continuation of life: most people live quite happily without it. Even for computer users it's not well known. And I, for one, have quite enough work to do without telling people to go and get the new, washes whiter MyBSD.
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.
Unfortunately, a number of people don't see things this way. They see the people out in the streets as being their enemies: they sell more, and the master craftsman remains unknown. This doesn't help, of course: the people outside think of the craftsman as difficult to approach and rude, and they don't even bother to look at his products.
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.
An example: licenses
People discuss a number of differences between BSD and Linux. In my mind, one of the biggest non-issues is the question of license. The BSD license has fewer restrictions than the GNU General Public License under which Linux is released: the GPL requires that any derivative works also be placed under the GPL. Some people consider this ``viral'' effect to be the work of the devil, and part of rms' plan to take over the world. It's true that it causes certain ethical problems when using GPL code in BSD, but there are usually ways to solve them, assuming good faith on both sides.
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 (journaling 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.
The alternative: cooperation
Let's get back to real life. It's been five years since I moved from Germany to Adelaide. During that time, we've seen a big change in the relationships between the Linux and BSD communities. Five years ago we were pretty parochial. We still had regular fights between FreeBSD and NetBSD, so it's not surprising that Linux came off badly. I have to admit that I didn't think much of Linux people at the time. Now we realize that there's more to free software than the operating system; much of the software we run on a daily basis is the same as what the Linux people run. I'm writing this with GNU Emacs (yes, GPL'd code :-), and viewing the result using the Linux version of Netscape. And it goes without saying that I am doing all this using XFree86. All of this software runs on Linux as well as BSD.
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.
When I came to South Australia in mid-1997, I didn't have anything to do with Linux people. Gradually I got to know them. It should be obvious, but it's probably worth mentioning anyway: Linux people have pretty much the same mentality as BSD people. Sure, there are differences. In general, Linux people tend to be enthusiastic optimists; BSD people tend to be more critical, even to the point of appearing pessimistic. Somebody whose name I unfortunately forget once put the difference like this:
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.
Reaching the Linux people
The best way to reach like-minded people is to talk to them, of course. Don't tell them what they're doing wrong; tell them what we're doing (right). For me, this means writing talks and hosting workshops. I've been doing that for a few years now, and I'm surprised how well it is working. LinuxSA repeatedly deals with BSD topics, and the last Installfest included not only Linux but also BSD. The T-shirt gave the BSD daemon equal billing with the Linux penguin. At such events I meet more and more people who have moved from Linux to BSD. Obviously something is working.
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.
The hacker's barbecue
In Australia, Christmas falls in the middle of the summer, and a lot of people who work elsewhere come home to visit their families. At Christmas 2000, I invited some FreeBSD hackers to my house for a barbecue. We had a great time, so last year we did it again--only this time, I invited hackers from other projects as well. We had two Linux hackers and a NetBSD hacker, not too bad a number for the size of Adelaide. Again, we had a great time, and we're planning to make a regular thing of it.
So which kind of advocacy do you prefer? I'm sure that my kind gets more converts; but they are seldom pure BSD people. My approach isn't going to kill Linux, it just makes BSD better known. If you really belong to the ``kill Linux, BSD is the one true way'' religion, that's not going to be enough. Ultimately, the choice is up to you.