People use Linux to mean different things. A technically accurate definition is this: Linux is a freely distributable, Unix-like operating system kernel. However, most people use Linux to mean an entire operating system based on the Linux kernel: Linux is a freely distributable, Unix-like operating system that includes a kernel, system tools, applications, and a complete development environment. In this book, we use the second definition, as you will be programming for the entire operating system, not just the kernel. Linux (by the second definition) provides a good platform from which to port programs, because its recommended interfaces (the ones we discuss in this book) are supported by nearly every version of Unix available, as well as by most Unix clones. After you learn the contents of this book, you should be able to port your programs to nearly every Unix and Unix-like system, with little extra work. On the other hand, after working with Linux, you may prefer to use only Linux and not bother porting. Linux is not just another Unix. It is more than a good platform from which to port programs it is also a good platform on which to build and run applications. It is widely used around the world, and has become a household name. It has helped to popularize the concept of Open Source or Free Software. A brief history lesson will help explain how, and why, this has happened. |