Jan 24 2019
Even with today’s software development tools such as cross-compilers, porting an application from one platform to another is a significant challenge. There are a variety of adaptations which must occur to make the application even able to run, let alone perform as well as it had in its native environment. These include:
As a start, let’s take the simple example of porting an application from Windows running on X86 to an ARM server running Linux. While ARM processors are “little endian” (like X86 processors) and the threading models are similar, there are a number of specialized commands in the X86 that are not present in the ARM processor (hence the name “Advanced Reduced Instruction Set Computing Machine). These may “bubble up” to the application level as differences in execution timing. Finally, the differences in the graphics capabilities of Windows versus Linux can result in the need to recode graphical user interfaces (GUIs) to ensure graphical performance.
These are but a few of the differences that can make porting applications difficult. For a software development company, they must weigh the costs of adapting an application to these differences, versus the size of the new market opportunities that are created by porting the application. Our next blog will look at ways of simplifying the porting of applications from X86 platforms to the computational storage platform.