Chapter 3. Portability

Software and hardware portability is of key importance when working with modern Linux systems. But what exactly does portability mean? How can you achieve the desired flexibility from your application so that users with a wide range of target hardware and software platforms can use your software with little or no source modification? These are questions that often plague developers. This chapter aims to address the variety of hardware and software portability issues commonly faced when using Linux.

The chapter is loosely divided into two parts. The first covers pure software portability. It this case, software portability refers to a need for software to run on a wide range of Linux distributions from different vendors or even different releases from the same vendor). Ideally, all software should build automatically, with as little human interaction as possible, especially if it is to be included in a larger project or become part of a Linux distribution. Using the tools and techniques introduced, you will be able to write software that is more portable to the wide array of Linux distributions around today.

The latter part of this chapter focuses on writing software for differing hardware platforms. Modern hardware is complex and machine architectures are quite daunting. Although this chapter won't endeavor to explain how modern computers are constructed, it will attempt to address several fundamental issues that will affect you if you intend to write software ...

Get Professional Linux® Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.