Helping ordinary people create extraordinary websites!
GET OUR NEWSLETTER
Your Email:
 

Porting Enterprise Apps from UNIX to Linux

By Martyn Honeyford
2005-04-17


A Practical Checklist, Tips, and Insight Drawn from Experience

Much of today's enterprise-level software on UNIX® caters to the business needs of large companies. And so it must support emerging technologies and follow the rapidly evolving market trends, such as the proliferation of the powerful, flexible Linux™ operating system. Because much of this software is large, multi-threaded, and multi-process, porting it to Linux presents challenges. In this article, get a checklist and advice derived from a real-world port of one piece of enterprise-level software to Linux.

One of the realities of current business IT practices is that many organizations are moving IT to Linux, given its flexibility and stability as a system platform. Another reality is that existing enterprise-level software is too valuable to be discarded. These two realities often crash into each other, but it is critical that they be resolved.

Porting enterprise-level software to Linux can present some interesting challenges. Care has to be taken at all stages -- from making design choices to getting the build system to work to finally getting the OS-specific code to cooperate with Linux.

This article is based on my experiences on RHEL and SLES distributions running C applications on Intel and IBM eServer zSeries architectures, but the lessons could easily be extended to other distributions and architectures as well. I'll talk about some of the planning and technical issues that need to be considered to make your application run on Linux, including the following:

• Getting the build system working
• Deciding on an a viable operating environment
• Minimizing the effort to get the product built on various architectures on which Linux is to be supported
• Identifying architecture-specific changes such as mutex locking
• Maintaining as thorough a common code base for various architectures as possible, using a new compiler
• Deciding on the IPC mechanism
• Choosing the appropriate threading model
• Changing install and packaging to comply with Linux-specific guidelines
• Deciding on signaling options
• Selecting parser tools such as lex/yacc
• Making globalization choices

Tutorial Pages:
» A Practical Checklist, Tips, and Insight Drawn from Experience
» Get the Build System Working
» Decide on a Viable Operating Environment
» Architecture-Specific Changes
» Choose an IPC Mechanism
» Select the Threading Model
» File System, Usage Parameters, Stacks
» Memory Maps and Using Shared Memory Segments
» Signaling
» Configure Kernel Karameters
» Parser Tools like lex/yacc
» Globalization Issues
» Security Concerns
» Locating Installed Packages and Variable Data
» Testing
» There's a Port in Every Storm
» Resources


First published by IBM DeveloperWorks


 | Bookmark
Related Tutorials:
» How to Install PHP 5 on Linux
» How to Install Apache 2 on Linux
» How to Install MySQL 5.0 on Linux
» SMB Caching
» Mound --Bind
» Tar Wild Card Interpretation

Advertise with Us!


Tutorials Scripts Web Hosting Developer Manuals
Resources