Provided by: manpages-de-dev_2.16-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  5.03  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 <debian-l10n-german@lists.debian.org>.