Datasheet

Having an open development process means that the whole world gets to dissect the implementation of
various features within the Linux distributions and propose their own changes. Thus, Linux benefits
from the “many eyeballs” scalability of allowing anyone to make a contributiongreatly exceeding the
resources of even the largest proprietary software companies. Having an open development process
means that it’s very hard to have bad ideas accepted into the core of your Linux system. Everyone makes
mistakes, but the Linux community is usually very picky about what changes it will accept.
Linux Is Modular
A typical Linux system is built from many smaller components that work together to form the larger
whole. Unlike Microsoft Windows, Linux explicitly breaks out even the smallest functionality into a sep-
arate dedicated utility. There are several different utilities designed solely to set the system clock, others
to control the sound volume mixers on your sound card, still other dedicated tools for individual net-
working operations, and so on. Take a look in the standard
/bin and /usr/bin directories on any Linux
system, and you’ll see a few of these individual utilities for yourself.
Like many older UNIX systems, Linux is built upon a principal of KISS (“keep it simple, stupid”). This
follows the principal that it’s better to do one thing and do it well, than try to overload functionality into
giant monolithic programs. Unlike Microsoft Windows, Linux systems have been designed so that they
are easily user modifiable. You are encouraged to customize your system in whatever manner you
choose; such is the point of Free and Open Source software.
Throughout this book, you’ll see references to many tools that you may not have encountered previ-
ously. Don’t panic. As you’ll quickly discover, knowing the right people to turn to the right resources
and community groupsand using the documentation that is provided with every Linux system is
often enough to get you out of a jam. Many so-called experts are in fact highly skilled Googlers who
know how to get at the information that will help them to do whatever they need to.
Linux Is Portable
As you’ll discover in Chapter 3, Linux itself is one of the most portable operating systems available
today. Linux distributions have been released for the smallest embedded devices like your cell phone,
PDA, and digital video recorder (DVR) set-top box, while at the same time others support mainframe
systems or supercomputers being used to process the human genome. Software written for Linux is
often designed with portability in mind, and since it may automatically be built for a range of different
target systems as part of being in a Linux distribution, it’s common to find portability issues early on.
When you write software for Linux, always consider whether your decisions will affect how portable
your software will be in the future. Will you ever need to run it on 64-bit systems? Will you always have
a full-featured graphical desktop environment based on GNOME, or might someone want to use your
software on a resource-constrained embedded device? These are questions you should keep in mind so
that you won’t have unnecessary surprises later on.
Linux Is Generic
The Linux kernel itself strives to be as generic as possible. That means that the same source code can be
built to run on the smallest gadget or the largest mainframe with scalability built right in. There should
not be any need to make fundamental adjustments in order to support this wide range of target systems,
17
Chapter 1: Working with Linux
04_776130 ch01.qxp 2/2/07 10:11 PM Page 17