Portable software

from Wikipedia, the free encyclopedia

Portable software (from French portable from Latin portare '[with oneself] to carry'), also called standalone software or (USB) stick- ware , is software , typically application software , which can be used on different computers without further adjustments or setup ( installations ) running. It can, for example, be transferred (or copied ) to a removable storage medium and executed from there on any (compatible) computer without installing it on it.

Motivation and Benefit

Many users want certain programs, but also their settings and personal data, to be available on different computers. With the help of portable software, these can be copied to a USB stick (or another removable storage medium ) so that the user only has to plug in this stick to have access to his programs and settings.

Since portable software does not leave any traces on the host computer and does not need to be installed, it can also be used on computers that do not have this software, even though one has no administrator rights or no write access to a system data carrier.

Definition and demarcation

What portable software is assumed to be "portable" or "independent" for varies somewhat: Sometimes the independence within an (operating) system installation is meant (i.e. the application programs can be moved in the directory tree without losing functionality ), sometimes it is This means independence from a specific hardware system (ie the software is also fully functional on other, but compatible, physical computer systems). The independence of specific operating system families, normally referred to as platform independence , is not what is meant when portable software is spoken of, as this is a quality that typically goes beyond the usage scenarios of portable software.

For the most common use of application programs, portable software can also be understood as a variant of application virtualization . With more extensive system virtualization , portable properties can also be achieved, but with additional effort and further disadvantages (file size, performance, poorer UX / GUI integration).

properties

In principle, portable software only interacts slightly with the operating system or is not (or only weakly) integrated into it. Accordingly, it only depends on a few properties of the specific operating system and the (physical) computer system.

No installation necessary

Portable software typically does not need to be installed and can be used directly from the carrier medium . Sometimes it is made ready for use by copying it into (any) host computer directory. In most cases, the ready-to-use software can also be duplicated after use by simply copying it, which is advantageous for simple data backup on another data carrier and for easy distribution of the software. Portable software is often distributed as a packed archive , which only needs to be unpacked into a directory without the need for system-specific installation programs. This simple unpacking is sometimes misleadingly referred to as installing , although there is no deeper integration into the host system.

If portable software is "installed", it is about the installation under very non-restrictive conditions, i. In other words, the storage location can be freely selected, the required system libraries are minimized and special user rights (admin or root) are not necessary, etc.

No traces on the host system

Ideally, portable software leaves no traces on the host system. On the one hand, traces can be installation entries of any kind (for example in the registration database , in the user profile or the like) or on the other hand user data that should not remain on a foreign computer.

Function with restricted rights

Often one has no administrator rights on the host system . The software should therefore also be able to run with restricted rights. Thus, if the host system is properly configured, it cannot cause excessive damage.

However, this is not possible if the program needs direct access to the hardware or certain system components. So need z. B. the encryption programs FreeOTFE or TrueCrypt themselves in "Portable Mode" or "Traveler Mode", for encrypting or decrypting the removable media with administrator rights.

Development of portable programs

Portable programs are often adapted versions of conventional programs that require installation. To distinguish them from these, the predicate “portable” is often put in front. There are also programs that are tailored to the conditions of the special data storage media (mostly flash memory ) , for example with regard to write access . U3 software is a special form that can only be executed from a USB stick compatible with the proprietary U3 software.

However, not every program can be made into a portable version.

Limits of portable programs

Hardware platform dependency

Applications that are available in a binary format (e.g. ELF or PE ) were generated by a compiler for a specific hardware platform (e.g. IA-32 ). Different CPU architectures vary in instruction set , data word size (e.g. 32-bit or 64-bit) or byte order . This limits the portable use on platforms of the same hardware. A portable approach to circumventing this problem is so-called fat binaries , which contain variants for several hardware platforms. For example, Apple has been using Fat Binaries since 2006, called Universal Binaries here , to enable the smooth transition from PowerPC CPUs to Intel CPUs.

System-related software

Not all programs are suitable for use as portable software. For example, virus monitors, system tools and other system-related software require the ability to intervene deep into the system. Their portable versions are of lesser importance because they usually cannot have the same range of functions as installed software.

General application programs, for example text editors and e-mail clients, on the other hand, usually get by without system intervention and are suitable for portable use. For example, the LibreOffice office suite is available in a portable version.

Legal problems

In addition to the technical aspects, the software license and any copy protection mechanisms also play a role when it is used as portable software . The copying of software by the manufacturer or licensor is often undesirable and is prohibited in the license agreement. Copy protection often binds a program to a specific system - binding to a mobile data carrier is technically complex and usually not provided for. Free software therefore plays a decisive role here because it guarantees the user the right to unlimited use - also as portable software. However, the free but strict GPL license sometimes prevents the static linking of library dependencies in order to create portable programs. The GPL, under which many libraries stand, excludes this if the program itself is subject to a less restrictive or proprietary license.

Company security

IT managers are responsible for the configuration and security of the systems in the company network. Removable storage media and the data and programs they contain are beyond their control and pose a risk. As a preventive measure, it is sometimes common practice to lock USB ports in the BIOS or in the operating system of the computer or to prevent programs from being run from external media.

Operating systems and portability

Windows software

Windows with its MS-DOS roots has no fixed standard or a fixed agreement on the installation path for programs; the user is almost always asked about a target path during installations. As a result, varying execution paths of programs are often not a problem, both on the operating system and on the application side, in contrast to Unix-like operating systems, in which standard locations have prevailed. The portability of programs from any (installation) directory (see line 9) with their own local libraries ( private DLLs ) is something that Windows owes to its MS-DOS origins; Most DOS programs are portable and only a few require special TSR programs which have to be loaded at system start-up.

The development of portable software for Windows also benefits from the fact that downward compatibility has a high priority for this software platform (stable functional interfaces, directory structure, etc.), so a lot of effort is made to ensure that binary programs can be executed over a wide range of Windows versions and their To ensure updates.

However, the recommended use of the central registry since Windows 95 instead of local INI files is an obstacle to portability under Windows. If programs save their configuration data in the registry, they cannot easily be copied between different computers, and it is often not documented in which part of this database a program stores its settings. Scattered storage of program data in several system directories (profile, personal settings, personal bookmarks, etc.) as part of the multi-user administration also complicates portability.

Linux software

Under Linux, programs are typically deeply integrated into the operating system; H. compiled and shipped with this together ( Linux distribution ). This weak differentiation between applications and operating system and thus the weak binary and stable platform concept makes the creation of portable applications much more difficult. This includes the generally strict, system-wide administration of applications and program libraries via package management , which make portability difficult. After an analysis of the klik project on the various package management systems under Linux, the most frequently used systems RPM and APT lack important capabilities to enable portable installations. The missing properties include the installability without root rights ('Non-root package installation'), the impossibility of damaging the system or other applications ('Impossible to mess base system', 'Impossible to mess other apps') and the Ability to install multiple versions of an application ('Multiple versions coexist').

Relocation of application programs between different directories is also not provided for in Linux; paths are typically hard-coded in the application at compile time . The binreloc library, which is part of the autopackage, offers functionality comparable to the Win32 API function , making directory-relocatable applications and libraries possible. GetModuleFilename()

The differences between the Linux distributions, i.e. the variations in the directory tree structure and the supplied libraries, can also prevent problem-free, portable execution of a binary program file. The development approach of generating cross- distribution and portable applications via a complete static linking of the library dependencies is technically difficult to realize, can also be prevented by license conflicts and may be. a. not welcomed by the Linux community due to the undermining of the distributor infrastructure and updates.

In terms of programming, more portable programs can also be created with private libraries via a relative library path with the linker option $ORIGIN. Advantages of this approach are that no user LD_LIBRARY_PATHadjustments to the library paths or other scripts are necessary (as opposed to approaches) and at the same time most of the disadvantages of static linking are avoided.

There are some approaches for installation systems that allow more portable and distribution-independent applications, such as Autopackage , RUNZ, PortableLinuxApps (Klik successor), Zero Install and CDE. However, each of these systems follows a different approach and thus covers a different aspect of portability. In addition, these solutions have so far only found limited adoption and support in the Linux community, including a. because of common concerns about non-package management based solutions.

Portable operating systems

A special case is portable software that is embedded in its own operating system and thus requires a restart and booting of the host computer for portable use. There are many solutions for application software with portable, Linux-based operating systems, especially for Linux software, where it is difficult to create portable and cross-distribution programs. Numerous Linux derivatives offer so-called live CDs , such as B. Knoppix , which allow operation from a removable disk without leaving any traces on the host computer.

According to the EULA, Microsoft Windows would always have to be installed on a (permanently installed) hard drive and should therefore not officially be used portable. However, end-user license agreements that have not been agreed before the purchase (i.e. which a buyer only agrees to after the purchase during installation, for example ) are ineffective under German and Austrian law.

With Microsoft Windows PE , however, there is a slimmed-down version of Windows that is designed, among other things, for installation on removable media. There are also third-party solutions such as Bart's Preinstalled Environment .

See also

Web links

Individual evidence

  1. portable - Duden , Bibliographisches Institut ; 2016
  2. a b Simon Peter: Comparison table. (No longer available online.) Klik.atekon.de, January 29, 2009, archived from the original on December 23, 2015 ; accessed on March 26, 2010 (English). Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / klik.atekon.de
  3. ^ A b Thomas Leonard: Zero Install: Comparison with other systems. 0install.net/, January 1, 2010, accessed March 26, 2010 .
  4. Apple Computer: "Universal Binaries and 32-bit / 64-bit PowerPC Binaries" in the Mac OS X ABI Mach-O File Format Reference. March 8, 2006, accessed July 13, 2006 .
  5. ^ A b c Eskild Hustvedt: Our new way to meet the LGPL. February 8, 2009, archived from the original on April 13, 2014 ; Retrieved on March 9, 2011 (English): “ You can use a special keyword $ ORIGIN to say 'relative to the actual location of the executable'. Suddenly we found we could use -rpath $ ORIGIN / lib and it worked. The game was loading the correct libraries, and so was stable and portable, but was also now completely in the spirit of the LGPL as well as the letter! "
  6. Hisham Muhammad: The Unix tree rethought: an introduction to GoboLinux. www.kuro5hin.org, May 9, 2003, accessed December 19, 2011 : “ Unfortunately, not all programs have the flexibility to be installed anywhere. Occasionally, hardcoded paths creep in, even in programs that belong in userland (which should, at least theoretically, allow themselves to be installed inside a user's home directory). "
  7. Arnaud Desitter: Using static and shared libraries across platforms; Row 9: Library Path. ArnaudRecipes, June 15, 2007, archived from the original on June 1, 2008 ; accessed on July 7, 2010 (English): “ Win32:. and then PATH "
  8. a b Rick Anderson: The End of DLL Hell. microsoft.com, January 11, 2000, archived from the original on June 5, 2001 ; Retrieved January 15, 2012 : " Private DLLs are DLLs that are installed with a specific application and used only by that application. "
  9. ^ Ian Murdock : On the importance of backward compatibility. (No longer available online.) January 17, 2007, archived from the original on January 14, 2012 ; accessed on January 4, 2012 . Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / ianmurdock.com
  10. http://support.microsoft.com/kb/256986 Description of the Microsoft Windows registry (December 3, 2007)
  11. a b Tony Mobily: 2009: software installation in GNU / Linux still broken and a path to fixing it. (No longer available online.) Www.freesoftwaremagazine.com, June 23, 2009, archived from the original on June 26, 2009 ; Retrieved on March 23, 2010 (English): " Every GNU / Linux distribution at the moment (including Ubuntu) confuses system software with end user software, whereas they are two very different beasts which should be treated very, very differently. Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice.  @1@ 2Template: Webachiv / IABot / www.freesoftwaremagazine.com
  12. Benjamin Smedberg: Is Ubuntu an Operating System? October 4, 2006, accessed on January 20, 2012 (English): “ Ubuntu isn't trying to be a platform for mass-market application software: it is trying to be the primary provider of both the operating system and all the application software that a typical user would want to run on his machine. Most Linux distributions are like this, and I think it is a dangerous trend that will stifle innovation and usability, or even worse make the desktop irrelevant. "
  13. Michael Simms: Handling misbehaving libraries in binary products. Linux Game Publishing , August 18, 2009; archived from the original on February 22, 2014 ; accessed on January 15, 2012 (English): " It is a bit of an arcane artform, making a game that runs on all Linux versions. […] [Libraries] will load their own dependencies in a way we cannot control. The biggest problem is that OpenAL and SDL try to dlopen libasound, and on some machines, libasound doesn't work with our binaries. On others, it can actually crash the whole game due to incompatibilities. This is a common issue when dealing with unknown system configurations when sending out a binary-only product into the world. "
  14. ^ Peter Keller: The Road to Hell Is Paved with Good Intentions. May 24, 2005, archived from the original on November 23, 2008 ; Retrieved on January 12, 2012 (English): “ Don't break APIs and behavior across revisions of dynamic libraries. Yes, this means YOU Linux. This is one of the single greatest causes of portability failures. Just Stop Doing It. "
  15. David Douthitt: Why doesn't my / bin / sh script run under Ubuntu? administratosphere.wordpress.com, July 20, 2011, accessed on January 10, 2012 (English): " In Ubuntu 6.10 […] the decision was made to replace the Bourne Again Shell (bash) with the Debian Almquist Shell (or dash) as / bin / sh in Ubuntu. There was considerable uproar […] as using dash instead of the original bash caused numerous scripts to break. [...] If the focus of Ubuntu were to provide a stable and unchanging environment, then their decisions would be different - and would result in an improved customer experience. "
  16. a b c Evan Jones: Portable Linux Binaries. February 13, 2008, accessed on January 10, 2012 (English): “ Linux is not well known for its binary portability. Libraries vary from system to system, and the kernel interfaces have a tendency to change. [...] Recently, I needed to build a binary on one system, and run it on another. It only used standard C library functions, so I expected it to be easy. It was not. [...] "
  17. Eric Brown: LSB 4.0 certifications aim to heal Linux fragmentation. (No longer available online.) Linuxfordevices.com, December 8, 2010, archived from the original on December 24, 2013 ; accessed on November 16, 2011 (English): " [...] LSB helps to reduce fragmentation, it does not eliminate it. "The issue of packaging and broader dependencies is still a big one (for me) at least," writes Kerner. "The same RPM that I get for Fedora won't work on Ubuntu, and Ubuntu DEB packages won't work on SUSE etc etc." […] Info: The archive link was automatically inserted and not yet checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / archive.linuxgizmos.com
  18. a b c d Simon Peter: AppImageKit Documentation 1.0. (PDF; 38 kB) (No longer available online.) PortableLinuxApps.org, 2010, pp. 2–3 , archived from the original on November 29, 2010 ; Retrieved on July 29, 2011 (English): " Not easy to move an app from one machine to another: If you've used an app on one machine and decide that you would like to use the same app either under a different base operating system (say, you want to use OpenOffice on Fedora after having used it on Ubuntu) or if you would simply take the app from one machine to another (say from the desktop computer to the netbook), you have to download and install the app again (if you did not keep around the installation files and if the two operating systems don't share the exact same package format - both of which is rather unlikely). Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / portablelinuxapps.org
  19. ^ Mike Hearn: Guide to Making Relocatable Applications (BinReloc 2.0). autopackage.org, archived from the original on January 25, 2009 ; accessed on January 26, 2012 (English): “ However, most applications are not relocatable. The paths where in they search for data files are usually hardd at compile time. On Win32, applications and libraries are easily relocatable because applications and DLLs can use GetModuleFilename () to obtain their full path. "
  20. a b Troy Hepfner: Linux Game Development Part 2 - Distributable binaries. gamedev.net, October 1, 2007, archived from the original on October 13, 2007 ; accessed on December 19, 2011 (English): “ Creating an executable that works on almost all Linux distributions is a challenge. There are a number of factors that contribute to the problem [...] "
  21. Christoph Baus: Yet another Unix nightmare: statically linking libstdc ++. May 31, 2005, archived from the original on February 10, 2010 ; accessed on January 15, 2012 .
  22. ^ Ulrich Drepper : Static Linking Considered Harmful. redhat.com , archived from the original on May 27, 2010 ; Retrieved on January 13, 2012 : " There are still too many people out there who think (or even insist) that static linking has benefits. This has never been the case and never will be the case. [...] "
  23. timothy: CDE - Making Linux Portability Easy. Slashdot , November 12, 2010, accessed on January 21, 2012 (English): “ A Stanford researcher, Philip Guo, has developed a tool called CDE to automatically package up a Linux program and all its dependencies (including system-level libraries, fonts , etc!) so that it can be run out of the box on another Linux machine without a lot of complicated work setting up libraries and program versions or dealing with dependency version hell. "
  24. ^ Nicholas Vining: Dear Linux Community: We Need To Talk. Gaslamp Games, October 13, 2010, accessed on January 30, 2011 (English): “ The Linux community, in their infinite wisdom, proceeds to flame the hell out of CDE. [...] "We should all just be using package management." Here is what I want to say, and let my words be carried down from the mountaintops, written on tiny stone tablets: Package management is not a universal panacea. "
  25. Bruce Byfield: Autopackage struggling to gain acceptance. linux.com, February 12, 2007, archived from the original on March 31, 2008 ; Retrieved on January 21, 2012 (English): " If Hearn is correct, the real lesson of Autopackage is not how to improve software installation, but the difficulty - perhaps the impossibility - of large-scale changes in Linux architecture this late in its history. It's a sobering, disappointing conclusion to a project that once seemed so promising. "
  26. Jeff Licquia: Autopackage Considered Harmful. licquia.org, March 27, 2005, accessed October 21, 2012 .
  27. Bart PE ( Memento of the original from January 17, 2011 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. - Article on pcwelt.de @1@ 2Template: Webachiv / IABot / pcwelt-wiki.de