Provided by: manpages-de-dev_2.5-1_all bug

BEZEICHNUNG

       personality - richtet die Prozess-Ausführungsumgebung ein

ÜBERSICHT

       #include <sys/personality.h>

       int personality(unsigned long persona);

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  persona  nicht  0xffffffff ist setzt personality() die Ausführungsumgebung des Aufrufenden auf den
       durch persona angegebenen Wert.  Wird  persona  als  0xffffffff  angegeben,  kann  die  aktuelle  Persona
       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)
              Map page 0 as read-only (to support binaries that depend on this SVr4 behavior).

       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 persona 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  4.15  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>,  Mario  Blättermann  <mario.blaettermann@gmail.com>,
       Helge Kreutzmann <debian@helgefjell.de> und Chris Leick <c.leick@vollbio.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
       <debian-l10n-german@lists.debian.org>.

Linux                                          15. September 2017                                 PERSONALITY(2)