Porting and Migration
Welcome to SUSE's Porting and Migration Resources page. On this page you will find many links to additional resources to help you with all phases of your Porting and Migration efforts. These documents and tutorials may help you plan and execute your Porting and Migration using your own development resources.
If after researching what will be required of you to perform your porting and/or migration you need additional assistance your next stop should be at HP's Developer & Solution Partner Program technical resources page or IBM Innovation Centers to determine if the facilities and/or resources available will help you.
SUSE Linux Enterprise Application Compatibility
General Compatibility Statement and Policy
SUSE strongly recommends that Independent Software Developers follow the Linux Foundation's [LSB specification]. SUSE's engineering team is mandated as a policy not to break user-level application compatibility between service packs. All ISV certifications are valid throughout the support and maintenance cycle for a major version of SUSE Linux Enterprise. Kernel ISVs (third-party applications that include Linux kernel modules) are required to recertify their applications and kernel modules at every service pack for a major release as there are most likely kernel ABI changes that are introduced at service packs. SUSE tests libraries for compatibility during initial Quality Assurance testing and regression testing at the release of every service pack to guarantee ABI compatibility. The testing targets specific LSB versions, and consists of the [Linux Foundation's LSB DTK test suite] as well as other test suites.
SLE 10 to SLE 11 (SLES, SLED, SLERT)
SLE 11 is application compatible with SLE 10 with the following differences:
- Application compatible means that the application is completely user space and was built on SLE 10 with the SLE 10 SDK. If this is the case, then the application should run unchanged on SLE 11.
- Applications that include loadable kernel modules will need to rebuild their modules for the Linux kernel 2.6.27 that is included in SLE 11. The Linux kernel in SLERT 11 includes Real Time extensions which may require separate consideration for ISVs.
- SLES 11 does not include the SUN version of Java only the IBM version of Java is included. (Note: SLED 11 does include Sun Java)
SLES 9 to SLES 10
SLES 10 is application compatible with SLES 9 with the following differences:
- If you are using Linux Threads or have a dependency on another program which uses it (e.g. Java 1.3.1), Linux Thread support was deprecated in Glibc. NPTL is the only supported thread model.
- If you are using Kerberos, SLES 10 is now using MIT Kerberos.
- If you have a Linux Kernel Module, then it must be recompiled to use a newer kernel (2.6.16_SUSE).
- If you depend on Apache, PHP, MySQL or PostgreSQL as delivered in SLES 9, there are major version upgrades which might introduce incompatibilities.
- If you depend on NFS: SLES 10 NFS includes new version 4 support and structural changes which may affect or offer opportunities to improve your application. NFS 3 and NFS 2.2 are still provided for compatibility reasons.
- FORTRAN application support has changed significantly.
- Applications that rely on libraries provided in compatibility packages on SLES 9 (like compat-2004.7.1-1.2) may not have those libraries available on SLES 10. Make sure you are using the most recent library versions on SLES 9 if you are planning on moving those applications to SLES 10.
SLES 8 to SLES 9
SLES 9 should be compatible with most SLES 8 applications. If issues are found, SLES 9 provides a package called 'compat-sles8' which provides compatibility libraries for previous versions of Linux.
SUSE Linux Enterprise Porting Advisories
As you are porting your applications to SUSE Linux Enterprise, or supporting your application on different versions of SUSE Linux Enterprise, there are certain advisories the developer should be aware of. Please read the SUSE Linux Porting Advisories for specific details.
Linux Kernel Module Porting Information
ISV's that have products that include Linux Kernel Modules should read the article: Developing Software Products for SUSE Linux: Kernel-space Considerations.
Porting and Migration Self-enablement Documents
UNIX to SUSE Linux Porting and Migration
The Open Group is the organization that maintains The Single UNIX® Specification and validates systems as being UNIX. Since the Linux Standard Base is using The Single UNIX Specification as a resource for Linux, it is an excellent resource for making portable UNIX and Linux applications.
No Charge IBM's Migration Kit for Solaris OS to Linux
Do you have a customer looking to move off of Sun hardware and Solaris? Many customers migrating from Sun/Solaris choose Linux for flexibility, TCO, and choice. Today IBM makes it easier for partners to assess and migrate Solaris C / C++ applications and shell scripts to Linux. The NEW No Charge IBM Migration Kit for Solaris OS to Linux will help IBM Business Partners expand and win new business by migrating Sun accounts to Linux on IBM eServer. The migration kit offers software tools to technically evaluate migrating and is a valuable guide when porting the applications while reducing risk in any migration situation. Learn more and download the migration kit today.
Solaris to Linux Porting Guide" - Provided by HP
This Porting Guide is intended to be a planning aid and reference for application developers, engineering managers and product managers interested in porting their Solaris applications to Linux. Chapters 2 and 3 provide an overview of the porting process and the Linux application development environment. These chapters are intended for all developers and key decision makers in your organization. The remaining chapters provide in-depth technical information pertaining to specific areas of porting. These chapters assume that you have a basic understanding of application development and the technical aspects of your applications on Solaris. Download or view this PDF file Solaris to Linux Porting Guide.
Migrating from Solaris to Linux" - Provided by HP
This paper provides an overview of the migration process for moving applications from Solaris to Linux. HP provides numerous resources to help you port your applications; this paper highlights several of them. Rather than targeting a vendor-specific implementation of Linux the target platform is any implementation that is certified as being compliant with the Linux Standards Base (LSB) version 1.3 or 2.0 (late summer 2004). This will allow for maximum portability of your applications between different Linux vendors and versions. Download or view this PDF file here.
Porting Enterprise Apps from UNIX to Linux
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. Read more here
SCO/Linux Transition Guide
This is not a porting guide; this is a transition guide: a guide to the major differences between SCO and Linux that anyone familiar with one may find confusing about the other. As both OS'es are themselves always in transition, some of this material will change quickly. I'll keep it up to date as best I can, of course. Mostly this article concerns SCO OSR5 and not Unixware; in some places I've noted differences but not always. Read more here.
Porting and Migration to GNU glibc
Ulrich Drepper is the lead maintainer of the GNU glibc library. He has many good documents on porting and migration as well as shared object library development for Linux on his website. There is also documentation on glibc from the GNU C Library Website.
Porting from another Linux to SUSE Linux
Building Applications with the Linux Standard Base
The Linux Foundation is the organization that supports the LSB and they have a book on writing to the Linux Standard Base available online. Building Applications with the Linux Standard Base contains many resources on building portable Linux Applications. It also has a section on porting UNIX and Solaris applications to Linux. The Linux Foundation also as their LSB Developer Network which provides the SDKs and Resources need to build LSB compliant applications. There are also pre-built RPM packages for SUSE Linux Enterprise available from the openSUSE Build Service.
Intel has an article on Porting Applications to Linux Standard Base Made Easy. This document describes how to build and LSB compliant application.
Not certain which version of the LSB Standard to target? Check out the Linux Standard Base Distribution Status
Understanding and Using the Linux Standard Base
If you are a commercial vendor and you are distributing your application in binary only form, you want to have your Linux application target all available Linux distributions. Sometimes, this has not always been achievable due to a difference in one of the Linux distributions. It is the goal of the Linux Standard Base to provide a specification and tools that allow for binary compatibility of applications and distributions. Read More
Understanding the Linux Standard Base (LSB) Tutorial
If you read Understanding and Using the Linux Standard Base then you may want to view this tutorial which takes you through the process of compiling a C program that adheres to LSB. You see both a correct C program and an incorrect C program to help you understand the LSB way to create applications that will run on any LSB-compliant Linux distribution. Tutorial (requires Flash Player)
Porting apps to Linux and Making Them Support Multiple Distributions
Security, cost-savings, performance and innovation are the primary reasons to move to Linux, says Novell® Linux developer Darren R. Davis, stating what is, to him, the obvious. Rather than dillydallying with that question, he'd rather help IT shops and developers get moving to Linux. Read more here.
Supporting Multiple Linux Distributions for software developers
We are often asked what it would take to support SUSE Linux with an application that currently is running and supported on another Linux distribution. In many cases the other Linux distribution is Red Hat. Here are some things to consider. Read More
How To Create RPMs and Init Scripts That Are Compatible On Both SUSE Linux and Red Hat Linux
SUSE by default is LSB compliant. Red Hat is LSB compliant if the lsb.rpm is installed (which is not by default). The best solution is to create LSB compliant rpms and init scripts and require lsb.rpm to be pre-installed on Red Hat systems. However, for various reasons sometimes this requirement cannot be enforced. To create rpms and init scripts that can be installed on default Red Hat and SUSE (LSB) systems requires knowing how to support both environments. This document outlines how to create such init scripts and rpms. Read More
Migrating Red Hat applications to SUSE Technical Overview
Linux is Linux, so applications written for Linux should work on any distribution. Right? Well, almost. Although the core components of Linux are the same across distributions, there are differences that developers need to understand in order to "migrate" an existing application from one Linux distribution to another (in our case Red Hat to SUSE). Read More
Linux Systems Programming
Explore the Linux memory model
(From IBM developerWorks) Learn the fundamentals of how memory is constructed and managed in this guided introduction to the Linux memory model. This guide includes an examination of the segment control unit and the paging models as well as a detailed look at the physical memory zone. Understanding the memory models used in Linux is the first step to grasping Linux design and implementation on a grander scale, so this gives you an introductory-level tour of Linux memory models and management.
Migrating 2.4 Modules to the 2.6 Kernel
In a previous article, Creating SUSE Linux Device Drivers, we covered a basic introduction to device driver development for the 2.4 kernel. With the recent advance to the 2.6 kernel in products such as SUSE Linux Enterprise Server 9 and Novell Linux Desktop, this article examines the differences involved in developing to this new kernel version. Read More
Creating SUSE Linux Device Drivers
With the open nature of Linux and the ever-growing abundance of new devices, driver development is an excellent string to add to your bow. If you're ready to make that step from user application development to "kernel hacking" this paper will point you in the right direction. Read More
Converting An Existing Development System To The 2.6 Linux Kernel
Many of the new capabilities present in the Linux 2.6 kernel, especially at the device driver and system software levels, require parallel changes in the administrative utilities that interact with them. In order to fully realize the performance of the Linux 2.6 kernel, many system configuration changes must be made. In this article we will look at things to be aware of when you upgrade to the Linux 2.6 kernel. Read More
Detecting Underlying Linux Distribution
This article will help you to understand how to determine which Linux distribution is installed. You can incorporate this into your application to detect Linux distro. Read More
Linux Hardware and Software Certification
Corporate and consumer deployments of Linux are increasing at an ever accelerating rate. Commensurate to these increased Linux deployments is the demand for hardware and software support for the Linux operating system. This paper introduces hardware and software certification for Linux. Read More
Patching the SUSE Kernel- FAQ
Check out this nice array of questions and answers about the SUSE kernel. Read More
Anti-Virus Development with Novell Storage Services NSS
For developers of Anti-Virus Products we have a section for Providing_Anti-Virus_Support_for_NSS_on_Linux
Programming Language Specific Articles
How To Port Java Applications To SUSE Linux
With Java's "Write Once, Run Anywhere" promise, migrating Java applications between platforms is a relatively painless process. Developers can take advantage of the wide spectrum of Java applications currently available and couple these with the power of SUSE Linux. This document highlights those areas where special consideration might be required in porting Java application to the Linux platform. Read More
Porting Java applications to SUSE LINUX
Moving Java applications from another platform to Linux is quite straightforward, with a few caveats. Even though Java is a write once, run anywhere language, there are still some configuration and platform specific requirements to be understood. This paper is designed to aid developers and consultants in understanding where these requirements lie and approaches to be considered in porting Java applications to SUSE LINUX. Read More
How To Port Java Applications To SUSE LINUX
With Java's "Write Once, Run Anywhere" promise, migrating Java applications between platforms is a relatively painless process. Developers can take advantage of the wide spectrum of Java applications currently available and couple these with the power of SUSE LINUX. This document highlights those areas where special consideration might be required in porting Java application to the Linux platform. Read More
Making Scripts Portable
Portable shell scripting is something of a black art, since with the evolution and derivation of the UNIX shell, the definition of "portable" is perhaps ambiguous. This paper explores the best practices involved in creating such elusive scripts. Read More
Microsoft Windows to SUSE Linux Porting and Migration
Migrating To Linux, Advantages Over Windows 9x And XP
I am a Consultant. This past year I have consulted with a company called Tenacious Integration Services, Inc. Why do I tell you that? Mainly, because I like the term tenacious. It reminds me of how some people feel about their desktop operating system. Some people are tenacious about their favorite version of Windows, while other people are tenacious about their particular build of Linux on the desktop. I realize that there are a group of people in the middle who probably don't feel one way or the other, as long as they can do the work they need to efficiently. It is to that group of people that this article is directed. Read More
Porting Windows MFC applications to Linux
This article is designed to give some ideas and direction to developers who have been writing applications in a Windows environment using the Microsoft Foundation Classes (MFC) and who now recognize that they need to support the Linux platform with their applications as well. The assumption here is that the reader is not so much interested in the marketing and religious wars, but that they accept that the Linux world represents a vast revenue potential for them and so, irrespective of strengths or weaknesses between the two platforms, they must have their application running on Linux to compete. Read More
Developer's Toolbox: Tools to Migrate Apps from Windows to Linux
This month we're going to take a look at some tools that will provide you with part of what you need to make the move from Windows to Linux. While these tools may not seem to be specifically developer focused, their goal is to facilitate the ease of migration for your applications from Windows to Linux. Read More
Running Existing Win32 Applications on SUSE LINUX
Wine which stand for (Wine is not an emulator) comes pre-installed on the SUSE line of products and can be used to run many of your Win32 (Win 95/98, NT/2000/XP), Win16 (Win 3.1) and DOS applications. Using Wine, you can finally remove the requirement for the Windows license and get the most out of your Linux system. Read More
Moving from a Windows platform to SUSE LINUX
If you have been developing Windows-based applications, this will give you a base understanding of Linux and issues surrounding the running and/or porting of your applications so you can move forward with your Linux project. Read More
Porting Visual Basic® Applications to REALbasic®
REALbasic provides and excellent environment for moving Visual Basic applications to SUSE Linux. Here is a REALbasic_2006_for_Linux_Product_Review. Another useful resource is Rapid_Desktop_Development_using_REALbasic_2006. There is also an older Novell Cool Solutions Feature covering the 2005 version of REALbasic.
Migrate Visual Studio C and C++ projects to Eclipse CDT
With most C/C++ projects on Windows® developed with Microsoft® Visual Studio, it is essential to study the migration of these projects to Eclipse, the open source IDE. This article provides a brief step-by-step procedure for migrating Microsoft Visual Studio C/C++ (MSVC) projects to Eclipse. It compares and contrasts the benefits of MSVC and Eclipse CDT. Read More at IBM developerWorks
Porting .NET Applications to Linux
This tutorial will take you through the process of running Microsoft .NET application on both Windows and Linux. It includes information to assist in your understanding of how .NET and Mono work and provides some guidelines for building .NET applications that will run on either Microsoft's .NET platform or Mono. Tutorial (requires Flash Player)
DOT NET (or Mono) and Web Services
While the open source Mono Project does not include a tool of VS .NET's capabilities, new tools are being created to provide some of this functionality for Mono running on Linux. Read More
Qt - Portable GUI Programming under Linux/UNIX/Windows
Abstract: This is a brief overview of the C++ class library Qt, which enables simple and portable GUI programming. This library was developed by the Norwegian company Trolltech. Programs developed with Qt can run immediately under all flavors of Linux/UNIX as well as all Windows systems without any additional porting work. The only thing you need to do is to compile and link the programs with the appropriate compilers (Visual C++ or Borland C++ under Windows systems or the cc compiler provided by the respective Linux/UNIX system).
A very useful resource for porting Windows applications to Linux is Cygwin. Cygwin provides the GNU Tools for Windows which allows developers to have the GNU/Linux environment. Using Cygwin, a developer can do some porting of Windows applications to Linux while still in the Windows environment.
General SUSE Linux Programming
Intel VTune Performance Analyzer for Linux
VTune Performance Analyzer is a robust, enterprise-grade solution, even with large executables (100MB+) that other products are unable to profile. It analyzes applications on all sizes of systems based on Intel processors, from embedded systems through supercomputers. Read more.
How-To GNU Tools
The GNU tools from the Free Software Foundation comprise of over 3000 packages and regardless of which Linux distribution used, the GNU tools are omnipresent. This document concentrates on those tools used for software development, explaining the rationale for each, and providing a brief introduction to their use. Read More
Ximian Hackers Self Help: Part 1
These self-help letters provide you with insight into the development process at Ximian and within the GNOME community at large. Topic du jour: Good List and Bad List Iteration. Read More
Ximian Hackers Self Help: Part 2
These self-help letters provide you with insight into the development process at Ximian and within the GNOME community at large. Topics range from Variables, to BonoboXObject, to Inheriting versus Aggregating. Read More
Ximian Hackers Self Help: Part 3
These self-help letters provide you with insight into the development process at Ximian and within the GNOME community at large. Topics range from Forward Declarations to Porting to Gnome 2.0 to Electric Fence, with a few stops in between. Read More
Migrating NPS gadgets to portlets Overview
Bill Bodine discusses the Java development of portlets specifically in order to leverage the similarities between gadget and portlet development. This is not intended to be an exhaustive look at the development of portlets, but it will be enough to highlight the similarities and give the developer a reasonable understanding of what to expect while porting their application. Read More
Developer's Toolbox: Linux Tools
We have a number of cool tools to talk about: REALbasic, Kylix and MonoDevelop. What these tools all have in common is that they allow you to take code written for the Windows platform and run it on Linux. Read More
Linux Programing HOWTOs
Comprehensive Linux programming resource that provides HOWTO documentation on the following topics: compilers, languages, libraries, interfaces / API / protocols, security, tools, version control, DBMS / Databases and other miscellaneous topics Read More
CVS for Dummies
Files like source code or documentation are frequently changed. In addition to that, many files of different versions are being worked on by several developers at the same time. CVS provides powerful support for tasks of this kind. This article is intended to present a brief insight into CVS to those who are "new" to this topic (the so-called dummies) or who only use CVS once in a while.
A wide variety of Porting and Migration Tools exist to help you migrate your application from all major platforms to Linux.
- UNIX to Linux Porting, Prentice Hall, ISBN 0131871099
- Linux Application Development, 2nd Edition, ISBN 0321219147
- Linux Kernel Development, 2nd Edition, ISBN 0672327201
- Building Applications with the Linux Standard Base, ISBN 0131456954 or Online Version from the LSB Website.
External Linux Resources