64Bit

Aus Luffi
(Weitergeleitet von 64 Bit)
Wechseln zu: Navigation, Suche
Was ist Luffi?

Beschreibung

Mehr ist besser: 64 versus 32 Bit - in der Praxis

Wenn Sie etwas mehr wissen wollen, wie sich 64 Bit Systeme im täglichen Leben bewähren, sind Sie hier richtig. Leider wird es hier technisch, denn wenn Sie mehr wissen wollen als Ihnen die vereinfachten Werbesprüche zu diesem Thema erklären, sollten Sie etwas Hintergrundwissen ansammeln und dann entscheiden, ob Sie sich auf dieses Abenteuer einlassen wollen.

Exkurs: Warum gibt es diese Unterscheidung überhaupt?

Computer haben bei der Verarbeitung von Daten eine bestimmte "Schrittweite", was die Größe von zusammenhängenden Daten betrifft. Diese Schrittweite bestimmt, wieviele Bits ein einem Verarbeitungsschritt vom Hauptprozessor gleichzeitig bearbeitet werden können. Bei den ersten Computern war diese 8 Bit, danach kamen 16, bis vor kurzem war 32 der Stand der Dinge, und per jetzt drängt sich 64 Bit auf den Markt. Sowohl das Betriebssystem als auch Programme müssen sich an diese Gegebenheiten anpassen, und das ist mitunter ein schwieriger Prozess - und entgegen anders lautender Meinungen nicht automatisierbar. Daher bieten sowohl Computerprozessoren wie auch das Betriebssystem Emulationsmodi für die Übergangszeit an - mehrere Hunderttausende Zeilen an Quellcode können in der Regel nicht von heute auf Morgen umgeschrieben werden.

Wo kann es Probleme geben?

Probleme gibt es vor Allem, aber nicht ausschließlich, bei der Adressverwaltung innerhalb eines Programmes. Ein Programm lebt üblicherweise von Daten, die im Hauptspeicher eines Rechners für dieses Programm bereitliegen. Diese Daten werden eingespeichert, verarbeitet und wieder ausgegeben. Dazu muss ein Programm aber erst einmal wissen, wo seine Daten sind, und es muss in der Lage sein diese anzusprechen. Zu diesem Behufe heben sich Programme die Adressen ihrer Daten in sogenannten "Pointern" auf. Ein "Pointer" kann aber nur maximal so viele Bits haben, wie es der Computer-Hauptprozessor erlaubt und wofür das Computerprogramm zum Zeitpunkt seiner Erstellung ausgelegt wurde. Ein Programm, das mit 32-Bit Pointern rechnet, kann keine 64-Bit Pointer verwenden, auch wenn es die CPU vielleicht unterstützen würde. Umgekehrt wäre aber auch ein Programm, das vorsorglich seine Pointer auf 128 Bit speichert, auf einer 64-Bit CPU nicht lauffähig (in diesem Fall bringt die Vorsorge also nichts).

Naja, dann bleiben wir halt bei 32 Bit, wenn es so schwierig ist?

Auch das klappt auch lange Sicht nicht. Auf einem System laufen immer mehr und aufwändigere Programme, und wenn diese ihre Daten mit 32-Bit Pointern ansprechen, bleiben sie in den "unteren 4 Gigabyte" des Hauptspeichers eingesperrt. Noch ist die Situation nicht dramatisch, aber wenn die Entwicklung der Software so weitergeht wie bisher, wird auch dieser Platz nicht lange ausreichen. Vor gar nicht allzu langer Zeit hat ein nicht unbedeutender Entwickler in der Softwarebranche felsenfest behauptet, dass 640 Kilobyte Hauptspeicher für alle Zukunft ausreichen würden - heute verbraucht alleine das vom selben Mann mitentwickelte Betriebssystem 800 Megabyte Hauptspeicher im Ruhezustand (also das mehr als Tausendfache der damaligen Prognose). Die Tendenz dabei ist stark steigend.

Dann stellen wir eben um!

Wenn es so einfach wäre... Erstens ist der Aufwand für das Umschreiben von Programmen nicht zu unterschätzen, und zweitens sind auf 64 Bit angepaßte Programme unter einem 32-Bit System nicht lauffähig (umgekehrt sehr wohl!). Momentan laufen etwa 40% der Windows-Rechner unter einem 64 Bit Betriebssystem - 60% der Benutzer einfach ausschließen? Programmcode zu schreiben, der sich sowohl auf 32 wie auch auf 64 Bit abstellen läßt bedeutet noch mehr Aufwand... Eine Möglichkeit, das relativ leicht zu tun, ist im Übrigen die Verwendung einer interpretierten Zwischen-Plattform wie beispielsweise DotNet oder Java - aber dann haben Sie die Schwierigkeit dass Sie diese Zwischenplattform erstmal installieren müssen, dass die Performance eines Interpreters (doch, nichts anderes ist DotNet!) üblicherweise suboptimal ist, und dass Sie möglicherweise bestimmte Systemfeatures gar nicht ansprechen können.

So, jetzt bin ich verwirrt, soll ich jetzt 64 Bit verwenden oder nicht?

Wie immer in Umstellungszeiten sollten Sie für sich selbst entscheiden, was für Sie selbst am Wichtigsten ist. Im Moment ist noch 32 Bit der Stand der Dinge, die Programme dafür sind bekannt und bewährt. Glauben Sie bitte nicht, dass es bei Neuerstellungen auf dem 64-Bit Bereich keine Kinderkrankheiten gibt - sie brauchen Zeit und Geduld auf diesem Sektor.

Folgenden Gerüchten sollten Sie allerdings keinen Glauben schenken:

64 Bit ist schneller.

NEIN. Die Geschwindigkeit der Verarbeitung hängt nicht von der zusammenhängenden Bitgröße ab. Von der Prozessorgeschwindigkeit, ja; von der Taktung der RAM-Bausteine, ja; aber nicht von der Bitgröße. Vorteile haben Sie nur dort zu erwarten, wo vorher schon 64 Bit am Stück angesprochen wurden, die jetzt auf einmal nur mehr einen Verarbeitungsschritt statt zweien brauchen - die Zahl der Anwendungen die derartiges tun dürfte verschwindend gering sein.

32-Bit Programme laufen auf 64-Bit Plattformen langsamer.

Genauso wenig. Es hält sich hartnäckig das Gerücht, dass 32-Bit Programme auf 64-Bit Rechnern emuliert werden müssen. Dieser Irrglaube kommt meistenteils noch von der Umstellung von 16 auf 32 Bit, wo Pointer auf einem Intel-Kompatiblen Rechner noch als 16-Bit Selektor/Offset gespeichert wurden und daher auf damals moderneren Rechnern tatsächlich im sogenannten "Protected Mode" emuliert werden mussten. Diese Unterscheidung gibt es bei dieser Umstellung nicht mehr. Hier werden die oberen 32 Bit eines Pointers ganz einfach nicht benutzt und das war's.

Eine gute Analogie zu dieser Aussage wäre die Behauptung, dass ein Auto mit 4 Sitzen langsamer fährt wenn es nur von zwei Leuten benutzt wird. Man könnte (und das durchwegs mit Recht) in diesem Fall sagen, dass das Auto vermutlich sogar schneller fahren wird weil es leichter ist - diese Annahme gilt durchwegs! 32-Bit Programme sind durch ihr "Leichtgewicht" auf 64-Bit Plattformen tatsächlich um etwa 10 bis 20% schneller als ihre 64-Bit Pendants (abhängig natürlich von Programmierung und Funktion).

Mit 64 Bit kann ich mehr Arbeitsspeicher verwenden.

Das ist endlich einmal ein Gerücht mit etwas Wahrheitswert, allerdings hilft Ihnen diese Annahme erst ab einem Arbeitsspeicher von etwa 6 Gigabyte. Extrem viele Anweisungen in Programmen haben mit Adressmanipulationen zu tun, die bei 64 Bit plötzlich den doppelten Platz beanspruchen - daher sind 64-Bit Programme a priori einmal nur eins: Größer. Ihr "Mehr" an Hauptspeicher wird bis zu einer gewissen Schwelle von den plötzlich größeren Programmen konsumiert; mehr noch, es müssen höchstwahrscheinlich Teile eines 32-Bit Windows zusätzlich zum 64-Bit Systemkern laufen (irgendein 32-Bit Prozess läuft immer - sehen Sie ruhig im Task-Manager nach!) - das belastet den Hauptspeicher ebenfalls enorm. Ebenfalls nicht zu unterschätzen ist die Tatsache, dass durch die 64-Bit Ausrichtung aller Datenstrukturen auf einmal nicht zu unterschätzende "Löcher" im Hauptspeicher entstehen (wenn ein Byte alleine angesprochen wird, kann das nächste einzelne Byte erst sieben weitere Bytes weiter im Hauptspeicher stehen - derart ausgelegte Datenstrukturen verwendet das "gewachsene" Windows leider allzu oft).

Was Sie unterm Strich ebenfalls bedenken sollten, und was kausal erst einmal wenig mit der Umstellung an sich zu tun hat:

Microsoft hat für seine 64-Bit Plattformen eine "Zwangssignatur" für alle Treiber eingeführt. Das heißt im Klartext, dass Sie zusätzliche Geräte für Ihren Rechner nur dann verwenden können, wenn diese entweder von Microsoft stammen oder der Hersteller des Gerätes (zumeist) ein entsprechendes Entgelt an diese Firma abgeführt hat, vorher bekommt er diese Signatur nämlich nicht und das Gerät läßt sich nicht verwenden. Wie Sie diese Aussage interpretieren (sie stimmt und ist jederzeit verifizierbar - sehen Sie im Internet nach!) bleibt Ihnen überlassen; aber gehört sollten Sie es zumindest haben.