perkamon - en to fr translation catalogue (53 entries)

note: type: TH
en: 2019-08-02
fr: 2 août 2019

note: type: TH
en: Linux Programmer's Manual
fr: Manuel du programmeur Linux

note: type: SH
en: NAME
fr: NOM

note: type: Plain text
en: The "vDSO" (virtual dynamic shared object) is a small shared library that the kernel automatically maps into the address space of all user-space applications.  Applications usually do not need to concern themselves with these details as the vDSO is most commonly called by the C library.  This way you can code in the normal way using standard functions and the C library will take care of using any functionality that is available via the vDSO.
fr: Le « vDSO » (objet partagé dynamique virtuel, « virtual dynamic shared object ») est une petite bibliothèque partagée que le noyau projette automatiquement dans l’espace d’adresses de toutes les applications en espace utilisateur. Les applications n’ont normalement pas besoin de s’occuper elles-mêmes de ces détails puisque le vDSO est d’habitude appelée par la bibliothèque C. Ainsi, vous pouvez écrire du code normalement en utilisant les fonctions standards et la bibliothèque C s’occupera d’utiliser toutes les fonctionnalités disponibles par l’intermédiaire du vDSO.

note: type: Plain text
en: Why does the vDSO exist at all? There are some system calls the kernel provides that user-space code ends up using frequently, to the point that such calls can dominate overall performance.  This is due both to the frequency of the call as well as the context-switch overhead that results from exiting user space and entering the kernel.
fr: Pourquoi le vDSO existe ? Certains appels système fournis par le noyau finissent par être utilisés fréquemment par le code en espace utilisateur, au point que ces appels peuvent avoir une emprise excessive sur les performances. C’est à la fois dû à la fréquence des appels qu’aux nombreux changements de contexte à force de sortir de l’espace utilisateur pour entrer dans le noyau.

note: type: Plain text
en: The rest of this documentation is geared toward the curious and/or C library writers rather than general developers.  If you're trying to call the vDSO in your own application rather than using the C library, you're most likely doing it wrong.
fr: La suite de cette documentation est orientée pour les curieux et les auteurs de la bibliothèque C plutôt que pour les développeurs généraux. Si vous essayez d’appeler la vDSO dans vos propres applications plutôt que d’utiliser la bibliothèque C, vous faites sans doute fausse route.

note: type: SS
en: Example background
fr: Contexte exemple

note: type: Plain text
en: Making system calls can be slow.  In x86 32-bit systems, you can trigger a software interrupt (I<int $0x80>)  to tell the kernel you wish to make a system call.  However, this instruction is expensive: it goes through the full interrupt-handling paths in the processor's microcode as well as in the kernel.  Newer processors have faster (but backward incompatible) instructions to initiate system calls.  Rather than require the C library to figure out if this functionality is available at run time, the C library can use functions provided by the kernel in the vDSO.
fr: Réaliser des appels système peut être lent. Dans les systèmes 32 bits x86, vous pouvez déclencher une interruption logicielle (I<int $0x80>) pour indiquer au noyau que vous voulez faire un appel système. Cependant, cette instruction est coûteuse : elle passe par tous les chemins complets de traitement des interruptions dans le microcode du processeur ainsi que dans le noyau. Les nouveaux processeurs ont des instructions plus rapides (mais non rétrocompatibles) pour initier les appels système. Plutôt que forcer la bibliothèque C à vérifier si cette fonctionnalité est disponible au moment de l’exécution, la bibliothèque C peut utiliser les fonctions fournies par le noyau dans le vDSO.

note: type: Plain text
en: One frequently used system call is B<gettimeofday>(2).  This system call is called both directly by user-space applications as well as indirectly by the C library.  Think timestamps or timing loops or polling\(emall of these frequently need to know what time it is right now.  This information is also not secret\(emany application in any privilege mode (root or any unprivileged user) will get the same answer.  Thus the kernel arranges for the information required to answer this question to be placed in memory the process can access.  Now a call to B<gettimeofday>(2)  changes from a system call to a normal function call and a few memory accesses.
fr: Un appel système fréquemment utilisé est B<gettimeofday>(2). Cet appel système est appelé à la fois directement par les applications en espace utilisateur et indirectement par la bibliothèque C. Remarquez que les horodatages, boucles temporelles ou scrutations — qui ont tous fréquemment besoin de savoir l’heure exacte. Ce n’est pas non plus un secret — de n’importe quelle application dans n’importe quel mode (superutilisateur ou utilisateur normal) auront tous la même réponse. Alors le noyau s’arrange pour que les informations nécessaires pour répondre à cette question soient placées dans la mémoire accessible au processus. Ainsi un appel de B<gettimeofday>(2) est transformé d’un appel système en un appel normal de fonction, avec un peu d’accès mémoire.

note: type: SS
en: Finding the vDSO
fr: Trouver le vDSO

note: type: Plain text
en: The base address of the vDSO (if one exists) is passed by the kernel to each program in the initial auxiliary vector (see B<getauxval>(3)), via the B<AT_SYSINFO_EHDR> tag.
fr: L’adresse de base du vDSO (s’il existe) est passée par le noyau à tous les programmes dans le vecteur auxiliaire initial (consultez B<getauxval>(3)) à l’aide du type B<AT_SYSINFO_EHDR>.

note: type: Plain text
en: You must not assume the vDSO is mapped at any particular location in the user's memory map.  The base address will usually be randomized at run time every time a new process image is created (at B<execve>(2)  time).  This is done for security reasons, to prevent "return-to-libc" attacks.
fr: Vous ne devez pas supposer que le vDSO est projeté à un endroit particulier de la projection en mémoire de l’utilisateur. L’adresse de base sera normalement aléatoire au moment de l’exécution à chaque fois qu’une nouvelle image de processus est créée (au moment de B<execve>(2)). C’est ainsi pour des raisons de sécurité, afin d’éviter les attaques de « retour vers libc ».

note: type: Plain text
en: For some architectures, there is also an B<AT_SYSINFO> tag.  This is used only for locating the vsyscall entry point and is frequently omitted or set to 0 (meaning it's not available).  This tag is a throwback to the initial vDSO work (see I<History> below) and its use should be avoided.
fr: Pour certaines architectures, un type B<AT_SYSINFO> est aussi présent. Il n’est utilisé que pour localiser le point d’entrée vsyscall et est souvent omis ou défini à 0 (signifiant qu’il n’est pas disponible). Ce type est un rappel du fonctionnement initial de vDSO (consultez I<Historique> ci-dessous) et son utilisation devrait être évitée.

note: type: SS
en: File format
fr: Format de fichier

note: type: Plain text
en: Since the vDSO is a fully formed ELF image, you can do symbol lookups on it.  This allows new symbols to be added with newer kernel releases, and allows the C library to detect available functionality at run time when running under different kernel versions.  Oftentimes the C library will do detection with the first call and then cache the result for subsequent calls.
fr: Puisque le vDSO est une image ELF complète, vous pouvez y rechercher des symboles. Cela permet d’ajouter de nouveaux symboles avec les versions de noyau plus récentes et permet à la bibliothèque C de détecter les fonctionnalités disponibles au moment de l’exécution lors de l’exécution sous différentes versions de noyau. D’habitude, la bibliothèque C fera la détection lors du premier appel puis mettra en cache le résultat pour les appels suivants.

note: type: Plain text
en: All symbols are also versioned (using the GNU version format).  This allows the kernel to update the function signature without breaking backward compatibility.  This means changing the arguments that the function accepts as well as the return value.  Thus, when looking up a symbol in the vDSO, you must always include the version to match the ABI you expect.
fr: Tous les appels sont aussi versionnés (en utilisant le format de version GNU). Cela permet au noyau de mettre à jour la signature de fonction sans casser la rétrocompatibilité. Cela signifie modifier les arguments acceptés par la fonction et la valeur de retour. Ainsi, lors de la recherche de symboles dans le vDSO, vous devez toujours inclure la version pour correspondre à l’ABI attendue.

note: type: Plain text
en: Typically the vDSO follows the naming convention of prefixing all symbols with "__vdso_" or "__kernel_" so as to distinguish them from other standard symbols.  For example, the "gettimeofday" function is named "__vdso_gettimeofday".
fr: Typiquement, la vDSO suit la convention de nommage de préfixer tous les symboles par « __vdso_ » ou « __kernel_ » afin de les distinguer des autres symboles standards. Par exemple, la fonction « gettimeofday » est nommée « __vdso_gettimeofday ».

note: type: Plain text
en: You use the standard C calling conventions when calling any of these functions.  No need to worry about weird register or stack behavior.
fr: Utilisez les conventions d’appel C standard pour appeler n’importe laquelle de ces fonctions. Pas la peine de vous embêter avec les registres bizarres ou les comportements de pile.

note: type: Plain text
en: When you compile the kernel, it will automatically compile and link the vDSO code for you.  You will frequently find it under the architecture-specific directory:
fr: Lors de la compilation du noyau, le code vDSO est compilé et lié automatiquement. Il se trouve souvent dans le répertoire spécifique à l’architecture :

note: type: SS
en: vDSO names
fr: Noms vDSO

note: type: Plain text
en: The name of the vDSO varies across architectures.  It will often show up in things like glibc's B<ldd>(1)  output.  The exact name should not matter to any code, so do not hardcode it.
fr: Le nom du vDSO dépend des architectures. Il est souvent visible dans des endroits comme la sortie de B<ldd>(1) de la glibc. Le nom exact ne devrait affecter aucun code, donc pas la peine de le coder en dur.

note: type: SH
en: ARCHITECTURE-SPECIFIC NOTES
fr: NOTES SPÉCIFIQUES AUX ARCHITECTURES

note: type: Plain text
en: The subsections below provide architecture-specific notes on the vDSO.
fr: Les sous-sections suivantes fournissent des notes spécifiques aux architectures sur le vDSO.

note: type: SS
en: ARM functions
fr: Fonctions ARM

note: See linux/arch/x86/vdso/vdso32.lds.S type: Plain text
en: The table below lists the symbols exported by the vDSO.
fr: Le tableau suivant indique les symboles exportés par le vDSO.

note: type: Plain text
en: For information on this code page, it's best to refer to the kernel documentation as it's extremely detailed and covers everything you need to know: I<Documentation/arm/kernel_user_helpers.txt>.
fr: Pour des renseignements sur cette page de code, mieux vaut consulter la documentation du noyau puisqu’elle est extrêmement détaillée et couvre tous ce que vous devez savoir : I<Documentation/arm/kernel_user_helpers.txt>.

note: type: SS
en: aarch64 functions
fr: Fonctions aarch64

note: See linux/arch/blackfin/kernel/fixed_code.S See http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:fixed-code type: Plain text
en: As this CPU lacks a memory management unit (MMU), it doesn't set up a vDSO in the normal sense.  Instead, it maps at boot time a few raw functions into a fixed location in memory.  User-space applications then call directly into that region.  There is no provision for backward compatibility beyond sniffing raw opcodes, but as this is an embedded CPU, it can get away with things\(emsome of the object formats it runs aren't even ELF based (they're bFLT/FLAT).
fr: Comme ce processeur n’a pas d’unité de gestion mémoire (MMU), il ne définit pas de vDSO au sens usuel. À la place, il projette au démarrage quelques fonctions brutes à un endroit spécifique de la mémoire. Les applications en espace utilisateur appellent ensuite directement dans cette zone. Aucune mesure de rétrocompatibilité n’est prise à part en sniffant les codes opératoires bruts, mais comme il s’agit d’un processeur embarqué, il peut s’en sortir impunément – certains formats d’objet qu’il exécute ne sont même pas basés sur ELF (ils sont bFLT/FLAT).

note: type: Plain text
en: For information on this code page, it's best to refer to the public documentation:
fr: Pour des renseignements sur cette page de code, mieux vaut consulter la documentation publique :

note: type: SS
en: ia64 (Itanium) functions
fr: Fonctions ia64 (Itanium)

note: type: Plain text
en: The Itanium port is somewhat tricky.  In addition to the vDSO above, it also has "light-weight system calls" (also known as "fast syscalls" or "fsys").  You can invoke these via the I<__kernel_syscall_via_epc> vDSO helper.  The system calls listed here have the same semantics as if you called them directly via B<syscall>(2), so refer to the relevant documentation for each.  The table below lists the functions available via this mechanism.
fr: Le portage Itanium est un peu périlleux. En plus du vDSO ci-dessus, il a aussi des « appels système légers » (aussi appelés « appels système rapides » ou « fsys »). Ils peuvent être appelés en à l’aide de l’assistant vDSO I<__kernel_syscall_via_epc>. Les appels système indiqués ici ont la même sémantique que si vous les appeliez directement à l’aide de B<syscall>(2), donc consultez la documentation adéquate pour chacun d’entre eux. Le tableau suivant indique les fonctions disponibles par ce mécanisme.

note: type: SS
en: parisc (hppa) functions
fr: Fonctions parisc (hppa)

note: type: Plain text
en: Since it's just a raw page of code, there is no ELF information for doing symbol lookups or versioning.  Simply call into the appropriate offset via the branch instruction, for example:
fr: Puisque ce n’est qu’une page de code brut, aucune information ELF n’existe pour faire de la recherche de symboles ou du versionnement. Appelez simplement l’adresse adéquate à l’aide de l’instruction de branche, par exemple :

note: type: Plain text
en:     ble E<lt>offsetE<gt>(%sr2, %r0)
fr:     ble E<lt>adresseE<gt>(%sr2, %r0)

note: type: SS
en: ppc/32 functions
fr: Fonctions ppc/32

note: See linux/arch/powerpc/kernel/vdso32/vdso32.lds.S type: Plain text
en: The table below lists the symbols exported by the vDSO.  The functions marked with a I<*> are available only when the kernel is a PowerPC64 (64-bit) kernel.
fr: Le tableau suivant indique les symboles exportés par le vDSO. Les fonctions marquées avec un I<*> ne sont disponibles que si le noyau est PowerPC64 (64 bits).

note: type: SS
en: ppc/64 functions
fr: Fonctions ppc/64

note: type: SS
en: s390 functions
fr: Fonctions s390

note: type: SS
en: s390x functions
fr: Fonctions s390x

note: type: SS
en: sh (SuperH) functions
fr: Fonctions sh (SuperH)

note: type: SS
en: i386 functions
fr: Fonctions i386

note: See linux/arch/x86/vdso/vdso.lds.S type: Plain text
en: The table below lists the symbols exported by the vDSO.  All of these symbols are also available without the "__vdso_" prefix, but you should ignore those and stick to the names below.
fr: Le tableau suivant indique les symboles exportés par le vDSO. Tous ces symboles sont aussi disponibles sans le préfixe « __vdso_ », mais vous devriez les ignorer et vous cantonner aux noms suivants.

note: type: SS
en: x86/x32 functions
fr: Fonctions x86/x32

note: type: SS
en: History
fr: Historique

note: type: Plain text
en: The vDSO was originally just a single function\(emthe vsyscall.  In older kernels, you might see that name in a process's memory map rather than "vdso".  Over time, people realized that this mechanism was a great way to pass more functionality to user space, so it was reconceived as a vDSO in the current format.
fr: Le vDSO n’était à l’origine qu’une seule fonction — le vsyscall. Dans les anciens noyaux, ce nom pourrait être vu dans une projection en mémoire de processus à la place de « vdso ». Le temps passant, les gens ont réalisé que ce mécanisme était un excellent moyen pour passer plus de fonctionnalités à l’espace utilisateur, il a donc été reconçu en tant que vDSO au format actuel.

note: type: SH
en: SEE ALSO
fr: VOIR AUSSI

note: type: Plain text
en: The documents, examples, and source code in the Linux source code tree:
fr: Les documents, exemples et le code source dans l’arborescence du code source de Linux :

note: type: Plain text
en: Documentation/ABI/stable/vdso
    Documentation/ia64/fsys.txt
    Documentation/vDSO/* (includes examples of using the vDSO)
fr: Documentation/ABI/stable/vdso
    Documentation/ia64/fsys.txt
    Documentation/vDSO/* (contient des exemples d’utilisation du vDSO)

note: type: Plain text
en: This page is part of release 5.03 of the Linux I<man-pages> project.  A description of the project, information about reporting bugs, and the latest version of this page, can be found at \%https://www.kernel.org/doc/man-pages/.
fr: Cette page fait partie de la publication 5.03 du projet I<man-pages> Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man-pages/.

note: type: Plain text
en: This page is part of release 5.02 of the Linux I<man-pages> project.  A description of the project, information about reporting bugs, and the latest version of this page, can be found at \%https://www.kernel.org/doc/man-pages/.
fr: Cette page fait partie de la publication 5.02 du projet I<man-pages> Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man-pages/.

note: type: TH
en: 2018-04-30
fr: 30 avril 2018

note: type: SS
en: bfin (Blackfin) functions
fr: Fonctions bfin (Blackfin)

note: type: Plain text
en: This page is part of release 5.01 of the Linux I<man-pages> project.  A description of the project, information about reporting bugs, and the latest version of this page, can be found at \%https://www.kernel.org/doc/man-pages/.
fr: Cette page fait partie de la publication 5.01 du projet I<man-pages> Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man-pages/.
