VirtualBox ist in der Lage auf am Host angeschlossene Festplatten zuzugreifen. Auf diese Weise kann man beispielsweise auf Dateisysteme zugreifen, wenn das Host-OS diese nicht unterstützt. Man braucht dann nur eine VM mit dem passendem OS und fügt zu dieser dann die physische Festplatte hinzu.
Mit einem einzigen Befehl erstellt man eine vmdk-Imagedatei, die das entsprechende Blockdevice repräsentiert.
VBoxManage internalcommands createrawvmdk -filename image.vmdk -rawdisk /dev/sda
Dann kann man in der VirtualBox-GUI eine neue Festplatte hinzufügen und wählt diese vmdk-Datei aus. Wichtig ist noch, dass der User Lese- und Schreibrechte für das Device hat.
Gnome 3 kann mehrere Hintergrundbilder als Slideshow anzeigen. Aber es wäre nicht Gnome, wenn die Einstellungsmöglichkeiten per GUI nicht völlig kastriert wären, denn im entsprechenden Dialog können nur vorgefertigte Slideshows ausgewählt werden.
Also muss man wieder einen Texteditor bemühen, glücklicherweise muss man nur 2 Dateien erstellen. Vorher erstellt man noch 2 Verzeichnisse, falls diese noch nicht existieren.
mkdir -p ~/.local/share/gnome-background-properties
mkdir -p ~/.local/share/backgrounds
Unter ~/.local/share/gnome-background-properties speichert man eine XML-Datei mit beliebigen Namen (z.B. myslideshow.xml) mit folgendem Inhalt:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
<wallpapers>
<wallpaper>
<name>My Slideshow</name>
<filename>.local/share/backgrounds/myslideshow.xml</filename>
<options>zoom</options>
</wallpaper>
</wallpapers>
Dann erstellt man die Datei .local/share/backgrounds/myslideshow.xml in der die eigentlichen Bilder angegeben werden. Hier ein kleines Template dafür:
<?xml version="1.0" encoding="UTF-8"?
<background>
<starttime>
<year>2012</year>
<month>01</month>
<day>01</day>
<hour>00</hour>
<minute>00</minute>
<second>00</second>
</starttime>
<static>
<duration>1800.0</duration>
<file>.local/share/backgrounds/image1.png</file>
</static>
<transition>
<duration>5.0</duration>
<from>.local/share/backgrounds/image1.png</from>
<to>.local/share/backgrounds/image2.png</to>
</transition>
<static>
<duration>1800.0</duration>
<file>.local/share/backgrounds/image2.png</file>
</static>
<transition>
<duration>5.0</duration>
<from>.local/share/backgrounds/image2.png</from>
<to>.local/share/backgrounds/image3.png</to>
</transition>
<static>
<duration>1800.0</duration>
<file>.local/share/backgrounds/image3.png</file>
</static>
<transition>
<duration>5.0</duration>
<from>.local/share/backgrounds/image3.png</from>
<to>.local/share/backgrounds/image1.png</to>
</transition>
</background>
Dürfte relativ selbsterklärend sein. Die Bilder werden in der Reihenfolge angezeigt, in der sie in der Datei gelistet sind. Die Pfade zu den einzelnen Bilddateien können beliebig gewählt werden. Mit einem static
-Element gibt man ein Bild an, dass dann für die gewünschte Dauer angezeigt wird. Übergänge zwischen Bildern können mit den transition
-Elementen gemacht werden.
Hat man alle Dateien wie gewünscht erstellt, kann die eigene Slideshow dann in den Einstellungen für Hintergrundbilder ausgewählt werden.
Vor kurzem hab ich versucht ein kleines Stück Software auf einer exotischen RISC-Plattform zum Laufen zu bringen, doch bei der Ausführung crashte das Programm. Der Grund war Code der in etwa das machte:
int *intptr = (int*)(str + 15);
Um von einer bestimmten Stelle aus einem Speicherbereich ein int
zu lesen wurde ein char*
verschoben und zu einem Integer-Pointer gecasted. Beim anschließenden Zugriff auf diesen Pointer stürzte das Programm ab. Der Grund ist, dass nicht alle CPU-Architekturen beliebig wahllose Speicherzugriffe erlauben, sondern nur auf richtig ausgerichtete Adressen, die ein Vielfaches von n (meistens 4) sind. Siehe Data structure alignment
Jetzt sind allerdings die verbreitetsten CPU-Architekturen x86 und ARM, und die kommen auch mit misaligned Memory klar. Warum sollte man das dann überhaupt beachten? Weil auch wenn es auf diesen CPUs fehlerfrei funktioniert, hat es zumindestens Performance-Auswirkungen. Es werden dann nämlich einfach 2 Speicherzugriffe gemacht. Ich habe ein interessanten Blogpost zu dem Thema gefunden, in dem jemand ein Performance-Test gemacht hat. Das Ergebnis ist, dass im schlimmsten Fall die Speicherzugriffe doppelt so lange dauern.
Wenn man jetzt aber doch auf nicht-ausgerichteten Speicher zugreifen will, kann man immer noch memcpy nutzen, denn das kann die Adresse berichtigen und dann größtenteils optimierte Speicherzugriffe machen.
Gigabit-Ethernet gibt es jetzt schon lange (der Standard für 1000BASE-T ist von 1999) und lange Zeit war es ausreichend, zumindestens im Consumerbereich. Mit einzelnen Festplatten hat man selbst bei sequenziellen Schreib- und Leseoperationen weniger als 100 Mb/s geschafft. Seit ein paar Jahren sieht das jedoch schon anders aus. SSDs sind weit verbreitet und selbst gammelige Festplatten lasten GbE voll aus. Da bald selbst WLAN schneller als 1 Gbit/s ist, wäre es eigentlich an der Zeit, dass sich 10 GbE auch im Consumerbereich durchsetzt.
Aber nein, das passiert wohl nicht. Stattdessen kommt Ethernet mit 2,5 und 5 Gbit/s. Wie heise berichtet gibt es sogar schon ein Switch dafür (allerdings auch nicht Consumertauglich). Der Standard für diese Ethernet-Varianten soll Mitte 2016 fertig sein. Wann es dann noch mehr Hardware gibt, vor allem passende NICs, PCs, Notebooks und Mainboards mit 5 GbE, wird natürlich spannend. Ich vermute erst dann, wenn jeder PCIe-basierte SSDs hat, die locker 1 Gb/s schreiben können und damit schon langsam 10 GbE auslasten.
Aber ich gebe zu, es ist zumindestens ein wenig Fortschritt. Lieber das, als 10 weitere Jahre mit 1 GbE.
Kommentare
Andreas | Artikel: Datenanalyse in der Shell Teil 1: Basis-Tools
Einfach und cool!
Danke Andreas
Rudi | Artikel: Raspberry Pi1 vs Raspberry Pi4 vs Fujitsu s920 vs Sun Ultra 45
Peter | Artikel: XNEdit - Mein NEdit-Fork mit Unicode-Support
Damit wird Nedit durch XNedit ersetzt.
Danke!
Olaf | Artikel: XNEdit - Mein NEdit-Fork mit Unicode-Support
Anti-Aliasing hängt von der Schriftart ab. Mit einem bitmap font sollte die Schrift klassisch wie in nedit aussehen.
Einfach unter Preferences -> Default Settings -> Text Fonts nach einer passenden Schriftart suchen.
Peter | Artikel: XNEdit - Mein NEdit-Fork mit Unicode-Support
Mettigel | Artikel: Raspberry Pi1 vs Raspberry Pi4 vs Fujitsu s920 vs Sun Ultra 45
Ich hatte gedacht, dass der GX-415 im s920 deutlich mehr Dampf hat als der Raspi4.
Mein Thinclient verbraucht mit 16 GB RAM ~11 W idle, das ist das Dreifache vom RP4. Das muss man dem kleinen echt lassen... Sparsam ist er.
Olaf | Artikel: Raspberry Pi1 vs Raspberry Pi4 vs Fujitsu s920 vs Sun Ultra 45
Ergebnisse von der Ultra 80 wären natürlich interessant, insbesondere im Vergleich mit dem rpi1.
kosta | Artikel: Raspberry Pi1 vs Raspberry Pi4 vs Fujitsu s920 vs Sun Ultra 45
ich hätt hier zugriff auf Ultra-80 4CPU 4GB 2x Elite3D.