personality(2) System Calls Manual personality(2) NOM personality - Indiquer le domaine d'execution du processus BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include int personality(unsigned long persona); DESCRIPTION Linux propose differents domaines d'execution, ou personnalites, pour chaque processus. Entre autres choses, le domaine d'execution indique au noyau la maniere de convertir les numeros de signaux en actions. Le domaine d'execution permet a Linux d'offrir une prise en charge (limitee) a des fichiers binaires compiles sous d'autres systemes d'exploitation compatibles UNIX. Si persona n'est pas 0xffffffff, alors personality() definit le domaine d'execution de l'appelant a la valeur indiquee par persona. Indiquer persona a 0xffffffff permet de recuperer la personnalite actuelle sans la modifier. Une liste des domaines d'execution disponibles se trouve dans . Le domaine d'execution est une valeur 32 bits ou les trois premiers octets sont reserves a des attributs qui font modifier par le noyau le comportement de certains appels systeme pour emuler des excentricites architecturales ou historiques. L'octet le moins significatif est la valeur definissant la personnalite que le noyau doit supposer. Les valeurs des attributs sont les suivantes : ADDR_COMPAT_LAYOUT (depuis Linux 2.6.9) Avec cet attribut, fournir une couche d'espace d'adressage virtuelle basique. ADDR_NO_RANDOMIZE (depuis Linux 2.6.12) Avec cet attribut, desactiver la randomisation de la couche d'espace d'adressage. ADDR_LIMIT_32BIT (depuis Linux 2.20) Limiter l'espace d'adressage a 32 bits. ADDR_LIMIT_3GB (depuis Linux 2.4.0) Avec cet attribut, utiliser 0xc0000000 comme position ou chercher un bloc de memoire virtuelle sur mmap(2) ; sinon utiliser 0xffffe000. S'applique uniquement aux processus x86 32 bits' FDPIC_FUNCPTRS (depuis Linux 2.6.11) Les pointeurs de fonction de l'espace utilisateur vers des gestionnaires de signaux pointent (sur certaines architectures) vers des descripteurs. S'applique uniquement a ARM avec BINFMT_ELF_FDPIC et SuperH. MMAP_PAGE_ZERO (depuis Linux 2.4.0) La page de projection 0 en lecture seule (pour prendre en charge les binaires qui dependent de ce comportement SVr4). READ_IMPLIES_EXEC (depuis Linux 2.6.8) Avec cet attribut, PROT_READ implique PROT_EXEC pour mmap(2). SHORT_INODE (depuis Linux 2.4.0) Aucun effet. STICKY_TIMEOUTS (depuis Linux 1.2.0) Avec cet attribut, select(2), pselect(2) et ppoll(2) ne modifient pas le parametre de delai renvoye lorsqu'il est interrompu par un gestionnaire de signal. UNAME26 (depuis Linux 3.1) Demander a uname(2) d'indiquer un numero de version 2.6.(40+x) au lieu d'un numero de version MAJEUR.X 3.x. Ajoute a titre de rattrapage pour gerer les applications cassees qui ne pouvaient pas gerer le passage de la numerotation de version de Linux 2.6.x a Linux 3.x. WHOLE_SECONDS (depuis Linux 1.2.0) Aucun effet. Les domaines d'execution disponibles sont : PER_BSD (depuis Linux 1.2.0) BSD. (pas d'effet) PER_HPUX (depuis Linux 2.4) Gestion de HP/UX 32 bits. Cette prise en charge n'a jamais ete totale et a ete abandonnee, si bien qu'a partir de Linux 4.0, cette valeur n'a pas d'effet. PER_IRIX32 (depuis Linux 2.2) IRIX 5 32 bits. Jamais totalement operationnel ; prise en charge abandonnee dans Linux 2.6.27. Implique STICKY_TIMEOUTS. PER_IRIX64 (depuis Linux 2.2) IRIX 6 64 bits. Implique STICKY_TIMEOUTS ; sinon aucun effet. PER_IRIXN32 (depuis Linux 2.2) IRIX 6 nouveau 32 bits. Implique STICKY_TIMEOUTS ; sinon aucun effet. PER_ISCR4 (depuis Linux 1.2.0) Implique STICKY_TIMEOUTS ; sinon aucun effet. PER_LINUX (depuis Linux 1.2.0) Linux. PER_LINUX32 (depuis Linux 2.2) uname(2) renvoie le nom de l'architecture 32 bits dans le champ machine (<< i686 >> a la place de << x86_64 >>, etc.). Sur Ia64 (Itanium), les processus avec cette personnalite n'ont pas l'attribut O_LARGEFILE d'open(2) force. Sur ARM 64 bits, il est interdit de definir cette personalite si executer un processus 32 bits a l'aide de execve(2) doit aussi etre interdit (voir le parametre du noyau allow_mismatched_32bit_el0 et Documentation/arm64/asymmetric-32bit.rst). PER_LINUX32_3GB (depuis Linux 2.4) Identique a PER_LINUX32, mais implique ADDR_LIMIT_3GB. PER_LINUX_32BIT (depuis Linux 2.0) Identique a PER_LINUX, mais implique ADDR_LIMIT_32BIT. PER_LINUX_FDPIC (depuis Linux 2.6.11) Identique a PER_LINUX, mais implique FDPIC_FUNCPTRS. PER_OSF4 (depuis Linux 2.4) OSF/1 v4. Pas d'effet depuis Linux 6.1 qui a supprime la prise en charge du binaire a.out. Auparavant, sur alpha, il aurait vide les 32 premiers bits de iov_len dans le tampon de l'utilisateur pour etre compatible avec les anciennes versions de OSF/1 ou iov_len etait defini comme int. PER_OSR5 (depuis Linux 2.4) SCO OpenServer 5. Implique STICKY_TIMEOUTS et WHOLE_SECONDS ; sinon aucun effet. PER_RISCOS (depuis Linux 2.3.7 ; macro depuis Linux 2.3.13) Acorn RISC OS/Arthur (MIPS). Aucn effet. Jusqu'a Linux v4.0, definissait l'emulation altroot a /usr/gnemul/riscos (cf. PER_SUNOS, plus bas). Avant cela, jusqu'a Linux 2.6.3, juste une emulation d'Arthur. PER_SCOSVR3 (depuis Linux 1.2.0) SCO UNIX System V Release 3. Identique a PER_OSR5, mais implique aussi SHORT_INODE. PER_SOLARIS (depuis Linux 2.4) Solaris. Implique STICKY_TIMEOUTS ; sinon aucun effet. PER_SUNOS (depuis Linux 2.4.0) Sun OS. Identique a PER_BDS, mais implique STICKY_TIMEOUTS. Avant Linux 2.6.26, lancait la recherche de la bibliotheque et de l'editeur de liens dynamique dans /usr/gnemul. Bogue, tres mal entretenu, presque totalement inusite. PER_SVR3 (depuis Linux 1.2.0) AT&T UNIX System V Release 3. Implique STICKY_TIMEOUTS et SHORT_INODE ; sinon aucun effet. PER_SVR4 (depuis Linux 1.2.0) AT&T UNIX System V Release 4. Implique STICKY_TIMEOUTS et MMAP_PAGE_ZERO ; sinon aucun effet. PER_UW7 (depuis Linux 2.4) UnixWare 7. Implique STICKY_TIMEOUTS et MMAP_PAGE_ZERO ; sinon aucun effet. PER_WYSEV386 (depuis Linux 1.2.0) WYSE UNIX System V/386. Implique STICKY_TIMEOUTS et SHORT_INODE ; sinon aucun effet. PER_XENIX (depuis Linux 1.2.0) XENIX. Implique STICKY_TIMEOUTS et SHORT_INODE ; sinon aucun effet. VALEUR RENVOYEE Renvoi de l'ancienne valeur persona s'il reussit. En cas d'echec, -1 est renvoye et errno est defini pour indiquer l'erreur. ERREURS EINVAL Le noyau n'a pas pu changer la personnalite. STANDARDS Linux. HISTORIQUE Linux 1.1.20, glibc 2.3. VOIR AUSSI setarch(8) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Jean-Philippe MENGUAL Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 personality(2)