![]() |
| February 2001 | Get BSD | New to BSD? | Search BSD | Submit News | FAQ | Contact Us | Join Us |
|
Another year has passed, and I'm going to use that as an excuse to look back where we've come from and try to guess where we're going. This is the fifteenth article I have written in this series, over a period of 2½ years. During that time, the free software landscape has changed considerably.
Free software is nothing new. In fact, it predates commercial software. In the really early days, people didn't charge for their software, because it was a research activity. Even thirty years ago, organizations like DECUS distributed free software for Digital Equipment's machines. They've changed their name to Encompass now, but they still distribute free, user-developed software.
Let's recapitulate what happened since then:
Starting in the late 1970s, computer manufacturers started charging money for the software which they had previously bundled for free. At the same time, they started writing system software in higher-level languages, rather than assembler. Both these changes made it more interesting for people to steal the source code. The vendors reacted by no longer distributing it.
Richard Stallman started the GNU project and the Free Software Foundation, allegedly as a reaction to former MIT hackers who refused to give away their software any more. The difference with GNU wasn't the fact that the software was free, it was that it was being developed under a license designed to keep it free.
Until about 1990, the GNU project was the only significant producer of free software around. Then two separate things happened: firstly, the Computer Sciences Research Group (CSRG) in Berkeley, the originators of BSD UNIX, faced being shut down, and wanted to save their code for posterity. To do that, they had to disentangle it from the UNIX proprietary code in which it was embedded. The results of these efforts were the Berkeley Net/1 and Net/2 tapes, and later 4.4BSD-Lite.
Shortly later, but before the CSRG had released a free version of BSD, Linus Torvalds wanted his own UNIX system, and started writing the Linux kernel. I see this as a milestone not because it was a UNIX clone, but because for the first time no academic organization was involved. The GNU project was intimately connected with MIT, and the CSRG were of course part of the University of California in Berkeley. But Linus was working with a group of like-minded people whom he found on the Internet.
Then, as the result of a series of personality conflicts, the BSD projects arose. That's a very different issue from CSRG's release of the expurgated 4BSD tapes: they no longer had a specific affiliation with a university, and like Linux they were based on the Internet. The social structure that resulted was very different. You could no longer go down the hall and talk to a colleague about some issue: the colleague you wanted to talk to could have been at the other end of the world. Even more importantly, most of the people working on the projects were hobbyists who did it just for their own satisfaction. This took away the pressure to ``get it out the door''. In addition, the development was open, so others could see the product, and the quality of the software reflected on the author: as a result, people took pride in their work.
By about 1995, the BSDs and Linux had become stable enough to be commercially viable, something that few people had expected, myself included. I had been installing BSD/386 (now BSD/OS) on my customers' systems, but in 1995 I installed the first FreeBSD system, a name server which is probably still running today. Round the same time, people started pushing Linux in commercial applications. As a result, Linux became better known than BSD.
By the time Daemon News began, in late 1998, Linux was way ahead in terms of mindshare and commercial development. Looking from my own perspective in the FreeBSD community, I saw:
Most people in the project were still doing it as a hobby, but it wasn't as much as before. I was doing most of my paid work for FreeBSD, for example, but I was still an exception. Most people in the FreeBSD community were still hobbyists. Many had a day job which complemented the hobby, but not too many people were making their living with anything to do with FreeBSD.
A number of people were quite happy with this situation. For them, software development was fun. Many of the people who were already working in the software industry hacked BSD at home because it gave them a satisfaction that they didn't get at work. They didn't want to compromise that satisfaction by making it their work.
The trend of the time was Linux. It was clear to many US investors that Microsoft was in trouble, and that there was possibly much money to be made with other software. Most of these people were interested in making money. The open source philosophy meant nothing to them.
The naysayers were still predicting the imminent demise of <my>BSD.
Looking back now, things have changed. For example, all but one member of the FreeBSD core team uses FreeBSD in his daytime job, and that one member will catch up in a few months time. This is not why they are part of the core team: the core team was elected, and nobody knew this detail. It's indicative of the change in the way we do our work. Despite the nay-sayers, BSD is still there, alive and kicking. As far as I can tell, it's becoming better known all the time. On the other hand, the love affair the investors had with Linux seems to have cooled down somewhat, and they're no longer paying ridiculous sums of money for stock in Linux companies. This is not any fault of Linux: the stock market had overreacted in the first place, and it's gradually coming to its senses.
But what about this ``we're not in this for the money'' attitude? It's rather reminiscent of Bill Jolitz, who left BSDI because they planned to make money with BSD/386. The fact of life is, of course, that we need money to live. The real question is whether you want to make money doing things you like, or make money so that you can do the things you like. Certainly the question of open source is different from the question of making money doing the work. In the latter case, you're going to have a manager who tells you, more or less gently, what to do. You don't release your software when you think it's ready, you release your software when the team agrees it's the right time. The ``right'' time can depend on many other factors than the maturity of the code--just look at Microsoft for a good example.
Last year the German magazine c't printed an editorial in which they suggested that IBM's involvement with Linux was not necessarily beneficial to Linux. Obviously any large company has a reason to spend money, they argued, but they weren't sure what IBM's motives were. Just recently, Techweb published a story entitled Is Linus Killing Linux?, in which they argue in a similar vein, that big corporations want to have a say in the evolution of Linux.
So what does that mean to Linux? There are two separate issues: will it become less free, and will it become worse?
Not everything in commercial software is bad. After all, until free operating systems came around, we all used commercial ones, and some of the features were quite good. So what's the problem?
As I see it, we face the following potential threats^H^H^H^H^H^H^Hissues:
The software could become non-free, or in the case of a fork, the superior version could become non-free.
Thanks to the GNU Public License, there's not much likelihood of this happening to Linux. The BSD license doesn't exclude the possibility of this happening, so theoretically is a danger that this could happen to the BSDs. I believe that other factors will make this unlikely.
The software could become pushed in a direction dictated by users, rather than by the designers.
That's possible. The question is, is this a bad thing? Imagine, for example, that the users say ``we want GUIs like Microsoft, we don't want this archaic command-line thing''. Now I don't need anybody to point out to me that one doesn't preclude the other in a well-designed system. The point is that if people who don't understand this are allowed to influence the design of the system, it could be the worse for it. I suspect that this is at least part of what happened to Microsoft.
20 years ago Microsoft moved into the operating system arena (previously they had been almost exclusively a supplier of compilers and similar tools), and the operating system they chose was... UNIX! Well, in those days nobody except AT&T was allowed to call their product UNIX, so they called it XENIX instead. It wasn't until later that IBM approached Microsoft and wanted an ``operating system'' for their Personal Computer, which obviously was too small for XENIX, that they bought what became MS-DOS.
In the course of time, MS-DOS has turned into Windows, if not by direct code migration, then at least in spirit. Why didn't they learn lessons from UNIX? There are obviously a number of reasons, but not knowing about UNIX wasn't one of them. I suspect that doing ``what the user wants'' was one of them (``It's just what I asked for, and not what I need'').
The software could be pushed in a direction intended to improve the vendor's market position. Even if the source code is free, they don't have to release the source code until they release the final software. This would give them an advantage over other people in the marketplace.
Of course, this happens already. Lots of free software only becomes free once it's been debugged. The question is, how much difference this makes.
The software could be released before it's ready in order to respond to market pressures. As a result the quality would suffer.
This is going to happen. To a certain extent it happens already, but the pressure may increase. It will be up to the individual programmer to decide how to handle the issue.
So why isn't there a danger that BSD will fork, and that the predominant version will not be free? Simple: people have already tried that. Many of the UNIX systems of the 80s were based on BSD, for example SunOS and Ultrix. Sure, they switched to System V, but if you look at how the pure System V software companies are doing today, you won't see any likelihood that they will want to encumber themselves with the maintenance of a large code base when others will do it for free.
One way or another, we can be sure that things will continue to change. The biggest change we have seen so far is that people have put a lot of money into free software, mainly in the Linux space, in the hope of ridiculous profits on the stock market. Those people are now realising that investing in Open Source is not a license to print money. Companies working with Open Source will need to make a profit.
But how do we make a profit? Conventional wisdom has it that you make money by creating a product and selling it. Well, it's difficult to make money by selling free software, so the product needs to be something else. Services? Packaged solutions? Support?
One of the issues we're seeing is a difference in viewpoint between the sales people, and the technical people. It's not that they don't want to see the other side, it's just that they're so far apart that they have difficulty. I'm not pretending I know the answers, but it's obvious that the current practice of creating distributions of Linux and then giving them away is not going to work well in the long term. I'll discuss that issue in the next article.
Some time ago I reported on the computing environment at my daughter Yana's school (see the section ``No programming, please'' at the bottom of the article). In particular, I complained about the arbitrary rules they applied. Well, this year we got another form to sign (we had refused to sign the last one), and it was a lot better. They still talked about hacking utilities, but the nonsense like deep directories was gone, so we signed it.
On the other hand, Yana has her own laptop (running FreeBSD, of course), and it has an Ethernet card. So one day when I had to go to her school anyway, I brought her laptop with me, and we went to the library to see if we could connect.
We had the usual problem: find a live Ethernet jack. The obvious thing to do was to disconnect a running machine. Before doing so, I looked at the screen. That didn't look like Microsoft. In fact, it looked like an unconfigured X display with Netscape running. On a hunch, I pressed Ctrl-Alt-F1 and read:
FreeBSD/i386 (dhcp1299.strathalbyn.edu.au) (ttyv0) login:
I laughed so hard that Yana tells me I went bright red in the face. And of course we had no trouble connecting to the network. It was handy, though, to have the Netscape on the FreeBSD box to tell us how to set the proxy.
What was that about the imminent demise of BSD?