- Application directory
An application directory is a grouping of
software code, help files and resources that together comprise a complete software package but are presented to the user as a single object.They are currently used in
RISC OS and theROX Desktop , and are also form the basis of theZero Install application distribution system. Similar technology includes theNEXTSTEP ,GNUstep andMac OS X concept of bundles. Their heritage lies in the system for automatically launching software stored onfloppy disk onAcorn 's earlier 8bit micros such as theBBC 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 . 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 before executing the application binary. Under the ROX Desktop, it is not uncommon for it to be ashell script 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.
!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 Shift when opening that "Filer" window, which defeats application booting).
This allows an application to do tasks such as register supported filetypes (and setting command aliases for running or printing such files), or 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 viruses as exist (such as the well-known Extend virus), though they can be defeated simply by holding "Shift".
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 also 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 therefore executed (run) when the machine boots (if so configured), 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.
External links
* [http://rox.sourceforge.net/Manual/Manual/Manual.html#AppDir ROX-Filer User Manual: Application directories]
Wikimedia Foundation. 2010.