Book Review: Unix to Linux Porting - A Comprehensive Reference

August 01, 2006
In this age of numerous flavours of Unix and Linux OSes, it is imperative that applications are developed to work on a vast majority of them. But historically, Unix had been fractured, with each flavour of Unix - be it IBM AIX, Sun Solaris or HP-UX implementing its own libraries and system calls. And it would have been a nightmare to port an application running on one Unix flavor to another. But things started to brighten up a little when most of these Unices as well as Linux decided to embrace the standards set forth by the standards bodies such as ISO and POSIX.

May that be, it is still a bit difficult to port Unix applications to Linux and vice versa because the applications that are to be ported might be using non-standard APIs. And the team porting applications from one Unix flavour to Linux or vice versa should be aware of the system calls and other features of both Unix and Linux. For instance, the system calls made by each of these OSes - IBM AIX, Solaris, HP-UX or Linux - even though have a lot of similarities do have their own differences. And some system calls in one OS may not have an equivalent one in the other.

The book titled Unix to Linux Porting - A comprehensive reference, co-authored by Alfredo Mednoza, Chakarat Skawratananond and Artis Walker and published by Prentice Hall is a book which aims to be a capacious guide for developers who are into porting Unix applications to Linux.

Ironically, there are only 7 chapters but these chapters and the succeeding appendices make up over 700 pages which make this book rather voluminous.

The task of porting applications from one OS to another can be split up into 4 broad phases which are Scoping, Analysis, the actual Porting and finally the Testing and debugging phase. This book covers each of the 4 steps in a detailed manner dedicating separate chapters for each of them.

In fact the porting phase is further split up into 3 chapters for each of the three Unices - Solaris, IBM AIX and HP-UX. And in each case the respective authors have started from the rudimentary steps like setting up the porting system, explaining the differences in language specification, the compiler flags as well as the various tools like the linker, debugger and make in the respective OSes.

This book contains tables of all/most of the system calls in the respective Unix operating system and their equivalents in GNU/Linux and a short explanation of what the particular system call does.

The final chapter titled "Testing and Debugging" explains the use of tools such as GNU debugger, the use of strace and ltrace to pin point problems in the programs ported to Linux, memory optimizing tools such as electric fence, mpatrol and valgrind among others in detail.

But I found that the appendices - and these are as big and as many as the chapters themselves - have a lot of additional information which includes Solaris, IBM AIX and HP-UX to Linux reference tables, the porting issues faced when porting Unix applications to Linux to be run in Mainframes and so on. I really liked the appendix titled "Solaris to Linux Migration : A Guide for System Administrators" which lists the commands used in Solaris and their equivalents in Linux.

This book is definitely one of a kind and is an invaluable reference for anybody who is interested in porting Unix applications - and there are a whole lot of them - to work naively in Linux. But even those who are not into porting would benefit from this book as it provides insights into the system calls made by the OSes and the similarities and differences in their implementation.

Considering the complexity of the subject, it is not surprising that it took three people who are experts in their respective fields to come together to write this book. Alfredo Mendosa is an IT specialist in the Solution Enablement Group within the IBM Systems and Technology Division and is an expert on thread management and software algorithms. Chakarat Skawratananond holds a PhD and is a technical consultant in the IBM eServer Solutions Enablement Organization providing technical assistance to software vendors porting applications to IBM POWER systems running AIX and Linux. And Artis Walker is a consultant in the IBM Solutions Development Group and has published numerous tutorials and articles on migration and performance tuning for AIX and DB2. He is also the main author of several articles highlighting open-source solutions for AIX and Linux on the IBM POWER platform.

Chapters at a glance
  1. Porting Project Considerations
  2. Scoping
  3. Analysis
  4. Porting Solaris Applications
  5. Porting AIX Applications
  6. Porting HP-UX Applications
  7. Testing and Debugging
  8. Appendix A : Solaris to Linux Reference Tables
  9. Appendix B : AIX to Linux Reference Tables
  10. Appendix C : HP-UX to Linux Reference Tables
  11. Appendix D : Linux on POWER
  12. Appendix E : gprof helper
  13. Appendix F : Porting issues specific to IBM zSeries Mainframes
  14. Appendix G : Solaris to Linux Migration: A Guide for System Administrators
Book Specifications
Name : Unix to Linux Porting - A Comprehensive Reference
ISBN No : 0-13-187109-9
Authors : Alfredo Mendoza, Chakarat Skawratananond, Atris Walker
Publisher : Prentice Hall
No of Pages : 700
Price : Check at
Rating : Very good