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 the ROX Desktop, and also form the basis of the Zero Install application distribution system. Similar technology includes VMware ThinApp, and the NEXTSTEP/GNUstep/Mac OS X concept of application bundles. Their heritage lies in the system for automatically launching software stored on floppy disk on Acorn'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. Applications can often be "installed" simply by dragging them from a distribution medium to a hard disk, and "uninstalled" by deleting the application directory.
In order to support user interaction with application directories, several files have special status.
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, usually called !RunImage. Under the ROX Desktop, it is not uncommon for it to be a shell script that will launch the correct system binary if available or compile a suitable binary from source otherwise.
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.