Koalitionen

Fri, 04 Sep 2009 17:30:22 +0000

Gestern hat mich ein Bekannter auf eine sehr interessante Tatsache aufmerksam gemacht, die ich meinen werten Lesern natürlich nicht vorenthalten will.  Sie ist eigentlich banal, aber sie muss einem eben auffallen.

Im Moment gehen ja wieder die ganzen Koalitions-Prognosen in einigen Bundesländern los. Wie in letzter Zeit häufiger ist es wieder so, dass keine Koalition so richtig das Wahre ist, irgendwie hat immer irgendein Teilnehmer etwas dagegen oder muss ein Versprechen brechen oder zumindest lockern. Da ist man doch froh über jedes Fünkchen Sicherheit, das man haben kann. Und tatsächlich, es gibt sichere Aussagen, die man bereits nach Bekanntgeben des Wahlergebnisses machen kann.

Nehmen wir zum Beispiel eine beliebige, rechnerisch mögliche Koalition. Sie muss nur rechnerisch möglich sein, ob sie politisch möglich ist, ist vollkommen egal. Also auch eine Koalition aus NPD, Linkspartei, Grünen und FDP, die die absolute Mehrheit bekäme, wäre erlaubt (da ja leider die NPD in einigen Landtagen vertreten ist. Hoffentlich passiert das nicht auch dem Bundestag). Dann kann man sicher sagen, dass eine der Parteien aus dieser Koalition später in der Regierungskoalition sein wird – zumindest wenn man davon ausgeht, dass sich keine Minderheitenregierung bilden wird, und es keine Neuwahlen gibt (was ja in letzter Zeit auch ein zu unseltenes Ereignis wurde, aber eigentlich ja nicht vorgesehen ist).

Mathematisch lässt sich dies so leicht beweisen, dass es wohl auch jeder Normalsterbliche versteht, zumindest wenn man es etwas weiter als gewöhnlich ausformuliert, was ich hier mal versuche. Die Situation, die sich – formal betrachtet – ergibt ist, dass wir (gebrochene) Zahlen a1, a2, …, an zwischen 0 und 1 haben, sodass a1+a2+…+an=1 gilt. Das sind die Anteile der n Fraktionen an Sitzen. Wenn eine Partei also 50 Sitze von 200 zu Vergebenden bekommt, ist ihre Zahl beispielsweise 0,25. Eine Koalition hat die absolute Mehrheit, wenn sie mehr als die Hälfte der Sitze hat, also wenn die Summe ihrer Anteile größer ist als 0,5. Nehmen wir an, die Parteien a1 bis ai für i<n könnten eine Koalition bilden, also a1+…+ai>0,5. Dann ist jede Summe aus restlichen Anteilen kleiner als 0,5, denn die Gesamtsumme aller Parteien ist 1, wenn man aber von 1 eine Zahl abzieht, die größer als 0,5 ist, erhält man eine Zahl, die kleiner ist als 0,5. Also muss an einer Regierungskoalition mindestens eine der ersten i Parteien beteiligt sein. Da die Reihenfolge der Anteile keine rolle Spielt, gilt die Aussage für jede rechnerisch mögliche Koalition.

Ist das nicht nett? Vor Allem die Folgen daraus. Hier hab ich zum Beispiel mal die vorläufige Sitzverteilung in Thüringen gefunden. Demnach hat Thüringen 88 Sitze zu vergeben. Die Linke bekommt davon 27, die SPD 18. 27+18=45, das wäre eine rechnerische Regierungskoalition. Das heißt, schon jetzt ist sicher, dass eine der beiden Parteien Linke bzw. SPD an der Regierungskoalition – falls sich denn eine bilden wird – beteiligt sein wird.

Advertisements

Virtualisierung – Vor- und Nachteile

Fri, 04 Sep 2009 02:22:51 +0000

Unter Mac OS sind Virtualisierungslösungen, so kommt es mir vor, erheblich bekannter, da es hier viele Leute gibt, die ihre Windows-Anwendungen gerne unter Mac OS laufen lassen könnten. Und so gibt es sehr viele Möglichkeiten, ein fremdes System zu installieren. Einige davon kosten sogar Geld.

Mein Lieblings-Virtualisierer ist wohl immernoch VirtualBox. Kostenlos für den Privatgebrauch, und leistet gute Dienste. Inzwischen habe ich aber auch Parallels Workstation und VMWare Fusion ausprobiert. Mir sagt VMWare Fusion ein wenig mehr zu (zumal dort ein Spiel funktioniert, das unter Parallels nicht so gut funktioniert), aber … hm … bezahlen würde ich eigentlich für beides nichts, denn die Unterschiede betreffen ein paar Schmankerl wie Dock-Icons für Windows-Anwendungen, und eben die Tatsache dass man unter Parallels und VMWare momentan ganz passabel Spiele spielen kann, was unter VirtualBox noch nicht ganz so gut geht (aber sicher auch bald kommen wird, sie arbeiten ja schon daran).

Weiterhin kann man schön seine Linuxe und Solarise zum Laufen bringen, alles schön integriert auf einem Desktop. Klingt eigentlich ganz nett. Man muss sich nicht mehr für ein Betriebssystem entscheiden, und wenn man das Glück hat gerade Student zu sein und Software nachgeschmissen zu bekommen, kann man fast jedes Programm ausführen, ohne auf Kompatibilität zu achten. Das Ganze geht sogar soweit, dass Consumer-PCs jetzt schon Erweiterungen bekommen, sodass man auf ihnen besser virtualisieren kann.

Nun, ich habe ja bereits im Serverbereich die Virtualisierung kritisch gesehen. Klar, es klingt schön, einen großen Server in kleine Server aufzuteilen, für verschiedenste Nutzer. Aber letztendlich hat für soetwas Linux (und allgemein Unixoide Systeme) ein komplexes Berechtigungensystem, mit dem man Vergleichbares erreichen könnte. Das Problem hierbei ist nur, dass die Software nicht mehr darauf ausgelegt ist. Ein Webserver will eben nunmal irgendwie ein eigener Process mit eigenen Berechtigungen sein. Und er will natürlich auf Port 80 lauschen, was man als non-root nicht kann.

Aber immerhin, im Serverbereich teilt man einen Server in sinnvolle Einheiten ein, und Virtualisierung kann auch sehr praktisch sein, Backuptechnisch zum Beispiel, oder wenn man Experimente machen will.

Für Letztere eignet sich Virtualisierung natürlich auch im Desktop-Bereich. Ich will etwas ausprobieren, zum Beispiel ein Kernelmodul das ich gerade geschrieben habe, was eignet sich besser dazu, als eine virtualisierte Umgebung?

Bleibt die Frage, wozu der normale Mensch, der keine Kernelmodule oder Portierungen schreibt, und nicht ein spezielles Interesse um der Betriebssysteme Willen hat, sondern einfach nur seine Programme nutzen will, Virtualisierung braucht. Virtualisierung produziert Overhead, und ist nichttrivial. Die ganzen „Einbettungen“ von VirtualBox, VMWare und Parallels funktionieren – solange bis irgendetwas nicht perfekt läuft. Und das kann schnell mal vorkommen. Denn Windows ist nicht dafür gedacht, virtualisiert zu werden. Es ist darauf ausgelegt, auf einem Computer zu laufen. Es ist ein Betriebssystem. Virtualisierung degradiert es zu einer Laufzeitumgebung, eher sogar zu einer Programmbibliothek.

Klar, letztendlich ist ein Betriebssystem auch im normalen Umfeld soetwas wie eine Programmbibliothek. Es abstrahiert Hardwarezugriffe. Diese Aufgabe ist aber erheblich unterschiedlich von der Aufgabe normaler Programmbibliotheken, die z.B. zur Unterstützung irgendwelcher Protokolle oder Dateiformate programmiert wurden.

Wenn man schon soetwas will, ist dann ein Projekt wie Wine am Sinnvollsten. Es passt die bereits verfügbare Laufzeitumgebung an. Im Grunde ist es das, was man will. Es setzt nur bei einer etwas höheren Abstraktionsebene an. Eine Laufzeitumgebung für Windows-Programme zu erzeugen, ohne gleich einen ganzen virtuellen PC zu haben, ist sicherlich aufwendig aber möglich. Und wäre wohl – mal abgesehen davon, die Programme gleich sauber und plattformunabhängig zu schreiben – die sinnvollste Möglichkeit.

Aber gut, sinnvolle Möglichkeiten setzen sich selten durch. Und so hoffe ich, dass Sun Virtualbox weiterentwickeln wird, sodass es mehr Spiele unterstützt. Sollte das irgendwann gehen, hoffe ich, dass ReactOS sich um DirectX-Kompatibilität bemüht, sodass man vielleicht irgendwann ohne Windows auskommt, und trotzdem sehr viele Spiele spielen kann, die momentan noch nicht Wine-Kompatibel sind.