This hands-on, how-to guide offers an introduction to using the GNU environment to produce an embedded system. It begins with an overview of the GNU tool-chain and a brief introduction to the concept of embedded system development, then discusses in detail the steps needed to install the GNU tools and use them to build a simple, embedded program. Subsequent chapters show how to organize an embedded project that uses the GNU system, discusses where to find GNU installation and support services, and demonstrates how to use the GU tool-chain's advanced features to retarget an application to custom hardware, run one of several supported Real Time Operating Systems and debug embedded applications from a remote location.