Provided by: manpages-de-dev_4.13-4_all bug

BEZEICHNUNG

       personality - richtet die Prozess-Ausführungsumgebung ein

ÜBERSICHT

       #include <sys/personality.h>

       int personality(unsigned long Rolle);

BESCHREIBUNG

       Linux unterstützt für jeden Prozess verschiedene Prozess-Ausführungsumgebungen oder Personalitäten. Unter
       anderem  mit  den  Prozess-Ausführungsumgebungen  bestimmt  der  Kernel,  wie er Signalnummern in Signale
       umsetzen soll. Dieses System ermöglicht Linux  teilweise,  für  andere  UNIX-artige  Systeme  kompilierte
       Programme direkt laufen zu lassen.

       Falls  Rolle  nicht  0xffffffff  ist, setzt personality() die Ausführungsumgebung des Aufrufenden auf den
       durch Rolle angegebenen Wert. Wird Rolle als 0xffffffff angegeben,  kann  die  aktuelle  Rolle  ermittelt
       werden, ohne sie zu ändern.

       Eine  Liste  der  verfügbaren  Ausführungsumgebungen  kann  in  <sys/personality.h>  gefunden werden. Die
       Ausführungsumgebung ist ein 32-Bit-Wert, in der die oberen drei Byte für Schalter,  die  den  Kernel  zur
       Veränderung   bestimmter   Systemaufrufe   bewegen,   bereitgestellt   werden,   damit  historische  oder
       architekturale Besonderheiten emuliert werden. Das unterste Byte  ist  ein  Wert,  der  die  Personalität
       definiert, die der Kernel annehmen sollte. Die Schalterwerte sind wie folgt:

       ADDR_COMPAT_LAYOUT (seit Linux 2.6.9)
              Ist dieser Schalter gesetzt, wird das veraltete virtuelle Arbeitspeicherlayout bereitgestellt.

       ADDR_NO_RANDOMIZE (seit Linux 2.6.12)
              Ist dieser Schalter gesetzt, wird Adressspeicherlayoutverwürfelung deaktiviert.

       ADDR_LIMIT_32BIT (seit Linux 2.2)
              Begrenzt den Adressraum auf 32-Bit.

       ADDR_LIMIT_3GB (seit Linux 2.4.0)
              Ist  dieser  Schalter gesetzt, wird 0xc0000000 als Versatz verwendet, ab dem nach einem Datenblock
              virtuellen Speichers von mmap(2) gesucht wird, andernfalls wird 0xffffe000 benutzt.

       FDPIC_FUNCPTRS (seit Linux 2.6.11)
              Funktionszeiger  im  Benutzeradressraum  auf  Signalbehandlungsroutinen  zeigen  (auf   bestimmten
              Architekturen) auf Deskriptoren.

       MMAP_PAGE_ZERO (seit Linux 2.4.0)
              Mappt  Seite  0  als  nur-lesaber  (um  Programme  zu  unterstützen, die von diesem SVr4-Verhalten
              abhängen).

       READ_IMPLIES_EXEC (seit Linux 2.6.8)
              Wird dieser Schalter gesetzt, impliziert PROT_READ PROT_EXEC für mmap(2).

       SHORT_INODE (seit Linux 2.4.0)
              Kein Effekt (?).

       STICKY_TIMEOUTS (seit Linux 1.2.0)
              Ist dieser  Schalter  gesetzt,  werden  select(2),  pselect(2)  und  ppoll(2)  das  zurückgegebene
              Zeitüberschreitungsargument   nicht   ändern,   wenn   sie   durch  eine  Signalbehandlungsroutine
              unterbrochen werden.

       UNAME26 (seit Linux 3.1)
              Lässt  uname(2)  eine  Versionnummer  von  2.6.40+  statt  3.x  melden.  Wurde  als   Überbrückung
              hinzugefügt,  um  Anwendungen zu unterstützen, die mit der Versionsnummernumstellung von 2.6.x auf
              3.x nicht umgehen konnten.

       WHOLE_SECONDS (seit Linux 1.2.0)
              Kein Effekt (?).

       Die verfügbaren Ausführungsumgebungen sind:

       PER_BSD (seit Linux 1.2.0)
              BSD. (Kein Effekt)

       PER_HPUX (seit Linux 2.4)
              Unterstützung für 32-Bit HP/UX. Diese Unterstützung war nie vollständig  und  wurde  entfernt,  so
              dass seit Linux 4.0 dieser Wert keinen Effekt hat.

       PER_IRIX32 (seit Linux 2.2)
              IRIX  5  32-Bit.  Funktionierte  nie, die Unterstützung wurde in Linux 2.6.27 entfernt. Impliziert
              STICKY_TIMEOUTS.

       PER_IRIX64 (seit Linux 2.2)
              IRIX 6 64-Bit. Impliziert STICKY_TIMEOUTS; ansonsten kein Effekt.

       PER_IRIXN32 (seit Linux 2.2)
              IRIX 6 new 32-bit. Impliziert STICKY_TIMEOUTS; ansonsten kein Effekt.

       PER_ISCR4 (seit Linux 1.2.0)
              Impliziert STICKY_TIMEOUTS; ansonsten kein Effekt.

       PER_LINUX (seit Linux 1.2.0)
              Linux.

       PER_LINUX32 (seit Linux 2.2)
              [Muss noch dokumentiert werden.]

       PER_LINUX32_3GB (seit Linux 2.4)
              Impliziert ADDR_LIMIT_3GB.

       PER_LINUX_32BIT (seit Linux 2.0)
              Impliziert ADDR_LIMIT_32BIT.

       PER_LINUX_FDPIC (seit Linux 2.6.11)
              Impliziert FDPIC_FUNCPTRS.

       PER_OSF4 (seit Linux 2.4)
              OSF/1 v4. Unter Alpha werden die oberen 32 Bit von iov_len im Puffer des  Benutzer  zurückgesetzt,
              um kompatibel zu alten Versionen von OSF/1 zu sein, bei denen iov_len als int definiert war.

       PER_OSR5 (seit Linux 2.4)
              Impliziert STICKY_TIMEOUTS und WHOLE_SECONDS; ansonsten kein Effekt.

       PER_RISCOS (seit Linux 2.2)
              [Muss noch dokumentiert werden.]

       PER_SCOSVR3 (seit Linux 1.2.0)
              Impliziert STICKY_TIMEOUTS, WHOLE_SECONDS und SHORT_INODE; ansonsten kein Effekt.

       PER_SOLARIS (seit Linux 2.4)
              Impliziert STICKY_TIMEOUTS; ansonsten kein Effekt.

       PER_SUNOS (seit Linux 2.4.0)
              Impliziert  STICKY_TIMEOUTS.  Lenkt Bibliotheks- und dynamische Linker-Suchen nach /usr/gnemul um.
              Fehlerhaft, größtenteils nicht betreut und fast komplett unbenutzt;  in  Linux  2.6.26  wurde  die
              Untersützung entfernt.

       PER_SVR3 (seit Linux 1.2.0)
              Impliziert STICKY_TIMEOUTS und SHORT_INODE; ansonsten kein Effekt.

       PER_SVR4 (seit Linux 1.2.0)
              Impliziert STICKY_TIMEOUTS und MMAP_PAGE_ZERO; ansonsten kein Effekt.

       PER_UW7 (seit Linux 2.4)
              Impliziert STICKY_TIMEOUTS und MMAP_PAGE_ZERO; ansonsten kein Effekt.

       PER_WYSEV386 (seit Linux 1.2.0)
              Impliziert STICKY_TIMEOUTS und SHORT_INODE; ansonsten kein Effekt.

       PER_XENIX (seit Linux 1.2.0)
              Impliziert STICKY_TIMEOUTS und SHORT_INODE; ansonsten kein Effekt.

RÜCKGABEWERT

       Bei  Erfolg wird die frühere Rolle zurückgegeben. Tritt ein Fehler auf, ist der Rückgabewert -1 und errno
       wird entsprechend gesetzt.

FEHLER

       EINVAL Der Kernel konnte die Prozess-Ausführungsumgebung nicht ändern.

VERSIONEN

       Dieser  Systemaufruf  wurde  in  Linux  1.1.20  eingeführt  (und  daher  erstmals   in   einer   stabilen
       Kernelveröffentlichung mit Linux 1.2.0). Bibliotheksunterstützung wurde in glibc 2.3 hinzugefügt.

KONFORM ZU

       personality() ist Linux-spezifisch und sollte nicht für portable Programme verwendet werden.

SIEHE AUCH

       setarch(8)

KOLOPHON

       Diese  Seite  ist  Teil  der  Veröffentlichung  5.10  des Projekts Linux-man-pages. Eine Beschreibung des
       Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
       sich unter https://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Hanno Wagner  <wagner@bidnix.bid.fh-hannover.de>,
       Martin  Eberhard  Schauer  <Martin.E.Schauer@gmx.de>, Chris Leick <c.leick@vollbio.de>, Mario Blättermann
       <mario.blaettermann@gmail.com> 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.

Linux                                          15. September 2017                                 PERSONALITY(2)