RAM-Disk

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Eine RAM-Disk, auch RAM-Drive (eingedeutscht in etwa RAM-Laufwerk) oder englisch Memory Disk, ist ein virtueller und temporärer Datenträger im Arbeitsspeicher (RAM) eines Computers. Sie wird hauptsächlich bei Live-Systemen eingesetzt, z. B. während ein Rechner neu aufgesetzt wird, oder wenn andere physische Speichermedien für einen bestimmten Zweck zu langsam sind.

Beim Anlegen wird ein definierter Teil des Arbeitsspeichers meist statisch für die RAM-Disk reserviert („abgezweigt“) und dabei wie eine Festplatte oder allgemein wie ein Extra-Laufwerk angesprochen, mit einem Dateisystem formatiert und schließlich eingehängt.

Eine RAM-Disk wird in Software erzeugt und verwaltet – die Umsetzung hängt daher im großen Maße von dieser Software ab, die z. B. die Firmware des Computers wie UEFI, das Betriebssystem selbst sowie Gerätetreiber oder Programme von Drittanbietern sein kein.

Technik[Bearbeiten | Quelltext bearbeiten]

Direktzugriffsspeicher, englisch Random Access Memory oder kurz RAM, wird von einem Computer normalerweise hauptsächlich als physischer Arbeitsspeicher verwendet. Bei manchen Systemen, die für wenig Arbeitsspeicher ausgelegt sind aber weit mehr RAM als dafür nötig verbaut haben, wurde in den 1980er Jahren die RAM-Disk als virtuelles Laufwerk entwickelt, um diesen sonst ungenützten und meist relativ schnellen Speicher als zusätzlichen Datenspeicher nutzen zu können. Dabei greift ein Gerätetreiber auf die im Betriebssystem vorhandenen Zugriffs-Routinen zurück und erstellt damit einen Zugriffspfad, der auf den im Arbeitsspeicher reservierten Teil für die RAM-Disk Zugriff ermöglicht und diesen Speicherbereich im Betriebssystem wie ein weiteres reguläres Laufwerk ansprechbar macht. Die Größe der RAM-Disk war dabei zuanfangs bereits bei der Initialisierung fix festzulegen, erst später wurden RAM-Disks mit variablen Speicherkapazitäten entwickelt.

Bei manchen Varianten ist der Inhalt der RAM-Disk dabei vollständig in die virtuelle Speicherverwaltung des Betriebssystems integriert und kann somit auch ausgelagert werden. Dies geschieht automatisch wenn der Arbeitsspeicher vom Betriebssystem für andere Programme benötigt wird. Diese Art von RAM-Disk widerspricht jedoch dem Konzept, die Daten jeder Zeit im Arbeitsspeicher zu halten.

Ältere und einfachere RAM-Disks erstellen nur das virtuelle Laufwerk; um dieses auch nutzen zu können muss es zuerst formatiert werden, wobei eines der vom Betriebssystem unterstützten Dateisysteme verwendet werden muss. Moderne Programme und Treiber zur Erstellung einer RAM-Disk erledigen diese Aufgabe meist automatisch bei der Erstellung gleich mit, bei älteren und einfacheren Implementierungen muss dieser Schritt jedoch manuell vom Anwender erledigt werden.

Bessere RAM-Disk-Programme können zudem den Inhalt des virtuellen Laufwerks vor dem Lösen der Einbindung (z. B. beim Herunterfahren, oder beim sicheren Entfernen oder Auswerfen des virtuellen Datenträgers) in eine Datei auf der Festplatte sichern und beim erneuten Erstellen der RAM-Disk automatisch wiederherstellen.

Verwendung[Bearbeiten | Quelltext bearbeiten]

RAM-Disks werden vor allem bei Live-Medien verwendet. Dabei wird oft von einem Speichermedium gestartet, das nur gelesen werden kann (z. B. von CD-ROM). Moderne Betriebssysteme benötigen jedoch einen Bereich, in dem temporäre Dateien gespeichert werden können – dieser wird bei einem Live-Betriebssystem durch die RAM-Disk bereitgestellt.

Live-Systeme, die eine RAM-Disk verwenden, sind u. a. die meisten Linux-Distributionen und Windows PE von Microsoft. Eine Vielzahl moderner Betriebssysteme verwenden eine RAM-Disk bei der Betriebssystem-Installation.

Gängige Betriebssysteme liefern zudem Treiber, um eine RAM-Disk anzulegen. Für verbreitete Betriebssysteme, wie DOS, Mac OS (Classic und macOS) oder Windows, gibt es zahlreiche Softwareangebote von Drittanbietern, die eine RAM-Disk bereitstellen und um sinnvolle Funktionen ergänzen, und sich damit von der im Betriebssystem integrierten Funktion absetzen. So kann der Inhalt der RAM-Disk beispielsweise beim Herunterfahren oder im Minutenabstand auf eine Festplatte gesichert werden, oft sind auch flexible RAM-Disk-Größen (Speicherkapazität) einstellbar.

Verbreitung[Bearbeiten | Quelltext bearbeiten]

In PC DOS 3.0 von 1984 war erstmals der VDISK.SYS genannte Gerätetreiber von IBM beigelegt, der eine RAM-Disk unter PC-kompatiblem DOS bereitstellen konnte. In PC DOS 3.3 war auch der Quelltext VDISK.ASM enthalten.[1] Microsoft integrierte 1986 in MS-DOS 3.2 mit RAMDRIVE.SYS ebenfalls eine RAM-Disk. Auch Digital Research lieferte in DR DOS 3.31 von 1988 eine eigene Version von VDISK.SYS mit.[2] Im Benutzerhandbuch von Caldera DR-DOS 7.03 wird die RAM-Disk als englisch Memory Disk bezeichnet.[3]

Beim Betriebssystem des Amiga von Commodore wurde mit Kickstart 1.3 1988 eine RAM-Disk (als englisch Recoverable RAM Disk) in Workbench eingeführt.[4][5] In AmigaOS gibt es zwei verschiedene RAM-Disks: Die eine benutzt eine beim Start festzulegende Menge des Arbeitsspeichers, während die andere dynamisch Hauptspeicher anfordert bzw. freigibt und sich so an den Speicherbedarf anpasst. Erstere hat den Vorteil, dass ihr Inhalt einen Computerneustart (Warmstart) überlebt, solange der Speicherbereich nicht durch ein unkontrolliert abstürzendes Computerprogramm überschrieben wurde.

Unter Unix-Betriebssystemen lässt sich die RAM-Disk durch das Verzeichnis /dev/shm (shm für englisch shared memory, gemeinsam genutzter Speicher) verwenden. Unter Linux wird dafür das Dateisystem tmpfs verwendet, das automatisch eine RAM-Disk anlegt – neben /dev/shm auch für weitere Verzeichnisse, darunter auch /dev (devtmpfs) und /run.

Unter klassischem Mac OS auf Macintosh-Computern von Apple war es ab System 7 von 1991 möglich, eine RAM-Disk zu aktivieren. Das Betriebssystem formatiert diese automatisch mit einem Dateisystem (HFS) und sichert den Inhalt beim regulären Herunterfahren, um die Daten beim nächsten Start wiederherstellen zu können. Die RAM-Disk kann im Kontrollfeld „Speicher“ eingerichtet werden.

In der UEFI-Spezifikation Version 2.6 von 2016 wurde das UEFI RAM Disk Protocol festgelegt.[6][7] So lässt sich noch vor dem Start des Betriebssystem eine RAM-Disk anlegen, die von einem kompatiblen Betriebssystem oder von der Firmware selbst verwendet werden kann. Dies beschleunigt unter anderem die Firmware-Entwicklung, weil unabhängig von weiteren Datenträgern Entwicklungen und Konfigurationen getestet werden können.[8] UEFI, das auf den Architekturen Itanium, x86, x64 (64-Bit-x86), und ARM64 existiert, ist seit ca. 2010 auf IBM-kompatiblen PCs der Nachfolger für das BIOS.[9][10]

Ähnliche Konzepte[Bearbeiten | Quelltext bearbeiten]

Starten eines Betriebssystems[Bearbeiten | Quelltext bearbeiten]

Einige Betriebssysteme starten aus einer anfänglichen RAM-Disk, die nach dem Start jedoch wieder entfernt wird. Bei Linux ist dies z. B. durch initrd oder dem moderneren initramfs bei den meisten Linux-Distributionen der Fall, der Linux-Kernel selbst kann jedoch auch ohne diese Anfangs-RAM-Disk booten.

Überlagerung mit einem schreibgeschützten Dateisystem[Bearbeiten | Quelltext bearbeiten]

Wenn ein Dateisystem auf einem schreibgeschützten Medium oder ein absichtlich schreibgeschützt verwendetes Dateisystem unter einem modernen Betriebssystem verwendet werden soll, kann mittels Überlagerung durch eine RAM-Disk ein lesender und schreibender Zugriff ermöglicht werden. Dabei werden nur die modifizierten Datenblöcke per Copy-On-Write (COW) in die RAM-Disk gespeichert, sodass das Dateisystem insgesamt als schreibfähig erscheint. Alle Änderungen sind jedoch nach einem Neustart wieder verschwunden. Dies findet oft bei Live-Systemen Anwendung.

Alternativ kann als COW-Speicher auch ein schreibfähiger Datenspeicher (z. B. Festplatte oder SSD), oder eine der Partitionen darauf, verwendet werden, wodurch die Änderungen vorerst erhalten bleiben. Dadurch können einerseits vom Urzustand, dem schreibgeschützten Dateisystem, mehrere unterschiedliche COW-Zustände abgeleitet werden, andererseits lässt sich der Urzustand auch sehr leicht wiederherstellen indem der COW-Datenträger zurückgesetzt wird.

I/O-Cache[Bearbeiten | Quelltext bearbeiten]

Da Arbeitsspeicher zu teuer und zu schnell ist um ihn brach liegen zu lassen, verwenden moderne Betriebssysteme über einen Input-/Output-Cache, kurz I/O-Cache, jeden freien Block im RAM (Arbeitsspeicher) normalerweise für das Zwischenspeichern (Puffern) von Lese- und Schreibvorgängen. Dadurch füllt sich das RAM stetig mit jedem Lesevorgang. Benötig ein Prozess abermals einen Zugriff auf eine Datei und befinden sich die Daten bereits im Cache, so spart sich das Betriebssystem einen erneuten Lesevorgang vom langsameren Speichermedium (wie z. B. einer Festplatte), da die Daten ja bereits im schnellen RAM liegen und über den I/O-Cache sofort verfügbar sind.

Benötigt jedoch ein anderer Prozess Arbeitsspeicher und es ist keiner mehr frei, so werden nach einer bestimmten Logik Teile des I/O-Cache verworfen. Eine einfache Logik ist etwa die FIFO-Strategie, bei der die ältesten gepufferten Daten verworfen werden. Siehe Cache-Verdrängungsstrategien.

Vor- und Nachteile[Bearbeiten | Quelltext bearbeiten]

Der Einsatz einer RAM-Disk ist oft reine Geschmackssache. Viele Programme werben mit schnelleren Startzeiten für darauf gespeicherte (oder gar installierte) Programme und Daten. Es ist jedoch immer zu beachten, dass nicht nur Vorteile mit dem Einsatz einer RAM-Disk einhergehen.

Vorteile[Bearbeiten | Quelltext bearbeiten]

Im Gegensatz zum direkten Ansprechen des Arbeitsspeichers durch ein Computerprogramm stehen dem Programmierer durch Benutzung einer RAM-Disk die mit der Dateiverwaltung zusammenhängenden Dienste des Betriebssystems zur Verfügung. Für den Anwender ergibt sich der Vorteil, dass durch eine RAM-Disk Computerprogramme ohne Änderungen mit Daten sowohl auf Datenträgern als auch im Arbeitsspeicher arbeiten können. Der Vorteil einer RAM-Disk im Vergleich zur Festplatte ist die Einsparung von Festplattenzugriffen und die damit verbundene deutlich höhere Schreib-/Lese- und Zugriffsgeschwindigkeit[11], was auch die Verwendung in Supercomputern erklärt sowie die Verminderung von Verschleiß.[12] Beispielsweise können beim Startvorgang eines Computers häufig benötigte Kommandos im Arbeitsspeicher abgelegt dafür sorgen, dass die zum Starten benötigte Zeit verringert wird. Da für den Zugriff auf den Arbeitsspeicher weniger Energie benötigt wird, ist für mobile Computer zudem der energiesparende Effekt und die damit verbundene verlängerte Akkulaufzeit von Vorteil. Ähnlich zum gegebenen Beispiel für den Startvorgang wird bei entsprechender Konfiguration auf häufig verwendete Dateien im Arbeitsspeicher zugegriffen, wodurch die interne Festplatte öfter bzw. länger in den Energiesparmodus versetzt werden kann – was die Akkulaufzeit abermals steigert.

Moderne Betriebssysteme beinhalten heutzutage in der Regel ein Cache-Management, bei dem das Betriebssystem selbstständig den jeweils aktuell freien Speicher verwendet, um Daten zwischenzuspeichern. So werden Daten oder Programme, die von Festplatten gelesen werden, auch in diesem dynamischen Cache gespeichert. Bei einem erneuten lesenden Zugriff kann das System die Daten dann direkt aus dem RAM statt von dem externen Datenträger lesen. Da die Verwaltung dieses Caches vom System selbstständig übernommen wird (das System weiß, was besonders häufig gelesen wird), kann ein Cache heutzutage in vielen Situationen einer RAM-Disk überlegen sein.

Nachteil[Bearbeiten | Quelltext bearbeiten]

Nachteil der RAM-Disk ist, dass der betreffende Speicherplatz dem freien Arbeitsspeicher, also dem Betriebssystem und anderen Programmen zum Zwischenspeichern, nicht mehr zur Verfügung steht. Nach einem Neustart des Systems (z. B. nach einem Absturz) ist der Inhalt der RAM-Disk im Allgemeinen verschwunden. Da Arbeitsspeicher zu den flüchtigen Speichermedien zählt, verschwindet bei Unterbrechung der Stromzufuhr (z. B. beim Abschalten) mit dem Arbeitsspeicher-Inhalt auch der RAM-Disk-Inhalt. Daher sollten auf der RAM-Disk keine wichtigen Daten abgelegt werden, sofern nicht die unterbrechungsfreie Stromversorgung des Computers gewährleistet ist. Weiterhin sollten vor dem Ausschalten des Computers evtl. noch benötigte Dateien gesichert werden (z. B. automatisiert per Skript). Gemessen am Preis je Speichergröße zählt diese Art zu den teureren Speicherverfahren.

Abgrenzung[Bearbeiten | Quelltext bearbeiten]

Einige andere Technologien, die ebenfalls RAM als Basis für den Datenspeicher verwenden, haben – trotz ähnlich klingender Bezeichnung – mit dem Konzept einer RAM-Disk nichts zu tun. Auch ähnliche Konzepte wie überlagerte Dateisysteme und der I/O-Cache zählen nicht zum Begriff der RAM-Disk.

RAM-Floppy[Bearbeiten | Quelltext bearbeiten]

RAM-Floppys sind ein hardwareseitiger Ersatz für ein Diskettenlaufwerk (englisch Floppy Disk Drive, kurz FDD), gedacht für ältere Rechnersysteme. RAM-Floppys sind dabei nicht an die Anschlüsse für reguläre Laufwerke gebunden, sie können z. B. auch als Steckkarte ausgeführt sein.[13][14] Auch wenn hierbei nicht nur durch Software ein Teil des Arbeitsspeichers abgezweigt, sondern zusätzliche Hardware verwendet wird, handelt es sich bei einem solchen Laufwerk um eine gewöhnliche RAM-Disk.

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. IBM DISK OPERATING SYSTEM (DOS) VERSION 3.30. Announcement Letter Number 287-098 dated April 2, 1987. IBM, 2. April 1987, abgerufen am 29. Juli 2018 (englisch): „DOS 3.30 TECHNICAL REFERENCE; … VDISK.ASM is a file containing the Assembler Language source code for Virtual Disk (RAM memory disk) device driver (VDISK.SYS). The assembled object code for VDISK.SYS and instructions for its use are included in the DOS 3.30 package. The VDISK.ASM file is provided on the DOS 3.30 Technical Reference utilities diskette for programmers who want to use it as a model for creating device drivers.“
  2. Matthias Paul: Re: [fd-dev] How to detect a RAM drive (Was: Games + Freedos (Frontier Elite II). In: freedos-dev. 19. Februar 2002, abgerufen am 29. Juli 2018 (Mailingliste, englisch).
  3. Chapter 4 - Working with Caldera DR-DOS. In: Caldera DR-DOS Quick Start Guide. Caldera, Inc., 1998, abgerufen am 29. Juli 2018 (englisch): „[This …] type of disk, a memory disk, is not a physical disk but part of your computer's memory that the operating system treats as a disk. This is why a memory disk is also referred to as a virtual disk. … A memory disk only stores data temporarily. When you switch off your computer, or reboot, any data stored in a memory disk is lost.“
  4. Amiga Enhancer V1.3 is a Disk-Based Update. Commodore Amiga, Inc., 1988, abgerufen am 29. Juli 2018 (englisch): „Recoverable RAM Disk: Keeps its contents until the Amiga is turned off“
  5. Chris Cebelenski: Amiga 1.3. In: Retrocomputing. 21. April 2010, abgerufen am 29. Juli 2018 (Blog, englisch).
  6. Adrian Kingsley-Hughes: UEFI Forum announces updated UEFI v2.6 and ACPI v6.1 specifications. The latest updates to UEFI and ACPI help allow PCs to offer enhanced mobility and manageability for customer and enterprise levels. In: Blog „Hardware 2.0“. ZDNet, 9. März 2016, abgerufen am 28. Juli 2018 (englisch): „Added to UEFI Specification v2.6 are … Formal API definition for RAM Disk Protocol.“
  7. MdePkg: Add EFI RAM Disk Protocol definitions. In: tianocore/edk2. GitHub, 3. Februar 2016, abgerufen am 28. Juli 2018 (englisch).
  8. Dong Wei, Ting Ye: Accelerating Firmware Development With UEFI Advanced Features. In: IDF16-Präsentation. Intel, 2016, S. 17, abgerufen am 28. Juli 2018 (PDF; 2,6 MB, englisch).
  9. Christof Windeck: Abschied vom PC-BIOS. In: Heise online. 3. Juni 2011. Abgerufen am 28. Juli 2018.
  10. Christof Windeck: Intel: UEFI-BIOS verliert 2020 die BIOS-Kompatibilität. In: Heise online. 15. November 2017. Abgerufen am 28. Juli 2018.
  11. Blog vom Karpfenweg: RAM-Disk / RAM-Drive - Was es bringt und wem es nützt
  12. Siehe dazu auch Solid-State-Drives im Vergleich
  13. RETROPORT: RAM-Floppy 256K (Rex 9680) bei Archive.org (Memento vom 2. Mai 2012 im Internet Archive)
  14. Homecomputer DDR: RAM-Floppy RAF2008