GNU License for Hardware

Justin Wells jread at
Sun Oct 17 08:17:43 UTC 1999

On Sat, Oct 16, 1999 at 03:02:37PM -0500, Tom Hull wrote:
> Richard Stallman wrote:
> > 
> > The only thing in GNU/Linux which is Linux is the kernel.
> Is this really a true statement?
> What about lilo? What about kerneld? Other user level (non-kernel)
> daemons and utilities?

You're right, things like LILO make his statement technically
incorrect. However the idea is right. Linux is the kernel 
"and friends", meaning all the hardware dependent stuff like
the boot loader, kernel module junk, etc., with some fuzziness
around the edges because this is necessarily handwaving.

There's also a whole lot of other important things that are 
not Linux and are not GNU, such as the package manager, 
install system, filesystem layout, and administrative tools, 
which are supplied by the distributor.

That leaves out important things like XFree86, however you can 
have a Unix system that does not run X, and people will still 
be willing to consider it Unix.

I admit things like XFree86 present a grey area though. You 
don't need X on a Unix server, but you do need it in order 
to call a machine a Unix workstation.

> Conversely, if we do an inventory of the user level programs in
> a typical "GNU/Linux" distribution, how much of this is really
> attributable directly to GNU? Even if you discount applications,
> games and the like, and just try to concentrate on tools, layered
> infrastructure, and sysadmin utilities (the sort of things that
> are typically bundled with Operating Systems, e.g. by commercial
> Unix vendors)?

The GNU project contributed (almost?) all the tools which make it
"Unix", other than the kernel. You could rm all the rest of the
stuff in Linux and still be happy to call it a Unix system. 

Think of it this way: if you took all the GNU tools and ran them
under a BSD kernel, it would feel like Linux. If you took all the 
BSD tools and ran them under a Linux kernel, it wouldn't feel 
much like Linux at all. 

The "Linux feel" is actually the "GNU feel".

If I asked you to define Unix and list the minimal set of things
that would comprise a Unix system, you would mention the kernel,
plus the shell, ls, dd, ed, and other things in /bin, the compiler,
C preprocessor, debugger, the various libraries, tar/cpio/compress,
gzip, grep/regex, a dbm implementation, and you would probably
expect there to be a decent editor as well (like emacs). All 
of those things, other than the kernel, are GNU tools.

It's notable that GNU does not provide an implementation of ex/vi,
since it's one of the few things you would expect Unix to have 
that GNU doesn't provide.

Given that the "Linux feel" is actually the "GNU feel" I think 
there is a strong argument to stick the word GNU in the name. On
the other hand, it seems like there are more important things 
to worry about. 

I remember reading a column once where the author complained that 
Stallman was far too political, and that it would be best to 
ignore him. However, the author noted with obvious exasperation
that it was impossible to ignore Stallman, since he had written
too much software.

> In the case of GNU software like glibc, was the software in
> question ported to run under Linux (like it was ported to run
> under umpteen Unix variants), or was Linux written to conform to
> the GNU software? Did GNU define a kernel API? Was Linux written
> to conform to that API?

Linux was written to conform to the GNU tools, and was written
using the GNU tools. GNU predates Linux, and the GNU tools were
being used and developed on other (non-free) OS's prior to that.

> Should we count under the GNU column something like GNOME, which
> is at most an optional part of many Linux distributions?

No. You should count the basic feel of the OS at the command line 
level, and notice how many of the basic Unix tools are GNU tools.

You could have a Unix system without GNOME. You could not have 
a Unix system without ls, sh, tar, cc, db, etc. 

> Finally, why should we trivialize the kernel of any OS as an "only
> thing"? If kernels were so easy, one would think that GNU would
> have long ago released one.

Perhaps you would prefer to call it "Linux/GNU" if you think the 
kernel is more difficult to write than gcc, gdb, bash, emacs, 
and all the other GNU tools.

Or perhaps it is you who's trivializing things.

GNU probably would have implemented a kernel a long time ago, 
except that someone else wrote a good one and released it under
the GNU license. So there was less pressure to do so, and 
people apparently concentrated on implementing things that 
didn't yet exist. 


More information about the License-discuss mailing list