Look at the big picture when evaluating and planning a move from Unix to Linux. Of course, your team needs to know how to do the tasks involved, from programming to porting, but these are the means to your goal of infrastructure improvement. The key word is infrastructure, so let's look at key Linux infrastructure building blocks and considerations, including clustering, data types, virtualization and support.
When clustering your Unix servers, one usually thinks of high-availability. In the Unix world, this comes with a price. Whether you are using VERITAS for your Sun servers, HACMP for IBM or HP Serviceguard for your HP Unix servers, they are all very proprietary and come with a hefty price. With Linux, there are many open source solutions available to you. One example of this is the High-Availability Linux project, which provides clustering solutions for Linux. While some of the Unix clustering solutions also offer Linux solutions (IBM's HACMP only recently), staying on the same clustering platform in a sense defeats some of the objectives of moving to Linux in the first place, which is moving towards open source and away from proprietary systems.
Another important factor is understanding the critical differences between the source and target systems, particularly when moving from 32- to 64-bit environments and vice-versa. The three big issues here are Endianess (byte-ordering), difference in data type lengths and data alignment differences in the architecture. You must study these issues in great detail. Endianness refers to how a data element and its individual bytes are stored and addressed in memory. Byte-ordering issues are often encountered by developers during the process of migrating applications, device drivers or data files from 64-bit RISC architecture's to the x86 architecture of Linux running on a PC. Of course, if you are going to run Linux on a RISC system such as the IBM System p platform, you won't have this issue when migrating from IBM's Unix, AIX, as you'll be staying on the same hardware platforms.
Virtualization is another important factor. When moving to Linux, you will not be using the same virtualization systems you have grown accustomed to in the Unix world. Red Hat offers Xen in their new release of RHEL5, and so does SUSE. Sun has many different types of virtualization offerings as does HP, while IBM offers Advanced Power Virtualization on their Unix servers. The only way you might be able to keep the same virtualization system, would be to stay on the same hardware platform (I.E. IBM System p), which is not always on option, as many organizations look to migrate away from Unix to move towards horizontally scaling clustered PCs.
Finally, support is another important factor. As a Unix user, you may be accustomed to round-the-clock support from your hardware vendor. Things work a little differently with Linux. Unless you've signed a deal with your hardware vendor to provide Linux support for your systems running on their hardware, you will need to be more self-sufficient. This is not necessarily a bad thing, as Linux encourages collaboration, research and innovation. As a general rule (though this is changing, with increased support by hardware and software vendors, including Oracle for Linux), you will need to do more on your own, so be prepared.
This was first published in May 2007