Free Software

I am a huge fan of free software, and most of what I do with computers these days involves free software in one form or other. I run a free unix clone operating system, write software both recreationally and professionally using gcc (the Gnu C compiler), and now you can find out how and why.

Running a free unix system (Linux or BSD) on a pretty ordinary Intel based personal computer turns it into a quite effective unix workstation. Some folks just cannot come to grips with the fact that running free software on cheap hardware can be an effective solution, but they just haven't tried it yet. The usual complaint cited is that with free software you don't have support. To explore this in greater depth, read my diatribe on support.

Columbia University and Kermit

I would like to be able to say the whole free software world began with the GNU project. This would almost be true, but to be honest, probably the first piece of free software I ran into was kermit.
As a hot news item, C kermit 7.0 is now available as beta software. And 7.0 will run on recent linux kernels, which is more than can be said for 6.0.

Before networks became ubiquitous, kermit was truly a lifesaver. As a communication package that makes use of serial ports and modems it is still valuable and useful, and even today I make frequent use of it. (cu and tip are a pain in the neck).

Strictly speaking, kermit is not free software, however it is freely available, as source code with accompanying machine readable documentation. The license statement reads as follows: Kermit 95 software and the accompanying documentation are copyrighted and protected by law. They may be used only under license. The licensed material may not be posted in public download areas, submitted to user groups, placed on CDROMs, included with any product, or redistributed in any other form without license to do so. Some of the intention seems to be to require you to make it available with a manual (which does have a price). This prevents its being part of BSD or Linux distributions.

The GNU project

We all owe the GNU project a huge debt for making the free software world what it is today.
Take a look at the site put together by Mr. Trent if you are interested in another perspective on Gnu.

My first experience with GNU software began when I acquired a derelict computer with a motorola 68010 processor in it, and wanted to begin writing some code to run on it (hacking, in the good sense). At first I was able to use the Sun C compiler on a sun3 with the -mc68010 switch, but it wasn't long before this switch vanished (along with most of the sun3 machines I was using). Sun was busy abandoning the sun2 and sun3 product lines, as well as unbundling their compilers.

This was a fine opportunity to try out the Gnu C compiler (then at version 1.38 or so), and see if I could make it run as a cross-compiler hosted on a sparc machine. I was soon (well after a month or so of fussing around -- cross compiling wasn't "out of the box" prior to gcc 2.0) delighted to be able to code in C for my project machine and my thoughts began to turn to porting some kind of unix-like OS to my machine. My sense of gratitude to the GNU people was immense (not immense enough that I sent them money or anything, but immense nonetheless).

Nobody else seems to say this, so I suppose I will. Without the foundation laying work of the GNU project, in particular the Gnu C compiler, none of the now popular free unix Operating systems would ever have come to be. Linux more than any other builds on the compiler and the collection of gnu user utilities. The GNU project is working on its own kernel (the HURD ), and has always had the stated goal of providing a complete unix-like system, but it seems that Linux has become the defacto GNU kernel and the HURD is more likely to be just a curiosity. Such is the nature of freedom, it is inherently difficult to control.

386BSD

Around this time, a series of articles by Bill and Lynne Jolitz appeared in Dr. Dobbs Journal, entitled: Porting UNIX to the 386 . I wasn't much interested in the Intel architecture at this time, but was pleased when 386BSD emerged into the world, and realized that it was a code base that could run on the m68k family that I was working with. Bill, Lynne, and 386BSD seem to have all but disappeared, but 386BSD lives on as NetBSD, FreeBSD, and others.

NetBSD

I have run NetBSD. for several years, first on 486 machines, and now on Intel P5 processors (as well as on sparc and sun3 machines.) It is an extremely stable and effective environment. Of all the free unix operating systems out there, this supports the widest diversity of hardware ... but linux is catching up. If you want to run BSD on a DEC alpha, this is the OS for you.

I began running NetBSD back when Linux was just getting started on the 386 since it already was a multi-platform OS (the CSRG staff were developing BSD 4.4 on hp300 workstations, which were 680x0 based machines). I was already looking at the BSD net2 code, and running NetBSD allowed me to continue to build on the knowledge base I had accumulated.

FreeBSD

Then there is FreeBSD. FreeBSD is Berkeley unix made to run exclusively on the i386 platform. It would seem that the FreeBSD folks subscribe to the Intel paradigm of "resistance is futile, you will be assimilated". Even though their world view ends with the i386 architecture, they do a very nice job of what they do and are worth considering if all you expect to run is Intel hardware. Too bad that the NetBSD and FreeBSD folks aren't all working together, but apparently that wasn't and isn't to be.

OpenBSD and BSD/OS

As if NetBSD and FreeBSD weren't enough, there is also OpenBSD.

BSD/OS from BSDI is definitely not free software, but it is BSD and apparently supported by the people who used to be the CSRG at Berkeley, so it should be well done. At one time they called their product BSD/386 but they seem to have abandoned that to avoid confusion with 386BSD, or perhaps they want to avoid the implications that they are locked into a particular hardware.

Linux

Many have asked, why do I run NetBSD instead of Linux. Well, there is no really good reason, quite frankly. I don't have the least little thing against Linux. If I had it all to do over again, I could just as easily be running Linux, and in fact I plan to be running Linux in the very near future.

Linux has the tremendous advantage of popularity. There are lots of people using it and working on it, and new hardware gets supported faster under Linux than any other free OS. Linux ships with amazing collections of free software ready to run right out of the box. And the Linux community has an excellent spirit of helpfulness and cooperation, and a sense of doing something worthwhile and exciting. And there is software available to run under Linux that is not presently running on any other free unix platform.

Curiously enough, both NetBSD and Linux people are pretty excited about making their systems run on DEC alphas. I would be too, if I had the money to shell out for an alpha board.


Have any comments? Questions? Drop me a line!

Adventures in Computing / [email protected]