Nested X-Server mit Rootless-Mode, Marke Eigenbau!

Mac OS bringt einen eigenen X-Server mit, der sich mehr oder weniger gut in die Umgebung einfügt, und standardmäßig Rootless ist. Für Windows gibt es Cygwin/X, ebenfalls mit Rootless Mode.

Nun, unter Linux braucht man normalerweise soetwas nicht, denn Linux verwendet standardmäßig X11 für alles, und hat damit immer ein Root-Window, nämlich den gesamten Bildschirm. Trotzdem – X11 ist ein sehr flexibles Protokoll, aber es ist nicht darauf ausgelegt, verschiedene X11-Anwendungen gegeneinander abzusichern. It’s not a bug, it’s a feature, denn letztendlich werden durch solche Dinge Window-Manager, XEmbed und einige andere Dinge die das Programmieren dann letztendlich doch erleichtern, erst ermöglicht. Und damit ist es auch zumindest schon mal nicht schlechter als Windows, denn die WinAPI hat auch Aufrufe, um auf fremde Fenster zuzugreifen und diese zu verändern.

Arbeitet man nun aber mit X-Forwarding an Rechnern, bei denen eventuell widerborstige Schelme seltsame Dinge tun können, so kann es nützlich sein, die auf diesen Rechnern gestarteten Programme möglichst weitgehend von den lokalen Programmen zu trennen. Dafür wurde Xnest erfunden. Man bekommt ein nettes kleines Fenster, in dem alle entfernten Anwendungen fröhlich Zeichnen, allerdings ohne meine lokalen Anwendungen beeinflussen zu können. Sehr praktisch, und in gewissen Situationen will man das auch genau so haben.

Einen Schritt weiter geht Xephyr, ein vollwertiger X-Server (anders als Xnest, welches das Ganze hauptsächlich filtert) innerhalb des X-Servers. Da X-Forwarding über das Internet, in dem es zwar inzwischen meist hohe Geschwindigkeiten aber eben auch oft lange Latenzzeiten gibt, teilweise eine Tortur ist, kann man sich Xephyr bedienen, und die Composite-Extension aktivieren. Dadurch verhindert man häufiges Redrawen von Grafik, die bereits übertragen wurde.

Besonders schnell geht es natürlich mit NX. Für NX braucht man allerdings Rootrechte auch auf dem Server, bzw. nxproxy für den Rootless-Mode, der aber letztendlich dann wiederum keine Abschottung der Programme liefert, womit man wieder am Anfang ist, und im Grunde wieder sowas wie XNest benötigt.

Nun arbeitet man als Student aber häufig auf Rechnern, bei denen man keine Rootrechte hat. Im Grunde sollte es leicht sein, ein XNest- oder Xephyr-Adäquat zu schreiben, das nested und rootless ist (und vielleicht sogar noch nx nutzen kann) – denn unter Windows und Mac OS geht es auch, obwohl X11 nichtmal wirklich zu diesen Systemen gehört.

Nun, zum Glück gibt es VirtualBox. VirtualBox von Sun hat für Linux z.B. Guest Extensions für den Natlosen Modus. Damit kann man zum Beispiel ein Windows unter Linux laufen lassen, und die Fenster direkt nutzen. Und natürlich auch ein Linux unter Linux. Und das ist die Lösung:

Installiere ein Linux unter einer VirtualBox. Installiere die VirtualBox Guest Extensions. Installiere einen ssh-client. Installiere die Composite-Extension. Dann am Besten noch einen minimalistischen Window-Manager, der sich schon einbetten lässt. Und fertig ist der Rootless Nested X-Server. Man kann sogar nxproxy verwenden. Ist das nicht wundervoll?

(Ja, dieser Post ist ironisch gemeint!)

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: