Whither BSD?
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.
Where does the money come from?
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.
Nay-sayers department
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?
|
|