Application directory
Encyclopedia
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
, RUNZ, 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.
that will launch the correct system binary if available or compile a suitable binary from source otherwise.
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.
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
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.
, 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.
Object file
An object file is a file containing relocatable format machine code that is usually not directly executable. Object files are produced by an assembler, compiler, or other language translator, and used as input to the linker....
, help files and resources that together comprise a complete software package
Software package (installation)
In package management systems, which are commonly used with Linux-based operating systems, a package is a specific piece of software which the system can install and uninstall....
but are presented to the user as a single object.
They are currently used in RISC OS
RISC OS
RISC OS is a computer operating system originally developed by Acorn Computers Ltd in Cambridge, England for their range of desktop computers, based on their own ARM architecture. First released in 1987, under the name Arthur, the subsequent iteration was renamed as in 1988...
and the ROX Desktop
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 inspired by the user interface of RISC OS...
, and also form the basis of the Zero Install
Zero Install
Zero Install is a means of distributing and packaging software for multiple operating systems . Many distributions offer it as an additional non-default component.- Design :...
application distribution system. Similar technology includes VMware ThinApp
VMware ThinApp
VMware ThinApp is an application virtualization and portable application creator suite by VMware that can package conventional applications so that they become portable applications...
, RUNZ, and the NEXTSTEP
NEXTSTEP
NeXTSTEP was the object-oriented, multitasking operating system developed by NeXT Computer to run on its range of proprietary workstation computers, such as the NeXTcube...
/GNUstep
GNUstep
GNUstep is a free software implementation of Cocoa Objective-C libraries , widget toolkit, and application development tools not only for Unix-like operating systems, but also for Microsoft Windows. It is part of the GNU Project.GNUstep features a cross-platform, object-oriented development...
/Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
concept of application bundles. Their heritage lies in the system for automatically launching software stored on floppy disk
Floppy disk
A floppy disk is a disk storage medium composed of a disk of thin and flexible magnetic storage medium, sealed in a rectangular plastic carrier lined with fabric that removes dust particles...
on Acorn
Acorn
The acorn, or oak nut, is the nut of the oaks and their close relatives . It usually contains a single seed , enclosed in a tough, leathery shell, and borne in a cup-shaped cupule. Acorns vary from 1–6 cm long and 0.8–4 cm broad...
's earlier 8-bit micros such as the BBC Micro
BBC Micro
The BBC Microcomputer System, or BBC Micro, was a series of microcomputers and associated peripherals designed and built by Acorn Computers for the BBC Computer Literacy Project, operated by the British Broadcasting Corporation...
(the !BOOT file).
Bundling various files in this manner allows tools for manipulating applications to be replaced by tools for manipulating the file system
File system
A file system is a means to organize data expected to be retained after a program terminates by providing procedures to store, retrieve and update data, as well as manage the available space on the device which contain it. A file system organizes data in an efficient manner and is tuned to the...
. 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, usually called !RunImage. Under the ROX Desktop, it is not uncommon for it to be a shell scriptShell script
A shell script is a script written for the shell, or command line interpreter, of an operating system. It is often considered a simple domain-specific programming language...
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 ControlControl key
In computing, a Control key is a modifier key which, when pressed in conjunction with another key, will perform a special operation ; similar to the Shift key, the Control key rarely performs any function when pressed by itself...
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
Computer virus
A computer virus is a computer program that can replicate itself and spread from one computer to another. The term "virus" is also commonly but erroneously used to refer to other types of malware, including but not limited to adware and spyware programs that do not have the reproductive ability...
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 ShiftShift key
The shift key is a modifier key on a keyboard, used to type capital letters and other alternate "upper" characters. There are typically two shift keys, on the left and right sides of the row below the home row...
, 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
Path (computing)
A path, the general form of a filename or of a directory name, specifies a unique location in a file system. A path points to a file system location by following the directory tree hierarchy expressed in a string of characters in which path components, separated by a delimiting character, represent...
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
Environment variable
Environment variables are a set of dynamic named values that can affect the way running processes will behave on a computer.They can be said in some sense to create the operating environment in which a process runs...
through which its various subdirectories are accessed. Thus RISC OS's entire boot sequence can be avoided merely by holding Shift.
See also
- Bundle (NEXTSTEP)Bundle (NEXTSTEP)In NEXTSTEP, OPENSTEP, their lineal descendants Mac OS X, iOS, and in GNUstep, a bundle is a directory that allows related resources such as an application's executable and its graphics to be grouped together, appearing as a single file to the user....
- Application VirtualizationApplication VirtualizationApplication virtualization is an umbrella term that describes software technologies that improve portability, manageability and compatibility of applications by encapsulating them from the underlying operating system on which they are executed. A fully virtualized application is not installed in...
- Portable application creatorsPortable application creatorsPortable application creators allow the creation of portable applications . They usually use application virtualization.- Creators of independent portable applications :...
- RUNZ SpatialBundle at the italian wikipedia