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 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 man-pages 6.03                            4. Dezember 2022                                  personality(2)