# Roaming (Ordnerüberblendung)

Unter Roaming versteht man in der Informatik eine spezielle Form des Überlagerns von Verzeichnisinhalten. Es dient dazu, Software einen fehlerlosen Betrieb zu ermöglichen, welche nicht an das Rechte-System des Betriebssystems angepasst ist und daher auf geschützte Verzeichnisse schreiben möchte – die es als frei beschreibbar annimmt. Hierzu lenkt das Betriebssystem zum einen Schreibvorgänge, die das Programm in geschützten Verzeichnissen vornehmen will, auf ein zum Benutzer gehörendes spezielles Verzeichnis im Benutzerprofil um. Zum anderen überlagert das Betriebssystem den Inhalt dieses speziellen Verzeichnisses so den übrigen Daten des geschützten Verzeichnisses, dass aus der Sicht des nicht angepassten Programms die umgelenkten Daten im geschützten Verzeichnis scheinbar vorhanden sind – so wie sie von dem Programm erwartet werden.
Im Gegensatz zu schlichten Ordnerumleitungen (Softlink, Hardlink oder Junction Point) wird nicht einfach ein Verzeichniseintrag auf ein anderes Verzeichnis umgelenkt, sondern es existieren nun zwei Verzeichnisse des entsprechenden Namens – das normale am ursprünglichen Ort (C:\Program Files\xxx) sowie ein Schattenverzeichnis (%LOCALAPPDATA%\VirtualStore\xxx), welches nur die geänderten und neuen Dateien enthält; daneben Einträge, dass bestimmte Dateien aus C:\Program Files\xxx als gelöscht gelten sollen. Für das entsprechende laufende Anwendungsprogramm erscheint C:\Program Files\xxx, als ob alle Änderungen direkt dort geschehen wären.

## Verzeichnisüberladen bei Live-Systemen

Bei Live-Betriebssystemen, die sich meist auf einer CD oder DVD befinden, sind die Verzeichnisse des Datenträgers nicht beschreibbar; daher ist oft ein Verzeichnis-Überladedienst eingerichtet, damit Programme, die schreiben wollen, trotzdem funktionieren. Deren geschriebene Daten können auf einer RAM-Disk zwischengespeichert werden, wo sie beim Abschalten des Computers verlorengehen. Werden sie hingegen auf einem persistenten Medium (meist ein USB-Stick) gespeichert (persistenter Modus), so kann nach dem nächsten Start des Live-Systems dieses Medium wieder eingebunden werden und die zuvor vorgenommenen Dateisystemänderungen sind wieder da.

## Ordner- und Dateivirtualisierung bei Microsoft-Betriebssystemen

Die Microsoft-Betriebssysteme ab Windows Vista beinhalten dieses Verfahren, jedoch nur für 32-Bit-Anwendungen ohne ein Manifest mit trustinfo-Angaben; es werden nur Zugriffe auf das eigene Installationsverzeichnis unter C:\Programme sowie Zugriffe auf das Windows-Verzeichnis (bzw. jeweilige Unterverzeichnisse) umgelenkt („virtualisiert“).
Auch ein Teil der Registrierungsdatenbank wird derart geschützt: Schreibzugriffe auf den Schlüssel HKEY_LOCAL_MACHINE\Software leitet das Betriebssystem in den Abschnitt HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\Software um.
Laut einem c’t-Artikel „versteht Microsoft die Virtualisierung nur als vorübergehendes Entgegenkommen zur Abwärtskompatibilität. Wenn mehr und mehr Software an Vista angepasst wurde, will der Hersteller die Krücke in einer künftigen Windows-Version deaktivieren.“

### Beispiel

Als Beispiel dient der Bildbetrachter IrfanView: Es existiert das Programmverzeichnis C:\Program Files\IrfanView, welches die unveränderten Dateien/Inhalte beinhaltet, sowie ein Schattenverzeichnis (C:\Users\USERNAME\AppData\Roaming\IrfanView), welches nur die geänderten und neuen Dateien enthält, sowie Einträge, dass bestimmte Dateien aus C:\Program Files\IrfanView als gelöscht gelten sollen. Für das laufende Programm (hier: IrfanView für Benutzer USERNAME) wird der Inhalt von C:\Users\USERNAME\AppData\Roaming\IrfanView so in C:\Program Files\IrfanView eingeblendet, dass die zusätzlichen Dateien dort zusätzlich erscheinen, geänderte Dateien aus C:\Users\USERNAME\AppData\Roaming\IrfanView die hiesigen überlagern, und als gelöscht markierte nicht mehr auftauchen (obwohl sie eigentlich in C:\Program Files\IrfanView noch vorhanden und nicht gelöscht sind).
Dem Programm IrfanView, ausgeführt unter Benutzer USERNAME, erscheint alles so, als ob jede Lösch-, Änderungs- oder Neuanlegen-Operation auf Dateien im Verzeichnis C:\Program Files\IrfanView problemlos funktioniert hätte.

### Geschichte

Erstmals wurde Roaming unter Windows Vista eingeführt, da Microsoft hier erstmals die Aufteilung in Administrator und eingeschränkter Benutzer so abgeändert hat, dass ein „normaler Benutzer“ beides zugleich ist (sogenannte Benutzerkontensteuerung; engl.: User Account Control „UAC“). Laut Microsoft soll das Verfahren für Benutzer keine Sicherheitseinbußen haben.
Microsoft versucht damit, die Probleme zu umgehen, die dadurch entstehen, dass viele Benutzer als Administrator arbeiten und arbeiteten, da sie Software verwenden, welche nicht für die Verwendung mit (eingeschränkten) Benutzerrechten angepasst ist. Durch das Roaming soll es nicht mehr notwendig sein, diese Programme mit Administratorrechten auszuführen.

### Abgrenzung

Es gibt von Microsoft auch die Techniken
* Roaming Profile, welches eine zentrale Benutzerverwaltung beschreibt, wobei Änderungen an Dateien im Benutzerverzeichnis auf den Server übertragen werden und umgekehrt;
* Roaming User, das im Zusammenhang mit Roaming Profile den Benutzer beschreibt, welcher an verschiedenen Computern (z. B. im Firmennetzwerk) arbeitet.
* Eine Ordnerumleitung ist eine Symbolische Verknüpfung (Softlink) oder ein Harter Link (Hardlink); diese Techniken sind hier beschriebenem Roaming ähnlich, können aber Verzeichnisinhalte nicht anderen, bestehenden Verzeichnisinhalten überlagern.
* Auch die seit Windows 2000 bestehenden Junction Points des NTFS sind eine andere Technik als hier beschrieben; sie entsprechen einer Verzeichnisumleitung.