Converting a brilliant and specially customized C or C++ application from a generic UNIX OS to GNU/Linux has the potential to be painful, costly and time consuming. From comical personal experience I find that Murphy smiles and laughs at such rich complexities. “UNIX to Linux Porting: A Comprehensive Reference” gives psychological handle bars for those of you that wish to plan or enact a porting project for the first time and a comprehensive reference for the more experienced. This book details the main differences between Solaris, AIX, HP-UX and GNU/Linux. The three authors: Alfredo Mednoza, Chakarat Skawratananond and Artis Walker have the pedigree of professionals comprehensively working for a prolonged period within the UNIX universe.
My first impression of the book was that it was solidly thick and dense with the expected detail required for a successful porting project. Apart from the gentle introduction to porting methodology, the majority of the book revolved around comparative references of the differences between libraries and tools for the various operating systems. Not an easy read, but as stated in the title this is a comprehensive reference.
This is a comprehensive reference
This tome is a solid 720 pages. The first three chapters give a whirlwind introduction to porting methodology. The second chapter on scoping helps project planners zoom in on what are arguably the most crucial aspects of planning resources: How big is the projects scope? What are the areas of complexity? Without answering these questions correctly any project may easily turn into the iconoclastic nightmare overrun project.
The early chapters make it clear that a porter needs to know both the target and the source operating systems, whereas a generic developer can get away with less general knowledge. Porters thus represent the cream of developers, a fact worth noting as you move into your first porting project.
The placement of internet addresses in the footnotes allowed me to use the book efficiently in combination with online sources. If the links were in the references as is true for a large minority of books then I would have spent a lot of time flicking backwards and forwards instead of concentrating on the real problems.
The series of comparisons of tools and libraries later in the book (one chapter per operating system) cannot by its very nature make for interesting reading, but is totally meaningful in the context of the target audience of porting professionals.
Chapter seven mentions debugging tools and I was motivated to download and try out the anti-malloc overrun tool Electric Fence using the examples given within the book.
A comprehensive reference serves best the practitioners in the field, those of you at the doing end of the porting problem stick (and yes it can be a big stick). I also believe that the first few chapters are meaningful for project managers and decision makers so that they can gain a feel for the potential complexity of such a detailed project. Reading the book may help avoid a few real life dangers. Finding one real life danger is worth the value of the book.
Finding one real life danger is worth the value of the book
The more software that is ported the greater the biodiversity of groups of interested end users that will want to run the GNU/Linux OS. However, that said, there are so many killer applications running on GNU/Linux today that I suspect that a critical mass of software has long ago been achieved and then totally and utterly surpassed. Therefore porting software may be only vital for specific commercial companies that wish to gain advantage from GNU/Linux market penetration. To a lesser extent for free software makers who probably will use free software libraries to gain multiple operating system compatibility or Java, Python, and so on, or both generic libraries and languages.
A reference book with a good introduction to the correct project methodology is helpful to those that are new to the porting problem domain and wish to get up to the correct speed quickly. This book has longevity of value due to the detailed nature of its content.
UNIX to Linux porting is a niche market with only a relatively few practitioners and thus of no interest for the average reader. Due to the high level of detail in the later parts of the book the reference as a whole may age quickly. I suspect that the links given as footnotes will help alleviate the aging or extra editions may need to be periodically published.
|Title||UNIX to Linux® Porting: A Comprehensive Reference|
|Authors||Alfredo Mendoza, Chakarat Skawratananond, Artis Walker|
|Over all score||7|