Provided by: manpages-de-dev_4.27.0-1_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.  Nur  bei
              32-bit-Prozessen auf x86.

       FDPIC_FUNCPTRS (seit Linux 2.6.11)
              Funktionszeiger   im  Benutzeradressraum  auf  Signalbehandlungsroutinen  zeigen  (auf  bestimmten
              Architekturen) auf Deskriptoren. Nur auf ARM mit BINFMT_ELF_FDPIC und SuperH.

       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  Versionsnummer  von 2.6.(40+x) statt MAJOR.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)
              uname(2) liefert den Namen der 32-bit-Architektur im Feld machine zurück (»i686« anstatt »x86_64«,
              &c.).

              Unter ia64 (Itanium) wird bei Prozessen mit dieser Ausführungsumgebung  der  Schalter  O_LARGEFILE
              von open(2) nicht erzwungen.

              Unter  64-bit-ARM-Architekturen  ist das Setzen dieser Prozess-Ausführungsumgebung verboten, falls
              das execve(2)-ieren eines 32-bit-Prozesses  ebenfalls  verboten  ist  (siehe  den  Kernelparameter
              allow_mismatched_32bit_el0 und Documentation/arm64/asymmetric-32bit.rst).

       PER_LINUX32_3GB (seit Linux 2.4)
              Wie PER_LINUX32, aber impliziert ADDR_LIMIT_3GB.

       PER_LINUX_32BIT (seit Linux 2.0)
              Wie PER_LINUX, aber impliziert ADDR_LIMIT_32BIT.

       PER_LINUX_FDPIC (seit Linux 2.6.11)
              Wie PER_LINUX, aber impliziert FDPIC_FUNCPTRS.

       PER_OSF4 (seit Linux 2.4)
              OSF/1  v4.  Kein  Effekt  seit Linux 6.1, wo die Unterstützung für a.out-Programme entfernt wurde.
              Davor würden unter Alpha 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)
              SCO OpenServer 5. Impliziert STICKY_TIMEOUTS und WHOLE_SECONDS; ansonsten kein Effekt.

       PER_RISCOS (seit Linux 2.3.7; Makro seit Linux 2.3.13)
              Acorn  RISC  OS/Arthur  (MIPS).  Kein  Effekt.  Bis  zu Linux v4.0 wurde die Emulation-Altroot auf
              /usr/gnemul/riscos  gesetzt  (siehe  PER_SUNOS  nachfolgend).  Davor,  bis  zu  Linux  2.6.3,  nur
              Arthur-Emulation.

       PER_SCOSVR3 (seit Linux 1.2.0)
              SCO UNIX System V Release 3. Wie PER_OSR5, impliziert aber auch SHORT_INODE.

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

       PER_SUNOS (seit Linux 2.4.0)
              Sun  OS.  Wie  PER_BSD,  aber impliziert STICKY_TIMEOUTS. Vor Linux 2.6.26 wurden Bibliotheks- und
              dynamische Linker-Suchen nach /usr/gnemul umgelenkt. Fehlerhaft, größtenteils  nicht  betreut  und
              fast komplett unbenutzt.

       PER_SVR3 (seit Linux 1.2.0)
              AT&T UNIX System V Release 3. Impliziert STICKY_TIMEOUTS und SHORT_INODE; ansonsten kein Effekt.

       PER_SVR4 (seit Linux 1.2.0)
              AT&T  UNIX  System  V  Release  4.  Impliziert  STICKY_TIMEOUTS und MMAP_PAGE_ZERO; ansonsten kein
              Effekt.

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

       PER_WYSEV386 (seit Linux 1.2.0)
              WYSE UNIX System V/386. Impliziert STICKY_TIMEOUTS und SHORT_INODE; ansonsten kein Effekt.

       PER_XENIX (seit Linux 1.2.0)
              XENIX. 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.

STANDARDS

       Linux.

GESCHICHTE

       Linux 1.1.20, Glibc 2.3.

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: debian-l10n-german@lists.debian.org.

Linux man-pages 6.9.1                              2. Mai 2024                                    personality(2)