|< Free Open Study >|| |
The Free Software Foundation (FSF) is an organization founded by Richard Stallman of MIT's Media Lab. The Free Software Foundation has had a huge impact on the Internet and the world of computing, but perhaps their two greatest contributions are GNU and the GNU General Public License. (GNU stands for "GNU's Not Unix!" Watch out for that recursive acronym, it's a mindbender.) In their own words from their web site:
"The Free Software Foundation (FSF) is dedicated to eliminating restrictions on copying, redistribution, understanding, and modification of computer programs. We do this by promoting the development and use of free software in all areas of computing—but most particularly, by helping to develop the GNU operating system."
The GNU project was founded in 1983 and is intended to be nothing less than a full-fledged operating system, including a kernel, system libraries, and a comprehensive set of useful user applications. However, back in the late '80s and early '90s, GNU lacked a kernel. The kernel is like the keystone of an arch, and without it, the ideal of GNU as a full-fledged operating system was incomplete.
In 1991, Linus Torvalds (then a college student) began writing a Unix-like operating system kernel, because he was dissatisfied with the existing free options, and, like so many of us in our college days, too cash-strapped to buy a commercial system. Linus' kernel (eventually called Linux) began evolving quickly. When Linus chose to release his kernel under the GNU General Public License, it filled the gap left in the GNU project; while GNU provided the system libraries and user applications, it was not a complete operating system without a kernel. With Linux's "mere finishing stroke", GNU became a reality. Of course, in recent years the GNU projects own kernel (called the HURD) has matured immensely, and is close to the point where it can be used to replace Linux in actual systems.
When this occurred, it caused quite a stir in the academic community. Perhaps unfortunately, Linus and his Linux kernel garnered the lion's share of the accolades at the expense of the GNU software that made the overall system a reality, and people began speaking of "Linux systems." Now, a decade later, we have reached the point where people speak of the "Linux phenomenon" and the "Linux operating system."
If Linux is just a kernel, and GNU is just a set of libraries, then they should be interchangeable, right? Perhaps you could replace Linux with a different kernel, and have a GNU system based on something else. Or, perhaps you could use the Linux kernel with a different set of system libraries, and have some other environment running on the Linux kernel. This section will describe some of the cooler things you can do with Linux.
In fact, interchanging both kernel and system libraries is possible, in theory and sometimes in practice. For example, it might be possible to replace the GNU libraries with the system libraries developed for, say, FreeBSD. In that case, you might have a BSD/Linux system. Or, you could compile the GNU libraries for the Solaris kernel, and have a GNU/Solaris system. Meanwhile, the GNU project is continuing work on its HURD kernel, and already has a functional distribution based on Debian (see Chapter 6) that runs on the HURD instead of Linux.
This can get even more exotic, if you branch outside the realm of Unix-like system libraries. For example, Apple recently released their OS X version of their operating system for the Macintosh. The core of this project is known as Darwin, and is based on BSD. There is a group working to port Darwin to the Linux kernel. Meanwhile, Transvirtual Technologies, Inc. produces an opensource Java virtual machine known as Kaffe. They have a related effort called PocketLinux to produce a Java operating environment by using Kaffe as essentially the system library running on a Linux kernel, for embedded devices such as PDAs
The possibilities are endless, and in fact there are a lot of efforts out there for merging various products and running Linux in many unique ways, with many types of environments and system libraries. Some of these are more theoretical than others (for example, Linux/BSD would probably be extremely difficult in practice), but it's definitely one of the cooler aspects of Linux and free software.
|< Free Open Study >|| |