Professional Linux Programming

  • 9h 40m
  • Jon Masters, Richard Blum
  • John Wiley & Sons (US)
  • 2007

As Linux continues to grow in popularity, there has never been more of a need to understand how to develop for this platform. Rather than focusing on a particular language or development technique, Professional Linux Programming looks at the different development environments within Linux—the kernel, the desktop, and the web—and then demonstrates best practices, tools, and techniques for integrating applications with the OS as a whole. This book is essential for understanding the nuances that differentiate programming for Linux from programming for any other platform. After beginning with simple shell scripts, the reader quickly moves on to the more advanced topics like software drivers and the graphical interface.

The wide variety of tools that you can use to build application software, utilities, and even the Linux kernel itself are covered. you'll also explore the unique components of a Linux system and delve into the inner workings of the system. And you'll find out how to use Linux with the web by writing software for the LAMP (Linux, Apache, MySQL, Perl/Python) stack. you'll then be able to apply this information to streamline software development while incorporating cutting-edge features and functionality.

What you will learn from this book

  • How to use tools such as compilers, debuggers, and Software Configuration Management
  • Ways to interact with Linux systems through network interfaces, graphical user environments, and LAMP stacks
  • Techniques for building software for different compatible platforms
  • Tips for utilizing the GNU automated build for faster development
  • Steps for using emulation and virtualization technologies for kernel development and application testing
  • How to write your own GNOME software and powerful web applications

Who this book is for

This book is for professional programmers who want to understand the internals of a typical Linux system. It is also for those who want to solve a particular problem while creating or modifying applications using Linux.

About the Authors

Jon Masters is a 25-year-old British-born Linux kernel engineer, embedded systems specialist, and author who lives and works in the United States for Red Hat. Jon made UK history by becoming one of the youngest University students the country had ever seen, at the tender age of just 13. Having been through college twice by the time his peers were completing their first time around, and having been published over 100 times in a wide range of technical magazines, journals and books, Jon went on to work for a variety of multinational technology companies. He has worked extensively in the field of Embedded Systems, Enterprise Linux and Scientific instrumentation and has helped design anything and everything from Set Top Boxes to future NMR (MRI) imaging platforms.

Jon has extensive experience in speaking about and training people to use a wide variety of Linux technologies and enjoys actively participating in many Linux User Groups the world over.

Richard Blum has worked for over 18 years for a large U.S. government organization as a network and systems administrator. During this time he has had plenty of opportunities to work with Microsoft, Novell, and of course, UNIX and Linux servers. He has written applications and utilities using C, C++, Java, C#, Visual Basic, and shell script.

Rich has a Bachelors of Science degree in Electrical Engineering, and a Masters of Science degree in Management, specializing in Management Information Systems, from Purdue University. He is the author of several books, including sendmail for Linux (2000, Sams publishing), Running qmail (2000, Sams publishing), Postfix (2001, Sams Publishing), Open Source E-mail Security (2001, Sams Publishing), C# Network Programming (2002, Sybex), Network Performance Open Source Toolkit (2003, John Wiley & Sons), and Professional Assembly Language Programming (2005, Wrox).

In this Book

  • Working with Linux
  • Toolchains
  • Portability
  • Software Configuration Management
  • Network Programming
  • Databases
  • Kernel Development
  • Kernel Interfaces
  • Linux Kernel Modules
  • Debugging
  • The GNOME Developer Platform
  • The FreeDesktop Project
  • Graphics and Audio
  • LAMP