setarch - ändert die vom System gemeldete Architektur
und/oder setzt neue Personalisierungs-Schalter.
ÜBERSICHT
setarch [Arch] [Optionen] [Programm
[Argumente…]]
setarch --list|-h|-V
arch [Optionen] [Programm
[Argument…]]
setarch verändert Ausführungsdomänen
und Personalitätsschalter von Prozessen.
Die Ausführungsdomänen beeinflussen derzeit nur die
Ausgabe von uname -m. Beispielsweise sorgt der Aufruf von
setarch i386 Programm auf einem AMD64-System dafür,
dass das Programm den Rechnertyp als i686 sieht (oder eine
andere relevante Architektur) anstelle von x86_64. Es
ermöglicht außerdem das Setzen verschiedener
Personalisierungsoptionen. Das vorgegebene Programm ist
/bin/sh.
Seit Version 2.33 ist das Befehlszeilenargument arch
optional und setarch kann zur Veränderung der
Personalitätsschalter (ADDR_LIMIT_*, SHORT_INODE, usw.) ohne
Änderung der Ausführungsdomäne verwandt werden.
- --list
- listet die Architekturen auf, die setarch kennt. Ob allerdings
setarch tatsächlich eine bestimmte dieser Architekturen
setzen kann, ist von dem laufenden Kernel abhängig.
- --uname-2.6
- sorgt dafür, dass das Programm einen Kernel mit einer
Versionsnummer sieht, die mit 2.6 beginnt. Schaltet UNAME26 ein.
- -v, --verbose
- Ausführlicher Modus.
- -3, --3gb
- gibt an, dass Programm einen maximalen Adressraum von 3 GB belegen
soll. Unterstützt auf x86. Schaltet ADDR_LIMIT_3GB ein.
- --4gb
- Diese Option hat keinen Effekt. Sie wird nur aus Gründen der
Rückwärtskompatibilität unterstützt und kann
in zukünftigen Veröffentlichungen entfernt werden.
- -B, --32bit
- begrenzt den Adressraum auf 32 Bit, um Hardware zu emulieren.
Unterstützt auf ARM und Alpha. Schaltet ADDR_LIMIT_32BIT ein.
- -F,
--fdpic-funcptrs
- behandelt Funktionszeiger des Anwendungsraums auf Signal-Handler als
Zeiger auf Adressdeskriptoren. Diese Option hat auf Architekturen, die
keine FDPIC-ELF-Programme unterstützen, keinen Effekt. In Kernel
v4.14 ist die Unterstützung auf die CPU-Architekturen ARM,
Blackfin, Fujitsu FR-V und SuperH beschränkt.
- -I,
--short-inode
- Veralteter Fehleremulationsschalter. Schaltet SHORT_INODE ein.
- -L,
--addr-compat-layout
- stellt das alte Layout des virtuellen Adressraums bereit. Verwenden Sie
dies, falls das Programm nicht über den
PT_GNU_STACK-ELF-Header verfügt. Schaltet ADDR_COMPAT_LAYOUT
ein.
- -R,
--addr-no-randomize
- deaktiviert die Randomisierung des virtuellen Adressraums. Schaltet
ADDR_NO_RANDOMIZE ein.
- -S,
--whole-seconds
- Veralteter Fehleremulationsschalter. Schaltet WHOLE_SECONDS ein.
- -T,
--sticky-timeouts
- Dies führt dazu, dass die Systemaufrufe select(2),
pselect(2) und ppoll(2) den Wert der
Zeitüberschreitung beibehalten, anstatt ihn so zu verändern,
dass er die Zeit wiedergibt, die während einer Unterbrechung durch
einen Signal-Handler nicht geschlafen wurde. Verwenden Sie dies, wenn
Programm von diesem Verhalten abhängt. Für weitere
Details siehe die Zeitüberschreitungsbeschreibung in der
Handbuchseite select(2). Schaltet STICKY_TIMEOUTS ein.
- -X,
--read-implies-exec
- Falls dies gesetzt ist, wird mmap(3p) PROT_READ auch das Bit
PROT_EXEC hinzufügen - wie dies von alten x86-Programmen erwartet
wird. Beachten Sie, dass der ELF-Lader dieses Bit automatisch setzen wird,
wenn es ein altes Programm antrifft. Schaltet READ_IMPLIES_EXEC ein.
- -Z,
--mmap-page-zero
- SVr4-Fehleremulation, die mmap(3p) auf Seite Null als nur lesbar
setzen wird. Verwenden Sie dies, wenn Programm von diesem Verhalten
abhängt und der Quellcode nicht zum Korrigieren verfügbar
ist. Schaltet MMAP_PAGE_ZERO ein.
- -V, --version
- zeigt Versionsinformationen an und beendet das Programm.
- -h, --help
- zeigt einen Hilfetext an und beendet das Programm.
setarch --addr-no-randomize meintestprogramm
setarch ppc32 rpmbuild --target=ppc --rebuild foo.src.rpm
setarch ppc32 -v -vL3 rpmbuild --target=ppc --rebuild bar.src.rpm
setarch ppc32 --32bit rpmbuild --target=ppc --rebuild foo.src.rpm
Der Befehl setarch ist Teil des Pakets util-linux, welches
aus dem
Linux
Kernel-Archiv heruntergeladen werden kann.
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Mario Blättermann <mario.blaettermann@gmail.com>, Dr. Tobias
Quathamer <toddy@debian.org> und Helge Kreutzmann
<debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU General
Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite
finden, schicken Sie bitte eine E-Mail an die
Mailingliste
der Übersetzer.