One of the main reasons that I'm so involved with Open Source is that I've always been fascinated by figuring out how things work. In this interview, John Baldwin of the FreeBSD project gives some insight on what it is like to be a FreeBSD developer and some of the things that happen behind the scenes of a large Open Source project.
Users of Open Source projects often wonder what it is like to be actively involved and still earn a living. Can you give us some insight into your experience as a core committer for the FreeBSD project.
For my part I am very fortunate to have a job that lets me work on OpenSource while I am at work. Most folks I know that work on Open Source do that work purely on a volunteer basis either at home after work or in between contract jobs. My employer (The Weather Channel) uses boxes running FreeBSD in a core part of their business. The portion of my salary that funds my work on FreeBSD could be considered an alternative to the license and support fees they would otherwise pay to a vendor of a commercial operating system.
Thus, if an open source system is suitable for a company to use and the developer's salary is cheaper than the fees for the commercial alternative, this can be a good model for a company to get best bang for its buck. In turn, the developer has the opportunity to spend a lot of time working on something that they love to do. I really enjoy working on FreeBSD and am very thankful for the opportunity to do so on a practically full-time basis.
Much support of Open Source happens behind the scenes and doesn't always make it into the media or beyond a project's mailing lists. Can you give some examples of FreeBSD support that the general public may not be aware of?
Sure. There is a lot more to a large, successful Open Source project than the code and the people who hack on the code. For starters, a lot of infrastructure is required for things like storing the shared code and providing a means for communication (such as mailing lists). For example, Yahoo! graciously provides free hosting (including power and bandwidth) for many of the FreeBSD.org cluster machines including all of the mail servers, the primary CVS and CVSup servers, and the primary FTP and web servers. Yahoo! also provides much of the hardware for these machines as well.
Sentex Data Communications has provided free hosting for a set of machines used for network performance work as well, along with the hardware for several of those machines.
Hardware has been provided to these clusters and directly to developers by a host of other companies as well including NetApp, iXsystems, FreeBSD Systems, Promise, HP, and many others.
The infrastructure doesn't just require hardware and hosting, it also requires people. We have an excellent group of admins that manage these machines in various places including an absolute top-rate postmaster (David Wolfskill) who handles e-mail issues very promptly.
Another notable contribution comes from Perforce. Perforce provides free licenses to Open Source projects for their p4d server. The Project has taken advantage of that to setup a P4 depot in the FreeBSD.org cluster that several developers use to manage their own development branches of FreeBSD. The TrustedBSD Project manages its trees in the P4 depot for example.
Of course, another arm of the FreeBSD community is the FreeBSD Foundation. The foundation provides support to the FreeBSD Project and the community by brokering donations between users and developers and funding development projects. They also hold the FreeBSD trademark and serve as a legal entity that can represent the Project in contracts, license agreements, etc.
Finally, there are several developers who are funded either part-time or full-time by their employers to spend time on FreeBSD. The Weather Channel funds me full-time as mentioned earlier. Yahoo! employs several committers full or part time including a core team member (Peter Wemm). In addition to salaries, several of these companies also pay for their employees to attend conferences such as BSDCan, EuroBSDCon, or USENIX ATC. At these conferences developers are able to meet in person (a very valuable thing in Open Source projects!) as well as learn more about what innovative things are being done in other Open Source projects.
Which parts of the FreeBSD src tree are you currently working on?
Mostly on the kernel I guess. I actually started out working with the documentation project before becoming a src committer. I tend to focus on the kernel nowadays, usually on the parts related to SMP support, such as locking primitives and fine-grained locking in the kernel, and x86 (i386 and amd64) support, such as PCI interrupt routing.
What keeps you motivated and willing to commit to the FreeBSD project?
It's just something that I love to do. I've always enjoyed engineering type things and the joy of building things, whether it was playing with Legos as a kid or framing houses. I started programming when I was about 12 or so and have really loved it ever since. I've always wanted to work at a low level, close to the machine, because I guess I've always wanted to know how the machine really works.
Programming really is very enjoyable because software is so soft (for lack of a better word). Brooks describes this in the first chapter of "The Mythical Man-Month" where he says
The programmer, like the poet, works only slightly removed
from pure thought-stuff. He builds his castles in the air, from air,
creating by exertion of the imagination. Few media of creation are so
flexible, so easy to polish and rework, so readily capable of realizing
grand conceptual structures.
That really resonates with me, and I do feel privileged to be able to work at a job that I really enjoy.
轉載自