Application directory
   HOME

TheInfoList



OR:

An application directory is a grouping of
software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists ...
code In communications and information processing, code is a system of rules to convert information—such as a letter, word, sound, image, or gesture—into another form, sometimes shortened or secret, for communication through a communication ...
, help files and resources that together comprise a complete
software package Software package may refer to: * Package (package management system), in which individual files or resources are packed together as a software collection that provides certain functionality as part of a larger system * Software suite, which provid ...
but are presented to the user as a single object. They are currently used in RISC OS and the
ROX Desktop The ROX Desktop is a graphical desktop environment for the X Window System. It is based on the ROX-Filer which is a drag and drop spatial file manager. It is free software released under the GNU General Public License. The environment was ins ...
, and also form the basis of the
Zero Install Zero Install is a means of distributing and packaging software for multiple operating systems (Unix-like including Linux and macOS, Windows). Software Rather than the normal method of downloading a software package, extracting it, and install ...
application distribution system. Similar technology includes
VMware ThinApp VMware ThinApp (formerly ''Thinstall'') is an application virtualization and portable application creator suite by VMware that can package conventional Windows applications so that they become portable applications by running on another operat ...
, and the
NEXTSTEP NeXTSTEP is a discontinued object-oriented, multitasking operating system based on the Mach kernel and the UNIX-derived BSD. It was developed by NeXT Computer in the late 1980s and early 1990s and was initially used for its range of proprieta ...
/ GNUstep/
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
concept of
application bundle In NeXTSTEP, OPENSTEP, GNUstep, and their lineal descendants macOS and iOS, a bundle is a file directory with a defined structure and file extension, allowing related files to be grouped together as a conceptually single item. Examples of bundles ...
s. Their heritage lies in the system for automatically launching software stored on
floppy disk A floppy disk or floppy diskette (casually referred to as a floppy, or a diskette) is an obsolescent type of disk storage composed of a thin and flexible disk of a magnetic storage medium in a square or nearly square plastic enclosure lined w ...
on
Acorn The acorn, or oaknut, is the nut of the oaks and their close relatives (genera ''Quercus'' and '' Lithocarpus'', in the family Fagaceae). It usually contains one seed (occasionally two seeds), enclosed in a tough, leathery shell, and borne ...
's earlier 8-bit micros such as the BBC Micro (the ''!BOOT'' file). Bundling various files in this manner allows tools for manipulating applications to be replaced by tools for manipulating the
file system In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one larg ...
. Applications can often be "installed" simply by dragging them from a distribution medium to a hard disk, and "uninstalled" by deleting the application directory.


Fixed contents

In order to support user interaction with application directories, several files have special status.


Application binaries

Launching an application directory causes the included file ''AppRun'' (ROX Desktop) or ''!Run'' (RISC OS) to be launched. On RISC OS this is generally an Obey file (a RISC OS command script) which allocates memory and loads OS extension modules and
shared libraries In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and subr ...
before executing the application binary, usually called ''!RunImage''. Under the ROX Desktop, it is not uncommon for it to be a
shell script A shell script is a computer program designed to be run by a Unix shell, a command-line interpreter. The various dialects of shell scripts are considered to be scripting languages. Typical operations performed by shell scripts include file manip ...
that will launch the correct system binary if available or compile a suitable binary from source otherwise.


Help files and icons

Both RISC OS and the ROX Desktop allow the user to view help files associated with an application directory without launching the application. RISC OS relies on a file in the directory named ''!Help'' which is launched as if the user double-clicked on it when help is requested (and can be any format the system understands, but plain text and !Draw formats are common), while the ROX Desktop opens the application's ''Help'' subdirectory. Similarly, custom icons for the Application Directory may be contained within it—either ''.DirIcon'' (in any supported image format) or ''AppIcon.xpm'' under the ROX Desktop, or ''!Sprites'' and optionally ''!Sprites22'' under RISC OS. The RISC OS Filer automatically loads these sprite files in the absence of a ''!Boot'' file, otherwise it is left to the ''!Boot'' file to load the appropriate icons.


!Boot

RISC OS application directories may contain a file named ''!Boot'' which is executed by the ''Filer'' either explicitly via the FilerBoot command, or when the bundle is first displayed (unless the user held
Control Control may refer to: Basic meanings Economics and business * Control (management), an element of management * Control, an element of management accounting * Comptroller (or controller), a senior financial officer in an organization * Controlling ...
when opening that ''Filer'' window, which defeats application booting). This allows an application to do tasks such as register supported filetypes (by defining their name, setting command aliases for running or printing them and loading appropriate icons), or choose to load different icons such as ''ASprites'' (icons with an alpha channel for RISC OS Select), ''5Sprites'' (icons with a RISC OS 5 appearance) or theme-specific icons. ''!Boot'' files are the most popular propagation vector for such RISC OS
virus A virus is a submicroscopic infectious agent that replicates only inside the living cells of an organism. Viruses infect all life forms, from animals and plants to microorganisms, including bacteria and archaea. Since Dmitri Ivanovsky's 1 ...
es as exist (such as the well-known Extend virus), though they can be defeated simply by holding ''Control''. The ''!Boot'' feature is not duplicated by the ROX Desktop.


The RISC OS !Boot system directory

Acorn's early machines allowed a medium to be "booted" (automatically run) by executing a file called ''!BOOT'' if present (this action, "booting a disc", was toggled with the Shift, and hence became known as ''shift-booting''). This was exploited in the RISC OS disc structure by having an application directory in the root of the default disc called ''!Boot''. This ''application directory'' is executed (run) when the machine boots (if so configured), therefore causing its !Run file to be executed (i.e. ''$.!Boot.!Run'' in Acorn pathname syntax). This file then causes various files to be executed, OS modules loaded, standard icons to be loaded and filetypes defined, and defines a number of standard variables through which its various subdirectories are accessed. Thus RISC OS's entire boot sequence can be avoided merely by holding Shift.


See also

*
Bundle (OS X) In NeXTSTEP, OPENSTEP, GNUstep, and their lineal descendants macOS and iOS, a bundle is a file directory with a defined structure and file extension, allowing related files to be grouped together as a conceptually single item. Examples of bundles ...
* Application Virtualization *
Portable application creators Portable application creators allow the creation of portable applications (also called portable apps). They usually use application virtualization. Creators of independent portable No agent or client is required for these (also called "agentless" s ...


Notes

{{Reflist


External links


ROX-Filer User Manual: Application directories
Software distribution Source code