Contributing to BSD
Pages: 1, 2
Avoid ideas that boil down to "Why doesn't someone else do the work for this?" Most of these suggestions fall into three categories: obvious ("Hey, wouldn't it be cool if we supported the CPU in my automobile?"), foolish ("Why don't we have a kernel option READMYMINDANDDOWHATIWANT?"), or both ("Why not support my Sinclair ZX80?"). In all of these cases, the person asking is almost always completely unqualified to actually do anything about the matter, and doesn't even offer to buy a drink for those who can. You can generally rest assured that the people who are qualified to do the work have considered these ideas and are either doing something about it or are working on more important tasks.
You can't expect a thousand people to respond with "It's a great idea." The mailing lists are public discussion boards. If everyone agrees with a message, they won't all post "me too!" But if you get a few people agreeing with you, and nobody says, "Your concept is so awful that it simultaneously sucks and blows," you can generally assume that it's a decent idea. This is the closest thing FreeBSD has to "management buy-in." You can consider this full-blown approval.
Occasionally, someone might write you back saying "I think Fred's working on that, why don't you drop him a line?" You might find that you can join an existing effort. Other people will want to discuss the implementation with you. You can take this as approval; they wouldn't bother discussing the fine details if they didn't like the idea.
The same sort of thing applies to every portion of every BSD. Can you translate the OpenBSD documentation into Urdu? Yep. Can you start a NetBSD users' group in Topeka? Absolutely. Check to see if anyone's already working on it, and go do it.
This is perhaps the most vital part. Once you have buy-in, go do it. Shut up and start working. Most of the ideas I've seen on the FreeBSD lists die on the vine. There is a huge amount of basic grunt work that can be done. Nobody bothers to do it, so it doesn't happen. All of the BSDs -- indeed, all open source projects -- suffer from this to some extent. Non-programmers can ease a vital gap by simply picking some little hole and doing the work to fill it. Some people set up independent Web sites, such as Dan Langille's excellent FreeBSD Diary. The committers and contributors directly enhance the bits that the Project produces. Others are just known as "that dude who hangs out the mailing list and helps people with PPP." All are absolutely vital.
For example, Dave Hawkey wrote the FreeBSD-hackers with an old idea. You don't recognize the name? I'm not surprised. You won't find his name on a commit bit, or the PR database. He's just a guy who wanted to provide small patches for older versions of FreeBSD, so that users with a particular problem could have a bugfix or improvement without having to upgrade their whole system. It's a great idea. It can be expressed in a single sentence. People would enjoy having it, and would actually use it. It's been brought up before, many times. If you check the mailing list archives, you'll see that this it's been discussed to death. This particular dead horse has been beaten beyond recognition, sold for glue, distributed across the country, and eaten by several thousand kindergarteners. Nobody has ever actually done anything about it.
This started the usual process that occurs when ideas are suggested. People generally agreed that it would be nice. Nobody said that it was a bad idea. People made suggestions about how it could be improved.
Unlike everyone else who has made the suggestion before, Dave actually created a site where people could download actual tested patches to actual source code. There isn't much there at the moment, but as time goes on, it'll build up. People will submit their own patches. Eventually, I expect it to be a well-known resource for people who cannot easily upgrade their systems. These users will be happier for knowing about it. When he quits one day, hopefully far in the future, there will hopefully be enough there that some other person will grab the existing patches and build upon them.
The important thing is, Hawkey isn't a FreeBSD community name. He's not even "the guy who hangs out on the mailing lists answering questions about file permissions." He's just this guy. He wanted patches, and nobody had them. Instead of going away unhappy, he shut up, produced them, and put them out for the world to use. If even half of the people who suggested ideas did as much, BSD would have taken over the world already.
The upshot of all this is: do something. You have skills; if you truly want to help BSD, you can. If what you want is to become a godlike kernel programmer, you can do that too; it will just take a few years. Or, as a well-known philosopher said, "Do, or not do. There is no try." Next time, we'll look at what can happen when you do a job too well.
Read more Big Scary Daemons columns.
Return to the BSD DevCenter.