# Application directory

L'application directory è una convenzione per raggruppare il codice binario (ed eventuale codice sorgente), la documentazione e le risorse di un'applicazione ma mostrarlo all'utente come un oggetto unico.
Questo approccio è usato dal RISC OS e nel ROX Desktop, ed è alla base del sistema di distribuzione Zero Install. Una tecnica simile è il bundle, adottato da NEXTSTEP, GNUstep e macOS. Storicamente il concetto è nato dal sistema di esecuzione automatica di software registrato nei floppy disk (il !BOOT file) usato dal BBC Micro, il micro a 8bit della Acorn.
L'unione dei vari file consente di sostituire ai comandi per la manipolazione delle applicazioni i normali comandi di gestione del file system. Le applicazioni possono essere installate semplicemente copiandole da una sorgente di distribuzione; analogamente, si può disinstallare eliminando l'application directory.

## Convenzioni

Per poter gestire l'interazione tra l'utente e le application directory, diversi file hanno un significato speciale.

### Applicazioni binarie

Eseguire un'application directory comporta l'esecuzione di uno speciale file incluso: AppRun (nel ROX Desktop) o !Run (in RISC OS). Nel ROX Desktop, usualmente è uno script di shell che richiama l'eseguibile, se presente, o lo compila prima di richiamarlo. Nel RISC OS, questo è generalmente un Obey file (lo script di RISC OS) che alloca la memoria e carica le estensioni del sistema e le librerie dinamiche necessarie all'eseguibile.

### Documentazione ed icone

Sia RISC OS che ROX Desktop consentono all'utente di consultare la documentazione dell'applicazione senza eseguirla. RISC OS usa un file chiamato !Help che viene richiamato quando l'utente richiede la documentazione (usando il programma appropriato) mentre il ROX Desktop apre la sottodirectory Help.
Analogamente, all'application directory può essere associata un'icona: .DirIcon o AppIcon.xpm nel ROX Desktop e !Sprites (e opzionalmente !Sprites22) nel RISC OS.

### !Boot

Le application directory del RISC OS possono contenere un file chiamato !Boot che viene eseguito dal file manager implicitamente la prima volta che la directory è visualizzata (a meno di inibizione tramite pressione del tasto Control prima della visualizzazione) o esplicitamente con il comando FilerBoot.
Questo consente all'applicazione di eseguire compiti come la registrazione del tipo di file e l'impostazione degli alias per l'esecuzione e la stampa di questo tipo di file. Può inoltre essere usato per implementare l'uso di ASprites (icone con trasparenza adottate nel RISC OS Select) o di 5Sprites (icone adattate per il RISC OS 5) o per richiamare un tema differente. Per queste sue caratteristiche, il file !Boot è stata la via più popolare per la diffusione di virus su sistemi RISC OS, come nel caso del virus Extend.
Questa funzione non è implementata nel ROX Desktop.

### File !Boot nelle directory di sistema

Le prime macchine Acorn permettevano ad una memoria di massa di eseguire automaticamente il file !BOOT (se presente) quando veniva inserita nel sistema. Questa modalità però consentiva un exploit includendo al posto del file una application directory chiamata !Boot.