UNIX to Linux(R) Porting: A Comprehensive Reference (Prentice Hall Open Source Software Development Series)
|
| List Price: | $64.99 |
| Price: | $52.29 & eligible for FREE Super Saver Shipping on orders over $25. Details |
Availability: Usually ships in 24 hours
Ships from and sold by Amazon.com
30 new or used available from $28.38
Average customer review:Product Description
Port Your UNIX(R) Applications to Linux(R)--Quickly, Efficiently, and Reliably Increasingly, developers, architects, and project managers face the challenge of porting their C, C++, and Java applications from UNIX(R) to Linux(R) environments. Now, there's a definitive, start-to-finish guide to porting applications from today's most widely used UNIX platforms: Solaris , HP-UX, and AIX(R). Three of IBM's most-experienced Linux porting specialists lead you through your entire project: scoping, analysis, recoding, and testing. They present a start-to-finish porting methodology, realistic discussions of key porting tasks, and a questionnaire for assessing the work involved in any new project. You'll discover what Linux offers in terms of APIs, library functions, versioning, system features, and tools--and the implications for your project. Next, the authors address each individual UNIX(R) platform in detail, identifying specific porting challenges and best-practice solutions.Coverage includes * Understanding the Linux environment: GNU binutils, Java environments, shells, packaging options, and more * Uncovering and addressing project unknowns, variables, and other risks * Handling specific platform differences: standards, compilers, linkers, versioning, system/library calls, threads, and more * Testing and debugging ported applications using the GNU debugger and Linux memory leak and performance tracing tools * Contains quick references to UNIX(R) and Linux APIs, compilers, and linker options, and a discussion of porting issues unique to IBM's POWER architecture Whether you need a start-to-finish guide or a concise reference, you'll find this book an indispensable resource for all your UNIX(R)-to-Linux porting projects.
Product Details
- Amazon Sales Rank: #945830 in Books
- Published on: 2006-04-22
- Original language: English
- Number of items: 1
- Binding: Paperback
- 720 pages
Editorial Reviews
From the Back Cover
Port Your UNIX® Applications to Linux®–Quickly, Efficiently, and Reliably
Increasingly, developers, architects, and project managers face the challenge of porting their C, C++, and Java applications from UNIX® to Linux® environments. Now, there’s a definitive, start-to-finish guide to porting applications from today’s most widely used UNIX platforms: Solaris™, HP-UX, and AIX®.
Three of IBM’s most-experienced Linux porting specialists lead you through your entire project: scoping, analysis, recoding, and testing. They present a start-to-finish porting methodology, realistic discussions of key porting tasks, and a questionnaire for assessing the work involved in any new project. You’ll discover what Linux offers in terms of APIs, library functions, versioning, system features, and tools–and the implications for your project. Next, the authors address each individual UNIX® platform in detail, identifying specific porting challenges and best-practice solutions. Coverage includes
· Understanding the Linux environment: GNU binutils, Java environments, shells, packaging options, and more
· Uncovering and addressing project unknowns, variables, and other risks
· Handling specific platform differences: standards, compilers, linkers, versioning, system/library calls, threads, and more
· Testing and debugging ported applications using the GNU debugger and Linux memory leak and performance tracing tools
· Contains quick references to UNIX® and Linux APIs, compilers, and linker options, and a discussion of porting issues unique to IBM’s POWER™ architecture
Whether you need a start-to-finish guide or a concise reference, you’ll find this book an indispensable resource for all your UNIX®-to-Linux porting projects.
About the Author
Alfredo (Freddie) Mendoza is an IT specialist in the Business Strategy and Enablement group within the IBM Systems and Technology division with more than 19 years in application architecture and management. He currently works with independent software vendors to port and migrate their applications into IBM cross-platform operating system offerings. Prior to his current position, Mr. Mendoza worked in IBM’s Global Services, for AIX Kernel development organizations, and as an independent consultant for different software development organizations. Mr. Mendoza has authored and coauthored several patent invention publications on thread management and software algorithms. He is the author of the book Introduction to Utility Computing and coauthor of “Design of an Enablement Process for On-Demand Applications” in the Utility Computing issue of the IBM Systems Journal.
Chakarat Skawratananond, Ph.D., is a technical consultant in the IBM Business Strategy and Enablement organization. He provides technical assistance to software vendors to bring their applications to IBM POWER processor-based systems running AIX and Linux. He has 10 years of experience in UNIX software development and has published several articles related to Linux software migration and performance tuning. He holds a Ph.D. in electrical and computer engineering from the University of Texas at Austin.
Artis Walker is a consultant in the IBM Business Strategy and Enablement group. He provides assistance in porting software vendors’ applications and databases to pSeries servers running AIX and Linux on IBM POWER. He has more than 15 years’ experience working on both Microsoft Windows and UNIX platforms, including AIX and Sun Solaris. He has extensive software development experience in IBM DB2 Universal Database (DB2 UDB), ORACLE, ODBC, JDBC, C, C++, and Java. He has published numerous tutorials and articles on migration and performance tuning on AIX and DB2. In addition, he is the originator and main author of a series of articles titled “IBM Embraces Open Source,” which highlights various open-source solutions and their operability and setup on AIX and Linux on the POWER platform. He holds a BA in computer science from St. Mary’s University in San Antonio, Texas.
Excerpt. © Reprinted by permission. All rights reserved.
Preface
Having started off as a hacker's exploratory journey to create a free UNIX-like operating system (OS), today Linux represents a viable competitive solution in use worldwide. Being freely redistributed and with all the strengths of UNIX-based operating systems, it is everywhere. People use it to deploy intensive industry solutions such as file servers, Web servers, e-mail, and middleware support. And yet, the operating system is flexible enough to be run as a desktop client on personal computers (PCs). Although the journey to success has been bumpy, it was worth it.
Linux has always been popular within the university setting, but it has really taken off within the corporate world only in the past few years, in part because of the support of and acceptance by large companies. Slowly, over the past few years, Linux has come closer to becoming an enterprise-ready OS for use in such areas as telecom, government, manufacturing, and others.
Recent news of accelerated Linux adoption is all over trade magazines, and studies done by the large research firm Forrester Research report that Linux is the fastest-growing OS (running mission-critical applications in 53 percent of 140 large North American companies1). The same Forrester study reports that 52 percent of the same 140 companies run their new applications on Linux, and 44 percent of them use Linux to port their older applications to newer hardware.
A similar study2 done by SG Cowen suggests that, more and more, Linux is becoming the OS of choice. Therefore, developers need a structured and concise book that examines the differences between Linux and UNIX operating systems such as Solaris, HP-UX, and AIX. Software programmers familiar with writing applications on UNIX operating systems such as Solaris, HP-UX, and AIX now have to learn how to program on Linux.
This book is written for those tasked with porting applications to the Linux environment (developers, application architects, and project managers):
For application developers, this book identifies the differences between UNIX operating systems used in today's IT infrastructure.
For application architects, this book provides information to help them decide which modules of their applications can best fit the Linux OS.
For project managers, this book gives them a clear understanding of requirements and what it takes to port to the Linux environment.
How This Book Is Organized
Chapter 1, "Porting Project Considerations," supplements existing project management material by pointing out specific tasks that project managers and application architects need to think about before and during a porting project. It introduces you to the porting process and methodology we use in porting projects. Each step in the porting process presented forms the basis of discussion for the chapters that follow.
Chapter 2, "Scoping," discusses the first step in the porting process. Its general presentation of the Linux environment includes an examination of the available compilers, the GNU binutils, the Java environment, shells, and packaging options available on Linux. With the help of the assessment questionnaire in Chapter 1, you can assess the application to be ported to determine the level of work required to port the application. At the end of this chapter, a checklist of project management tasks helps you scope out the preliminary tasks for the project.
Chapter 3, "Analysis," discusses how to investigate the application architecture at a deeper level. Like Chapter 2, this chapter examines technical features available in Linux. This chapter covers, among other things, what Linux makes available in terms of application programming interfaces (APIs), library functions, library versioning implementation, and system features such as large page support. Each topic invites the porting engineer to ascertain that the application can be ported using Linux functionalities and features. As part of our porting methodology, and to eliminate risk as much as possible, the analysis step exists to uncover any variables (known and unknown) that can come up during the porting phase.
Chapter 4, "Porting Solaris Applications," Chapter 5, "Porting AIX Applications," and Chapter 6, "Porting HP-UX Applications," are the three core chapters of this book. Each comprehensive chapter details differences and similarities between the source (Solaris, AIX, or HP-UX) and the target (Linux) operating system. Topics discussed include standards support, compiler options, linker options, a comparison of system calls, a comparison of library calls, and threads. Each chapter helps porting engineers quickly find answers to questions about porting applications to Linux. These chapters answer common questions such as, "Do the APIs used in my application exist on Linux?" and "How do Linux POSIX threads compare to Solaris threads?"
Chapter 7, "Testing and Debugging," covers Linux debugging and performance tools. As the porting work progresses to the testing and debugging phase, porting engineers will encounter diverse issues from software bugs to performance bottlenecks. This chapter discusses the tools that porting engineers can use to address these issues. Debugging tools such as the GNU debugger, memory leak tools, cscope, and performance tracing tools are discussed. This chapter also identifies Web sites where you can download these tools.
The appendixes include tables of APIs, compilers, and linker options, providing a quick reference when you are porting from the source to the Linux OS. You also learn about Linux on POWER (that is, the porting differences when porting to Linux running on the IBM POWER architecture).
How to Use This Book
You can go through this book in several ways. However, we recommend that you start with Chapter 1 to gain an understanding of our methodology and thinking. After reading the first chapter, proceed with Chapters 2 and 3. When you get to the porting step, choose the operating system from which the application is being ported, and read that chapter. Then, after you have completed the porting, proceed to Chapter 7. This process is shown in Figure P-1.
Figure P-1
Recommended way to work through this book
Another way to work through this book is to skip Chapters 1, 2, and 3 entirely and jump directly to one of the porting chapters (4, 5, or 6). In this way, you can use this book as reference material for porting projects already under way (rather than as a guide).
Some technical information in Chapters 4, 5, and 6 is intentionally repeated so that those who want to port only from one particular UNIX platform to Linux will have one self-contained chapter to reference.
Although our original intent with this book was to create a porting guide (from UNIX to Linux), it has also become a comprehensive development and troubleshooting reference. As a development reference, it contains code examples to solve specific problems (such as building shared and static archive libraries, using POSIX threads, interprocess communications, and more). And depending on the platform you are porting from, it gives a side-by-side solution comparison of the three popular UNIX platforms (HP, Solaris, and AIX), including what it would take to create the same solution on Linux. In essence, this book is three books in one. Regardless of your porting needs, this book explores solutions to some of the most common coding practices and provides a wide array of solutions (based on experience) to the most common problems Linux porting engineers face. As a troubleshooting reference, this book provides code examples, compiler and linker flags, and alternatives for solving the most common nuances that porting engineers face when porting code to Linux.
We have attempted to cover as much material as possible and believe the information will, at least, provide a starting point for additional research that may be required on your part to address specific needs. For additional assistance on po...
Customer Reviews
must-have for Unix/Linux developer
This hands-on book deals with practical issues that arise when a C/C++/Fortran/Java application is ported from Unix to Linux. Specifically, the Unix variants the book deals with are Solaris, AIX, and HP-UX. Although the Unixes are generally the same operating system, they have their idiosynchrasies. I found this book very useful.
Awesome Book!
I highly recommend this book to anyone working in the Linux space. It's got everything you'll need.
The Balkanization of UNIX
The fact is, we shouldn't need this book. It is sad to see how many variants of UNIX are out there. This book covers converting programs that were developed and running on three of the major UNIX variants out there, Solaris, HP-UX and AIX, over to Linux. Such conversion entails not only fixing things that the compiler will complain about, like missing includes, incompatible system calls, etc., and also covers the more subtle incompatibilities, which might mean the program in question runs but crashes an hour later. It is an interesting reference work, and goes into great detail about trouble spots and such. I really hope that I won't see a similar book come out later, which covers converting programs written for several distinct variants of Linux so that they work on the next great OS. We should work together to make sure that such a balkanization does not occur.




