A brief review of the history of Unix will place in context much of the terminology and philosophy of this operating system. Terms like Linux, GNU, Unix, Gnome, Free Software, and Open Source Software get bandied around, often with little understanding and usually with much misunderstanding.
A fundamental misunderstanding is the relationship between Linux and operating systems. Linux is the low level code that interacts with and controls the hardware of the computer (whether it is an Intel 486, Pentium, Sun Sparc, or a Merced). This is the kernel of the operating system, providing routines to help applications talk to each other, allowing many applications to share the CPU at the same time, and managing the use of memory, allowing many different applications to run at the same time without interfering with other applications. Linus Torvalds wrote the first Linux kernel in 1991 and it continues to be actively developed today by Linus and a core team of international developers.
While the kernel is crucial, it is the larger suite of software that sits on top of the kernel that provides the functional operating system. Most of the software applications at this level come from the GNU Project. These tools include the command line utilities like ls, cp, find, bash, and the compilers like gcc. This collection of applications is usually considered to be the actual operating system and hence we refer to the operating system as GNU/Linux in recognition of the GNU software coupled with the Linux kernel. GNU/HURD is an alternative operating system using the GNU software with the HURD kernel being developed by the GNU Project.
Sitting on top of this command-line level of the operating system is what we might refer to as the end user level of the operating system. This is typically a graphical user interface (GUI) aiming to provide an intuitive, easy to use system for both the general, non-technical user and the power user. Such an interface is typically an application that sits on top of and makes considerable use of the operating system. For GNU/Linux this is the X Window System.
The Window System provides a platform for GUI-based applications. Other applications sit on top of the Window System to provide integrated platforms with a common look and feel. Gnome, another GNU project, is one such popular platform. All Gnome applications have a similar look and share many components and can communicate with each other. KDE is a popular alternative to Gnome and while it is not one I use, I will try to include information about it whenever I can.
In this chapter we briefly review the history of Unix, GNU Software, the GNU/Linux Operating System, Gnome, and Free and Open Source Software and Documentation.