Dr Ruediger Berlich (Gemfony scientific UG (haftungsbeschraenkt))
Linux excels as the dominant platform particularly in High Performance Computing, as well as as a general server operating system in less HPC-centered environments. Both on the server- and the desktop side, a huge variety of programs is available, readily delivered in pre-compiled form through Linux distributions. Very rarely will typical users have to compile source code themselves. Organizations wishing to supply independent applications in binary format will however face many difficulties, particularly where C/C++ was used as the main programming language. Technical differences between Linux distributions, while being subtle, often prevent the „compile once, run anywhere“ philosophy being one of the hallmarks of the Windows programming environment. Particular difficulties exist with respect to dynamic libraries which, when delivered with the operating system rather than the application, represent a direct dependency on the underlying Linux OS. While static linking may help, some libraries (in particular C and C++ standard libraries) may not easily be linked statically into an application. Shipping dynamic libraries along with the binaries of applications or custom libraries, while being heavy-weight, may be an option, but will present users with restrictions regarding the libraries they may use in their own code. Issues exist in particular, where users need to load pre-compiled binary objects or access the API of a supplied library. They would then be forced to link their code with other standard libraries than those found on their home system, which is both error-prone and represents a huge restriction. The presentation discusses possible approaches for dealing with these issues, both in the context of Grid- and Cloud-Computing and for application development at the PTV group, Germany.