|
|
|
The Daemon's AdvocateCopyright © 1999 Wes Peters
A Tale of Two SystemsRecently a discussion about kernel configuration on the FreeBSD Hackers mailing list brought up an oft-mentioned question posed to all the open BSD projects: ``Why don't you make your system more like Linux?'' The usual reasoning given for this question is that many computer users discover UNIX-like systems using Linux, and making your system more like Linux will encourage Linux users to move up. In this column, I will take on the responsibility to speak for the entire BSD community in expressing a general opinion of Linux and its relationship to the BSD systems. I do this entirely of my own free will, not by any appointment or vote, because that is what pundits[1] do. If you don't like my taking on this responsibility, or what I have to say, please feel free to disagree, publicly if you must. I suggest writing an op-ed piece for Dæmon News to air your opinion, rather than just posting as an Anonymous Coward in the inevitable followup on SlashDot. TangentizingAs such discussions do, this one quickly went off on a tangent.[2] The discussion rapidly evolved into a a volley between those who see Linux as inferior to BSD in some way, and those who do not.One of the biggest differences between the UNIX community and other groups of computer users is the ongoing acceptance of the diversity of UNIX computing platforms. BSD users are very used to this plurality. When asked to summarize the differences between the freely available versions of BSD, the summary often goes like this:
I would like to add to this list the following entry:
That makes Linux sound almost like a BSD system that just doesn't happen to have any BSD code in it, doesn't it? While this is not true in terms of the code base, it is true in terms of the user community. Our goals are not that far apart. Let's look at some of these points in more detail: System SupportReview the statements about what machines are supported. There are some interesting points to be made there.Linux is supported on a variety of PC, workstation, and server architectures. In the FreeBSD developer lists, with which I am most familiar, it is not uncommon to see someone ask about support for some new, old, or bizarre piece of hardware and not be given the answer they want to hear. As with all free development projects, the developers work on what they're interested in, and if they're not interested in that goofy tape drive you bought at the university auction, it's just not going to work. In the Linux world, chances are much better you will find a driver that already works with your tape drive. If you don't, asking on a Linux mailing list will probably turn up several other users who have one of the same drives and who have configured or hacked an existing Linux drive to work with the beast. This is partly due to the larger Linux user base, and partly because pursuing every last doohickey[3] you can possibly poke into your computer is one of the goals of the Linux community. Does this mean FreeBSD is a less valuable system? The answer is yes or no, depending on how important that $29 tape drive is to you. The answer you are most likely to get from the FreeBSD camp is something along the lines of ``$29 tape drives are a great deal when you've got less than $29 of data to backup.'' Is it really worth what might be a couple hundred hours of development time to write a driver for such a device? Not if you have better things to do with your time. Does this mean Linux developers are a bunch of losers who spend all their time playing with their computer toys instead of doing something valuable? No, it certainly doesn't mean that either. While it may be true that the device driver for your tape drive was written by a teenager who could afford one of the devices and had nothing better to do with his time, that has little or nothing to do with the ``value'' of his contribution. If it meets the needs of the developer, it was a worthwhile effort; if it meets the needs of at least one other person, it was a valuable gift. Neither approach is wrong, they are just different. If You Think It's UNIX, But It's NotAnother point made above: Linux was developed without access to any UNIX source, but is designed to be very much like UNIX systems. This ``likeness'' is much more than skin deep; it is so pervasive that in many important aspects Linux and BSD are the same. Consider some of the major subsystems found in Linux and BSD installations:
Viva la difference!Inside the box, Linux is very different from a BSD system. Chris Clark, a Linux developer who happened to be at hand to help me summarize the differences between the two said ``Both Linux and BSD are constantly improving; each improves at a different rate along several different dimensions.'' I couldn't have said it better myself -- if I could have, I would have used my own words.This difference in focus can pay off in many ways. One of the beacons of the ``Freenix'' movement is the ability to turn castoff machines into working computers again. BSD systems shine at this, with their ability to provide a usable email server for numerous users on a castoff 486 PC, or the ability to build a small business intranet server from an early PowerMac that came off the secretary's desk last year. The difference also pays off on the high end. Yahoo!, HotMail, the Walnut Creek CD-ROM FTP server, the Internet Software Consortium, and other large-scale Internet services show just how reliable and scalable solutions based on BSD can be. For general user workstations, the Linux developer community has produced a system that runs on an amazing variety of hardware, is as reliable as the hardware allows (don't get me started on that!), and meets the needs of a user base growing faster than any in history. The breadth of development in the Linux world and the drive to support absolutely every doohickey you can possibly stuff into a computer results in a system that is very likely to support whatever hardware your PC vendor tossed in the ``box du jour'' you bought last year. Because Linux has addressed the needs of novice users so well, the developers and designers of the BSD systems have felt free to continue to focus their efforts in other areas. It is comforting to know that every user who is looking for an escape from the Windows treadmill and is willing to learn a little bit has someone looking after them. SymbiosisThe symbiotic relationship between Linux and the BSDs is one that is not acknowledged or discussed often enough. In the past year, I have read interviews with several key developers of the BSD systems and Linux in which they disclosed an understanding of the other systems that goes beyond casual perusal of release announcements.This type of cross-pollination is common between the BSD projects, but a lot of exchanges with Linux occur, also. The exchanges are two-way; it is common to find device drivers and utilities from the BSD world springing up in various Linux distributions as well. A fine example of this sharing is the response of these teams to the Pentium ``foof'' bug a few years ago. BSD and Linux developers began immediately discussing ways to protect their systems from this flaw, and developers who were members of several lists kept developers abreast of issues and discoveries made by others. In the end, each OS team released patches to protect their systems from this dangerous flaw within a few days of the announcement. The resulting patches were in the hands of the user population before any of the commercial vendors had their patch kits in place, another testament to the speed and reliability of the open source ``vendors.'' Hello, WorldLinux is our most fertile recruiting ground. Many of the users who have come to BSD in the past year have been and continue to be Linux users. The Linux community is where we find talented people who have already made the leap into UNIX and open systems, and who are ready, willing and able to learn. Linux is invaluable to us in the way it has and will continue to grow our user base.Linux also provides valuable data points for design decisions. When a new subsystem is being created, or an old one overhauled, the design of similar subsystems in Linux are frequently consulted, and sometimes adopted by BSD systems. The design and implementation work done on Linux contains much to be admired, and should be used when it is a good fit. Many Linux-centric development organizations are eager to accept input from BSD porters, and to incorporate these changes into their own code bases. Examples of this abound in the world of open source application suites such as KDE, Gnome, Enlightenment, and WindowMaker. That does not mean we need to turn any BSD system into Linux. We don't need to burden our precious development and support resources by attempting to support every piece of hardware or chasing every user looking for an alternative to Windows, because Linux has already addressed both quite well. To bring this back around to the discussion that started this column, let Linux teach new UNIX users what a kernel configuration is, what it does for the system, and how to use a text editor. When they move on to BSD, or add BSD to their stable of systems, configuring the kernel by editing a file will no longer be a barrier to them.
Wes Peters, wes@softweyr.com
|
||||||||