CDemu
# CDemu

CDemu ist ein freier CD-/DVD-/Blu-ray-Laufwerk-Emulator für Linux, womit Speicherabbilder (engl. „images“) in virtuelle Laufwerke geladen werden können. Die Software wird unter der GNU General Public License veröffentlicht.

## Entwicklung

Die Entwicklung von CDemu hat ihre Wurzeln im Jahr 2003 als Robert Penz und Justus Schwartz einen Patch für den Medienspieler MPlayer entwickelten, der ihn um die Unterstützung von Cuesheet- und BIN-Dateien erweiterte. Nach der Fertigstellung des Patches, zeigten sich die Entwickler jedoch mit dem Ergebnis unzufrieden und beschlossen stattdessen ein eigenes Kernel-Modul zu schreiben, dass die beiden Dateitypen in ein virtuelles Laufwerk lädt. Das Modul hieß zunächst noch „Virtual CD“, da es jedoch bereits eine proprietäre Software gleichen Namens gab, wurden Penz und Schwartz bald ermahnt, den Namen zu ändern. Im Juni 2007 war zunächst geplant CDemu auf die Version 0.8 weiterzuentwickeln; Da es allerdings vermehrt Probleme gab, die Entwicklung von CDemu mit der des Linux-Kernel in Einklang zu bringen, entschlossen sich die Programmierer, den Emulator komplett neu zu schreiben, was hauptsächlich durch Rok Mandeljc erledigt wurde. Die neue Version agierte so weit wie möglich im Ring und war dadurch unabhängiger. Im Dezember 2007 schließlich wurde mit der stabilen Version 1.0.0. die erneuerte Fassung von CDemu veröffentlicht.
Mittlerweile ist CDemu in der Lage, zahlreiche Abbild-Formate zu lesen, darunter auch Proprietäre (siehe Unterstützte Formate). Es gilt als Linux-Gegenstück zu den auf Windows weit verbreiteten Daemon Tools.

## Funktionsweise

Das Projekt ist in mehrere Komponenten aufgeteilt. Die Programmbibliothek „libmirage“ ist eine modular aufgebaute Sammlung aller Parser, die zum Lesen der unterstützen Abbild- und Containerdateien benutzt werden. Das „VHBA Modul“ erstellt ein virtuelles SCSI-Laufwerk und dient als Verbindung zwischen dem Ring und dem Linux-Kernel. Der „CDEmu Daemon“ verarbeitet schließlich sämtliche SCSI-Kommandos des Kernels und reicht sie an diesen zurück- hierzu wird ab Version 1.4.0 D-Bus verwendet. Zur Steuerung dient primär „cdemu-client“ für das Terminal. Als grafische Lösung bieten die Entwickler ferner „gCDEmu“ an, welches lange Zeit ein Gnome-Widget war, jedoch zwischenzeitlich zur eigenständigen GTK+-Anwendung weiterentwickelt wurde. Beide Clients fußen auf Python 3. Wie bei Linux üblich, können die geladenen Abbilder an jedem Ort im Dateisystem eingehängt werden. Der Benutzer kann beliebig viele virtuelle Laufwerke einrichten, welche vor dem ersten Einhängen noch in die fstab-Systemdatei eingetragen werden müssen.

### Unterstützte Formate

Stand: November 2015 (Version 3.0.4)