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 ...