oracular (2) personality.2.gz

Provided by: manpages-de-dev_4.23.1-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
       ⟨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⟩.