Rosetta Emulation wie Classic?

OSX0410

OSX0410

Aktives Mitglied
Thread Starter
Dabei seit
18.07.2002
Beiträge
872
Reaktionspunkte
0
Es geht um einen Begriffsstreit: Die eine Partei behauptet, dass die alten Programme auf den neuen Intels als Emulation laufen, ähnlich wie in der Classic-Umgebung . Die andere Seite behauptet, die Simultanübersetzung von PowerPC- in Intel-Code durch Rosetta führt dazu, dass die Programme letztlich doch nativ laufen und der Vergleich mit Classic nicht zulässig sei.
Mit welcher Ansicht blamiert man sich in diesem Forum nicht?
 
Als Rosetta bezeichnet die Firma Apple einen sog. "Dynamic Binary Translator". Dieser ermöglicht unter dem Betriebssystem Mac OS X für PowerPC-Prozessoren compilierten Programmcode auf x86-Prozessoren von Intel auszuführen. Der eigentliche Übersetzungsprozess geschieht dabei transparent im Hintergrund. Dazu wird zunächst der vorliegende PowerPC-Programmcode dekodiert und in ein Zwischenformat übersetzt. Im Anschluss prüft eine sog. "Core Processing Engine" den Programmcode daraufhin, wie schnell die Software im neuen Format arbeiten kann. Schließlich konvertiert die Software den Programmcode in eine Form, die ihn auf x86-basierten Prozessoren lauffähig macht. Rosetta wurde entwickelt von der Firma Transitive Technologies, die schon seit einigen Jahren Konvertierungsprogramme für unterschiedliche Prozessoren anbietet.

http://de.wikipedia.org/wiki/Rosetta_(Apple)
 
Und wie wird von OSX nach OS 9 (also in die Classic-Umgebung) übersetzt? Ist dieser Vorgang vergleichbar?
 
Ich denke, man kann Rosetta nicht mit Classic vergleichen. Wäre dem so, dann würden Programme wie Photoshop 6 direkt unter Max OS X laufen und man müsste nicht erst eine Classic-Umgebung "gebootet" werden. Ausserdem stünden dann auch die Systemkomponenten (Drucker usw.) direkt unter Classic zur Verfügung - dem ist aber nicht so.

Also Rosetta ist in diesem klassichen Sinn für mich nicht vergleichbar mit Classic, da die Programme (Universal Binaries) auf beiden System (PowerPC und intel) immer NATIV laufen.
 
Nach Aussage von Apple ist Rosetta für den Benutzer absolut transparent.
Mit anderen Worten heisst das, dass der Benutzer nicht merkt, ob Rosetta "aktiv" ist oder nicht.
Bei Classic ist das ja anders, man sieht z.B. an den Menüs, dass ein Programm in Classic läuft.

Schon allein aus diesem Grund kann man die beieden Technologien nicht gleichsetzen.

Außerdem ist Rosetta auf einer viel tieferen Ebene angesiedelt als Classic nämlich sehr nahe an der Schnittstelle zur Hardware.
 
Classic emuliert nichts - classic code laeuft ohne jede Einschraenkung nativ auf dem PPC Prozessor.

Rosetta ist eher mit VPC vergleichbar - der PPC programm code wird vor der Ausfuehrung umgewandelt damit er auf einem x86 Prozessor laufen kann, der einen anderen Befehlsatz erwartet
 
Classic ist nur dann eine Emulation, wenn Du in Classic alte 68k Programme aufruftst. Neuere Classic Programme sind ja auch PowerPC Applikationen, der Gewschwindigkeitsverlust ist also nicht sehr gross.

Bei Rosetta ist vor allem das mit dem Geschwingdigkeitsverlust ganz anders. Das ist mir jetzt egal ob das jetzt als "Nativ" definiert wird: Programme in Rosetta laufen nicht mit "voller Geschwindigkeit"

Alex
 
Aber eben darum ging es in dem Streit: Laufen die Programme nativ oder nicht. Als Unwissender habe ich es immer so verstanden: Programme, die emuliert werden, laufen nicht nativ. Wenn man jetzt aber sagen kann: Die Programme werden durch die Emulation durch Rosetta zum nativ-laufen gebracht, haben irgendwie alle Recht.
Also: Ist es richtig, dass die Programme sowohl unter Intel als auch PPC Przessoren nativ laufen? Und das das durch Rosetta bewerkstelligt wird?
 
die laufen nicht nativ, die werden dynamisch (=in kleinen stücken, mit caching von loops) umkompiliert....
wenn die nativ laufen würden, müssten die nicht umkompiliert werden...
 
Eine Emulation hält eine Umgebung bereit in dem Programme ohne jegliche Änderung laufen. Siehe Windows in VPC. VPC ist eine native PPC-Anwendung und stellt dem Windows eine i386er Umgebung zur Verfügung.
Rosetta funktioniert anders. Es nimmt das PPC-Programm und übersetzt dieses in Realtime (wie schnell diese Übersetzung wirklich geht hängt natürlich vom Programm ab) Photoshop ist nicht optimal für diesen Prozess und arbeitet daher langsamer. Es gibt aber Programme die sehr gut zu übersetzen sind und die laufen dann fast so schnell wie ein natives als Universal Binary vorliegendes Programm. :cool:
 
Ah, daher ist natürlich auch Classic eine Emulation, da auch Classic eben eine Umgebung ist.

Danke für die Definition pdr!

Alex
 
da würde ich nicht ganz zustimmen, emulationen können auch dynamische rekompilierer sein (Qemu z.B. )...
das einzige was rosetta davon unterscheidet ist, dass es transparent ist...
 
Sorry OneNight, aber auch Qemu stellt eine Umgebung bereit in der die Intel-HW emuliert wird wo Du dann ein Windows installieren muß um dann entsprechende Windows-Programme ausführen zu können. Mir ist kein Programm bekannt, welches sozusagen win Windows-Programm nimmt und dann in PPC-Code übersetzt. Rosetta kann ja auch nur funktionieren, da die Programme das auf beiden Plattformen exakt gleiche Framework benutzen und die dann noch vorhandenen Plattformspezifischen Sahen übersetzt werden müssen (einfach ausgedrückt). Deswegen bereiten ja auch PPC-Programme die von Altivec grebrauch machen besonders große Probleme, da es hierfür kein Gegenstück gibt auf der Intelseite. :cool:
 
Qemu emuliert nicht zwangsläufig die hardware...
dafür gibt es auch einen accelerator, damit die hardware direkt genutzt wird...

und altivec hat sehr wohl ein gegenstück auf intel (SSE2/3), das soll rosetta doch inzwischen auch übersetzen...
 
below schrieb:
Ah, daher ist natürlich auch Classic eine Emulation, da auch Classic eben eine Umgebung ist.

Danke für die Definition pdr!

Alex

Nein - classik ist keine Emulation im Sinne von VPC oder Rosetta. Es wird kein program code konvertiert oder uebersetzt oder sonst irgendwie verbogen.

Emulation bedeutet nicht Umgebung
 
below schrieb:
Ah, daher ist natürlich auch Classic eine Emulation, da auch Classic eben eine Umgebung ist.

Danke für die Definition pdr!

Alex
So ist es. :p
 
lundehundt schrieb:
Emulation bedeutet nicht Umgebung

OK, dann streiten wir uns mal wie in der Uni:

Welche Definitionen für "Emulation" habt ihr? Wer hat diese Definitionen aufgestellt?

Sonst können wir auch sagen: Emulation ist etwas, in dem Emulgator drin ist ;)

Alex

EDIT: Ja, ich weiss das es dann eine Emulsion wäre
 
The process of using a computer program to mimic the behaviors of another computer program, operating system, or piece of hardware.

Das ist unter Classik nicht der Fall. Ich kann meinen Dual G4 MDD unter Classic Starten oder ich kann Classic in einer eigenen Laufzeitumgebung unter OS X nativ auf dem gleichen Prozessor laufen lassen auf dem auch OS X laueft ohe das da eine Zeile code fuer verbogen werden muesste.
 
Zurück
Oben Unten