Bedrock vereint nahezu beliebig viele Distributionen mit unterschiedlichen Architekturen, Paket- und Init-Systemen transparent unter einem Dateisystem.
Wer Arch Linux mit verbundenen Augen installiert, für den könnte Bedrock Linux [1] eine neue Herausforderung darstellen: Der Aufwand lässt sich in etwa mit dem Aufsetzen von Linux from Scratch (LFS) vergleichen. Als Belohnung winkt ein ähnlich hoher Lerneffekt, obendrein bringt Bedrock einen klaren Mehrwert gegenüber den genannten Ansätzen mit: Nach der Installation besitzen Sie quasi ein Host-System mit mehreren virtualisierten Gästen. Nur arbeitet bei Bedrock nichts virtualisiert, alles läuft nativ und transparent. Die Distribution wagt sich somit ambitioniert auf Neuland vor.
Im Klartext bedeutet dies, dass Bedrock eine Struktur bietet, in die sich fast beliebig viele unterschiedliche Distributionen und deren jeweilige Anwendungen installieren lassen. Damit vereint Bedrock, basierend auf einem relativ kleinen, statisch gelinkten Betriebssystem-Kern, die Vorteile der jeweils installierten Distributionen in einem System. So lässt sich beispielsweise die aktuelle Version von Firefox aus Fedora installieren und zusätzlich eine mit Gentoo ohne D-Bus-Unterstützung kompilierte Version des Browsers einspielen und gleichzeitig aufrufen.
Auch die verschiedenen Paketmanagement-Werkzeuge der einzelnen Distributionen wie Apt, Yum oder Pacman stehen in Bedrock zur Verfügung. Zudem können Sie auf 64-Bit-Hardware 32- und 64-Bit-Systeme in einer Partition installieren. Ebenso arbeiten verschiedene Init-Systeme wie SysVinit, Upstart, Runit oder Systemd friedlich nebeneinander. Alle installierten Anwendungen, egal, woher sie kommen, nehmen an, in Ihrem nativen Betriebssystem zu agieren. Praktischerweise bindet Bedrock dabei das Heimatverzeichnis in alle installierten Distributionen ein, sodass Sie jederzeit mit identischen Daten arbeiten.
Dokumentation
Von einer kleinen Entwicklerschar langsam und mit Bedacht auf die Stabilität des Grundsystems vorangebracht, entwickelt sich Bedrock stetig. Zum Testzeitpunkt stand die Version 1.0beta2 “Nyla” frisch zum Herunterladen bereit, zu Redaktionsschluss arbeiteten die Entwickler bereits intensiv an einer dritten Beta.
Falls Sie sich für Bedrock interessieren, sollten Sie zum Einstieg auf der Bedrock-Webseite unbedingt die Einführung [2] sowie die FAQ [3] lesen. Die ausführliche Dokumentation stellt klar, was Bedrock leistet und was nicht (Abbildung 1). Ein Ausschlusskriterium für Bedrock könnten nicht ausreichende Englischkenntnisse darstellen: Die gesamte Dokumentation, eine durchaus anspruchsvolle Materie, liegt lediglich in Englisch vor.
Das Aufsetzen von Bedrock sowie das Installieren und Konfigurieren von mehreren Distributionen nimmt leicht einen Tag in Anspruch. Deshalb sollten Sie sich vorher klarmachen, was Sie am Ende mit Bedrock erreichen möchten. Die Distribution eignet sich zum spielerischen Lernen oder auch als Entwicklermaschine, die etwa Debian und Ubuntu beherbergt und somit Vergleiche verschiedener Paketstände und das Debuggen von Fehlern enorm erleichtern kann. Auch zwischen diesen beiden Anwendungsszenarien und darüber hinaus sind viele weitere denkbar.
Bedrock enthält keine besonderen Sicherheitsmechanismen, die alle Distributionen streng voneinander trennen – nichts wird isoliert oder in Sandboxen ausgeführt. Die Installation eines Ubuntu-Pakets innerhalb der Ubuntu-Sektion von Bedrock könnte auch in der Debian-Installation Schaden anrichten. Andererseits wäre Bedrock ein sinnloses Unterfangen, wenn beide Pakete ebenso gut nebeneinander in gleichen oder in verschiedenen Versionen in ihrer nativen Distribution existieren könnten.
Setzt eine der zu installierenden Distributionen SELinux ein, sollten Sie die Funktion derzeit besser deaktivieren [4]. Ansonsten gilt: Die Installation unsicherer Pakete aus dubiosen Quellen macht Bedrock nicht sicherer, wie man das etwa für Virtualisierung oder Container annehmen kann.
Bauprinzip
Die Entwickler von Bedrock erfinden beim Bau der Distribution das Rad nicht neu, sondern bedienen sich uralter Unix-Prinzipien. Changed Roots (Chroots) [5] und Bind-Mounts [6] ermöglichen einen Großteil der Magie des Systems. Chroots lassen sich irgendwo zwischen Containern und herkömmlicher Virtualisierung verorten. Der größte Unterschied besteht darin, dass Changed Roots durchlässig agieren, während Container eher separieren. Mittels Bind-Mount erlaubt dann das System innerhalb des Chroots gestarteten Anwendungen, mit Dateien außerhalb der Chroot-Umgebung zu interagieren.
Die Installation der derzeitigen Version von Bedrock Linux funktioniert nicht zuletzt aufgrund der ausführlichen Dokumentation meist recht gut. Weniger versierte Anwender überfordert der Ablauf aber, da er komplett in der Konsole erfolgt. Das Basissystem bauen Sie dabei innerhalb einer bestehenden Linux-Installation aus dem Bedrock-Git-Repository (Abbildung 2).

Abbildung 2: Zuerst bauen Sie Bedrock aus den Quellen des Projekts auf Basis einer bestehenden Linux-Installation.
Insgesamt benötigten wir für das Aufsetzen von Bedrock in einem Testsystem und das Installieren von Debian 8, Fedora 22 und Void Linux rund vier Stunden. Daran schließt sich noch die Konfiguration und Erweiterung der installierten Basissysteme an. Der Platzbedarf von Bedrock wächst abhängig von der Anzahl der installierten Distributionen kräftig, was bei den Kapazitäten und Preisen heutiger Festplatten aber keinen zwingenden Hinderungsgrund darstellt.
Zweigleisig
Für Bedrock als Grundgerüst gibt es zwei Installationswege, den “Quick Start” und eine “Full Installation”. Über beide gelangen Sie ans selbe Ziel, von daher führt die Unterscheidung ein wenig in die Irre. Die zweite Methode bietet Ihnen allerdings wesentlich mehr Einfluss auf die vielen Stellschrauben, an denen man bei Linux drehen kann; andererseits birgt dieser Weg mehr Gefahr, etwas falsch zu machen. Bevor Sie sich bei Bedrock heimisch fühlen, empfiehlt sich daher die erste Methode [7].
Vor dem Start sollten Sie Ihr Wissen über Bedrock und seine spezifischen Konzepte und Begriffserklärungen im Abschnitt Concepts, Theory and Terminology [8] noch etwas erweitern. Bei den Stratum Setup Instructions [9] gibt es Anleitungen für die wichtigsten Distributionsgruppen.
Huckepack
Wie bereits erwähnt installieren Sie Bedrock innerhalb einer anderen Linux-Distribution – deren Wahl steht Ihnen frei. Am besten nutzen Sie dazu ein frisch installiertes System, das Sie auf einer entsprechend großen Partition anlegen. Bedrock selbst braucht nur wenig Platz (Abbildung 3), pro zu installierender Huckepack-Distribution müssen Sie jedoch mit 10 bis 15 GByte Datenvolumen rechnen.

Abbildung 3: Bedrock selbst umfasst nur 70 MByte, dazu kommt jedoch das Host-System und die zusätzlichen Distributionen.
Für die Installation von Bedrock müssen Sie im Host-System eventuell noch fehlende Werkzeuge der Linux-Toolchain nachinstallieren, die Quick-Install-Anleitung geht im Detail darauf ein. Anschließend laden Sie als normaler User den rund 500 KByte großen Bedrock-Code von GitHub, gefolgt vom Befehl make, der daraus einen Bedrock-Tarball von rund 5 MByte erstellt.
Nun gilt es, den Tarball ins Root des Host-Systems zu entpacken. Dazu erlangen Sie mit su oder sudo -s administrative Rechte, wechseln mittels cd / ins Stammverzeichnis und nutzen Tar zum Entpacken. Weitere Kommandos stellen sicher, dass alle Distributionen eine möglichst geeignete Infrastruktur vorfinden. Damit ist die Installation der grundlegenden Bedrock-Distribution, im Jargon der Bedrock-Entwickler Stratum, abgeschlossen. Es handelt sich dabei um die “entführte” Grundinstallation, die nun weitere Distributionen aufnimmt. Dort liegt bereits ein Fallback genanntes Rettungssystem, das Sie automatisch beim Anlegen des Systems erzeugen.
Strata installieren
Nun geht es an die Installation der Distributionen innerhalb von Bedrock. Hierfür gibt es generell mehrere Wege. Sie haben die Option, die gewünschten Distribution auf einem USB-Stick einzurichten und das System dann von dort nach Bedrock zu kopieren. Ein anderer Weg bestünde darin, das System in einer virtuellen Maschine einzuspielen, diese anschließend im Bedrock-System zu mounten und in die entsprechende Partition des Hosts zu spiegeln. Beide Methoden setzen voraus, dass Sie in der Lage sind, hinterher Grub in einem Chroot richtig zu installieren.
Daher gehen Sie für den Einstieg am besten den einfachsten Weg und bauen die Distributionen innerhalb von Bedrock selbst. Die Quick-Install-Dokumentation gibt hier wieder den Weg vor. Für die Testsysteme nutzten wir bei Debian debootstrap, bei Fedora rinse und für Void den statischen Installer zum Aufsetzen des jeweiligen Grundsystems. Damit lassen sich die Basissysteme der drei Distributionen in rund einer Stunde installieren.
Verbiegen
Nun geht es entsprechend mit dem Kapitel Configure der Quick-Start-Seite mit der grundlegenden Bedrock-Konfiguration der einzelnen Distributionen weiter. Dieser Abschnitt der Installation nimmt am meisten Zeit in Anspruch. Dabei geht es unter anderem darum, die Beziehungen im Dateisystem von Bedrock (und der “entführten” Distribution) zu den Strata mit symbolischen Links festzulegen, User und Gruppen anzulegen und den Bootloader zu konfigurieren.
Dabei lassen sich wiederum die allermeisten Befehle direkt übernehmen, wobei Sie lediglich generische Begriffe mit den jeweiligen Distributionsnamen ersetzen müssen. Dazu bearbeiten Sie erneut die bereits mehrfach editierte Datei /bedrock/etc/strata.conf, in der Sie die grundlegende Distribution als globales Stratum und als Rootfs bestimmen [10]. Ein wenig Beschäftigung mit dem Inhalt dieser Datei erhellt zudem einige der grundlegenden Strategien von Bedrock (Abbildung 4).

strata.conf definieren Sie die unterschiedlichen Gast-Systeme.” width=”300″ height=”170″ />
Abbildung 4: Eine der wichtigsten Dateien bei Bedrock: In derstrata.conf definieren Sie die unterschiedlichen Gast-Systeme.Der erste Reboot
Am Ende der Konfiguration wartet die Belohnung für die Mühen: Nach einem Reboot erscheint das Bedrock-Menü und bietet die installierten Strata zur Auswahl an (Abbildung 5). Nach dem Start der gewählten Sektion befinden Sie sich in deren gewohnter Umgebung, in der Sie wie auf einer herkömmlichen Installation dieser Distribution arbeiten. Ihnen steht jedoch gleichzeitig frei, jederzeit in der Konsole in die Infrastruktur eines anderen installierten Stratums zu wechseln und mit dessen Paketsystem zu arbeiten.

Abbildung 5: Ein System mit elf verschiedenen Distributionen inklusive unterschiedlicher Init-Systeme, friedlich vereint unter Bedrock.
So installieren Sie etwa eine neuere, ältere oder anders kompilierte Version eines Pakets oder rufen drei verschiedene Versionen von VLC gleichzeitig auf, um zu testen, welche Version einen bestimmten Codec unterstützt. Ein anderer Anwendungsfall wäre etwa, dass Debian “Jessie”, mit dem Sie gerade arbeiten, ein bestimmtes Paket nicht anbietet, das ebenfalls installierte Fedora aber schon: In diesem Fall wechseln Sie im Terminal einfach in das andere System und installieren das fehlende Paket.
Befehle verstehen
In der Praxis wechseln Sie als normaler Anwender in das System einer anderen installierten Distribution, indem Sie den Befehl brc verwenden. So führt die Eingabe von brc Fedora22 in die entsprechende Umgebung, wo Sie dann mit Yum oder neuerdings DNF die Paketverwaltung aufrufen. Der Befehl brc erwartet als Option den Namen des Systems, den Sie bei der Konfiguration in die Datei strata.conf eingetragen haben. Mit brw prüfen Sie dann, ob der Wechsel funktioniert hat.
Gibt es eine Anwendung mehrfach in den unterschiedlichen Distributionen, so lässt sich eine bestimmte Version auch direkt mit brc aufrufen, indem Sie etwa brc Jessie firefox ausführen. Um sich Updates bei mehreren auf Debian basierenden Distributionen zu erleichtern, lassen sich Kommandos auch auf mehrere Subsysteme anwenden. Entsprechend Listing 1 führen Sie etwa apt-get dist-upgrade auf sämtlichen passenden Strata aus. Eine Befehlsübersicht auf der Webseite [11] erläutert alle für Bedrock spezifischen Befehle.
Listing 1
$ brl -c 'brw apt-get|grep "(direct)$"' sh -c 'apt-get update && apt-get dist-upgrade'
In der Praxis
Für die Tests im Rahmen dieses Artikels fiel die Wahl der Distributionen auf die leichtesten Anwendungsbeispiele, um Sie möglichst einfach zu einer funktionierenden Installation anzuleiten. Sind Sie uns bis hierher gefolgt und von den Möglichkeiten fasziniert, so finden Sie in der Dokumentation auf der Webseite noch viele weitere vertiefende Informationen, mit deren Hilfe Sie vielleicht auch weitere Anwendungsszenarien entdecken.
Auf alle Fälle stellt ein mit einer Bedrock-Installation verbrachter Tag keine verlorene Zeit dar – Sie lernen enorm viel über das Linux-System. Zudem reizt es, zu sehen, wie die Entwickler aus dem eigentlich geradlinigen Dateisystem eine Brezel drehen, um die Koexistenz verschiedener Distributionen mit unterschiedlichen Init- und Paketsystemen auf einer Partition zu bewerkstelligen.
Ausblicke
Für die nächste Version Bedrock Linux 1.0beta3 “Poki”, steht unter anderem auf dem Plan, die Basisinstallation verschiedener Distributionen zu automatisieren. Mit dem Befehl brg get --distro debian --release jessie soll sich dann beispielsweise Debian “Jessie” installieren und in Bedrock einbinden lassen, sodass die jetzt noch notwendigen Konfigurationsschritte entfallen.
Für zukünftige Ausgaben sind zusätzliche Bedrock-Werkzeuge angedacht, wie etwa ein Paketmanager-Manager, der die einschlägigen Tools der einzelnen Strata unter einen Hut bringt [12]. Das würde es beispielsweise erlauben, alle installierten Distributionen gleichzeitig mit einem Befehl zu aktualisieren oder auszugeben, welches Paket in welcher Version in welcher Distribution installiert ist.
Vor- und Nachteile
Der einzig auf den ersten Blick ersichtliche wirkliche Nachteil von Bedrock liegt im doch sehr hohen Platzbedarf, sobald Sie mehr als ein oder zwei zusätzliche Distributionen nutzen. Ob dies tatsächlich einen Nachteil für Sie darstellt, müssen Sie selbst entscheiden. Würden Sie die einzelnen Distributionen sowieso auf realer Hardware oder in einer virtuellen Umgebung installieren? Dann sparen Sie mit Bedrock sogar eher etwas Platz. Zudem kostet Plattenplatz heutzutage nicht mehr sonderlich viel, sogar größere SSDs sind über die letzten Jahre in erschwingliche Preisregionen gerückt.
Damit Bedrock Spaß macht, sollten Sie sich durch die Lektüre der Dokumentation vorab schon einmal möglichst nahe mit den darunterliegenden Konzepten anfreunden. Liegt Ihnen das nicht und legen Sie lieber sofort los, dürfte Ihnen Bedrock weniger zusagen. Bei Fragen liefert nicht nur die ausführliche Dokumentation hilfreiche Antworten, sondern auch der aktive und freundliche IRC-Kanal. Diesen erreichen Sie im Freenode-Netzwerk unter dem Namen #bedrock.
Den Entwickler treffen Sie dort unter dem Pseudonym paradigm täglich an. Schreiben Sie ihm eine persönliche Nachricht, kann es aufgrund der Zeitdifferenz zwischen Europa und den USA zu Wartezeiten kommen, Sie erhalten aber auf jeden Fall eine Antwort. Falls Sie keinen IRC-Client benutzen, finden Sie auf der Webseite unter External Links einen Direktverweis per Webchat.
Infos
[1] Bedrock: http://bedrocklinux.org/index.html
[2] Einleitung: http://bedrocklinux.org/introduction.html
[3] FAQ: http://bedrocklinux.org/faq.html
[4] SELinux deaktivieren: http://www.crypt.gen.nz/selinux/disable_selinux.html
[5] Chroot: https://de.wikipedia.org/wiki/Chroot
[6] Bind-Mount: http://unix.stackexchange.com/questions/198590/what-is-a-bind-mount
[7] Quick Start: http://bedrocklinux.org/1.0beta2/quickstart.html
[8] Konzepte: http://bedrocklinux.org/1.0beta2/concepts.html
[9] Rezepte: http://bedrocklinux.org/1.0beta2/strata.html
[10] Global Stratum: http://bedrocklinux.org/1.0beta2/concepts.html#global-stratum
[11] Befehle: http://bedrocklinux.org/1.0beta2/commands.html
[12] Pläne: http://bedrocklinux.org/1.0beta3/plans.html






