Wie kann ich die ausführbare Datei ohne bestimmte CPU-Flags ausführen?
300
bbc
Ich möchte das Verhalten eines Linux ELF ausführbare Datei auf einem Prozessor testen, die nicht einige CPU - Flags wie hat aes
und sse2
einen Prozessor gegeben, die diese Flags hat. Was ist der einfachste Weg, das Fehlen bestimmter Flaggen nachzuahmen?
Ich gehe davon aus, dass ich im schlimmsten Fall eine virtuelle Maschine hochfahren kann, die einen realen Prozessor emuliert, der diese Flags nicht hat, aber vielleicht gibt es einen einfacheren und allgemeineren Weg. Das wäre zum Beispiel für die kontinuierliche Integration nützlich.
Bei der Virtualisierung können Sie normalerweise nicht die Art der CPU auswählen. Am einfachsten wäre es, Compile-Flags zu verwenden.
Seth vor 6 Jahren
0
Einige Virtualisierungsplattformen wie Qemu ermöglichen dies tatsächlich. In Bezug auf die Kompilierungsflags sind sie hier außerhalb des Gültigkeitsbereichs, da der Punkt dafür sorgt, dass sich dieselbe Binärdatei auf verschiedenen Prozessoren gut verhält.
bbc vor 6 Jahren
0
Interessant zu wissen. Du hast also schon eine Lösung (qemu)? Trotzdem müssen Sie berücksichtigen, dass die tatsächliche Emulation anderer Architekturen Auswirkungen auf die Leistung haben wird. Genau wie die Belichtung von Features. Was interessiert Sie eigentlich am Testen? Warum erwarten Sie, dass sich das Programm anders verhält?
Seth vor 6 Jahren
0
Ich habe leider keine Lösung zur Hand. Mein Programm sollte AES-Anweisungen verwenden, falls verfügbar, und auf eine Softwareimplementierung zurückgreifen. Das entsprechende Flag ist "aes" (zum Beispiel in / proc / cpuinfo unter Linux).
bbc vor 6 Jahren
0
Der [AES-Befehlssatz] (https://en.wikipedia.org/wiki/AES_instruction_set) geht auf das Jahr 2008 zurück. Die ersten CPUs, die es unterstützen, scheinen im Jahr 2010 zu sein. Wenn Sie kein qemu einrichten und keine Compile-Flags verwenden möchten, ist es am einfachsten, ein älteres System zu finden. Wenn Sie für jeden Fall separate Pfade haben, testen Sie sie einfach separat und gehen davon aus, dass Sie Works überprüfen (schließlich erkennt es, dass die Erweiterung verfügbar ist). Es kann auch möglich sein, etwas mit seccomp zu machen, aber ich bin mir wirklich nicht sicher, ob Arbeiten / tatsächlich möglich sind, aber es lohnt sich vielleicht, wenn man sich mehr mit syscall fokussiert
Seth vor 6 Jahren
0
0 Antworten auf die Frage
Verwandte Probleme
-
9
Was ist der Unterschied zwischen den Befehlen "su -s" und "sudo -s"?
-
4
Gutes freies Ubuntu Server-VMWare-Image benötigt
-
4
Was sind die Unterschiede zwischen den großen Linux-Distributionen? Werde ich es merken
-
2
Begrenzung der CPU-Auslastung für Flash in Firefox?
-
2
Wie kann ich mein Mikrofon unter Debian GNOME zum Laufen bringen?
-
2
Conky-Setups - Beispiele / Ideen?
-
3
Was sind die Unterschiede zwischen Linux Window Managern?
-
2
ThunderBird / Lichtsynchronisation mit SE k770i
-
4
Linux-Dateisystem
-
6
Vollbild-Flash langsam in KDE 4