Provided by: manpages-de-dev_4.21.0-2_all bug

BEZEICHNUNG

       personality - richtet die Prozess-Ausführungsumgebung ein

BIBLIOTHEK

       Standard-C-Bibliothek (libc, -lc)

Ü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-lesbar  (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 Linux 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 gesetzt, um den Fehler anzuzeigen.

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.

STANDARDS

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

SIEHE AUCH

       setarch(8)

Ü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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 ⟨debian-l10n-german@lists.debian.org⟩.