# French translation of manpages
# This file is distributed under the same license as the manpages-l10n package.
# Copyright © of this file:
# Christophe Blaess , 1996-2003.
# Stéphan Rafin , 2002.
# Thierry Vignaud , 1999, 2002.
# François Micaux, 2002.
# Alain Portal , 2003-2008.
# Jean-Philippe Guérard , 2005-2006.
# Jean-Luc Coulon (f5ibh) , 2006-2007.
# Julien Cristau , 2006-2007.
# Thomas Huriaux , 2006-2008.
# Nicolas François , 2006-2008.
# Florentin Duneau , 2006-2010.
# Simon Paillard , 2006.
# Denis Barbier , 2006, 2010.
# David Prévot , 2010, 2012.
# Jean-Paul Guillonneau , 2021, 2023.
msgid ""
msgstr ""
"Project-Id-Version: manpages.fr\n"
"POT-Creation-Date: 2024-06-01 06:09+0200\n"
"PO-Revision-Date: 2023-08-28 10:54+0200\n"
"Last-Translator: Jean-Paul Guillonneau \n"
"Language-Team: French \n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: vim\n"
#. type: TH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "pkeys"
msgstr "pkeys"
#. type: TH
#: archlinux debian-unstable opensuse-tumbleweed
#, no-wrap
msgid "2024-05-02"
msgstr "2 mai 2024"
#. type: TH
#: archlinux debian-unstable
#, no-wrap
msgid "Linux man-pages 6.8"
msgstr "Pages du manuel de Linux 6.8"
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "NAME"
msgstr "NOM"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "pkeys - overview of Memory Protection Keys"
msgstr "pkeys – Aperçu des clés de protection de la mémoire"
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "DESCRIPTION"
msgstr "DESCRIPTION"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Memory Protection Keys (pkeys) are an extension to existing page-based "
"memory permissions. Normal page permissions using page tables require "
"expensive system calls and TLB invalidations when changing permissions. "
"Memory Protection Keys provide a mechanism for changing protections without "
"requiring modification of the page tables on every permission change."
msgstr ""
"Les clés de protection de la mémoire (Memory Protection Keys — pkeys) sont "
"une extension des permissions de la mémoire basées sur les pages. Les "
"permissions normales de page nécessitent des appels système coûteux et des "
"invalidations du TLB (Translation Lookaside Buffer) lors de modifications de "
"permission. Les clés de protection de la mémoire fournissent un mécanisme "
"pour changer les protections sans avoir besoin de modifier la table des "
"pages lors de chaque modification de permission."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"To use pkeys, software must first \"tag\" a page in the page tables with a "
"pkey. After this tag is in place, an application only has to change the "
"contents of a register in order to remove write access, or all access to a "
"tagged page."
msgstr ""
"Pour utiliser B, le logiciel doit d’abord « étiqueter » une page dans "
"la table des pages avec une pkey. Une fois cette étiquette posée, une "
"application a seulement à changer le contenu d’un registre pour retirer "
"l’accès en écriture ou tous les accès à une page étiquetée."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Protection keys work in conjunction with the existing B, "
"B, and B permissions passed to system calls such as "
"B(2) and B(2), but always act to further restrict these "
"traditional permission mechanisms."
msgstr ""
"Les clés de protection de la mémoire fonctionnent en conjonction avec les "
"permissions B, B et B existantes passées "
"aux appels système tels que B(2) et B(2), mais agissent "
"toujours pour restreindre encore plus ces mécanismes de permission "
"traditionnels."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"If a process performs an access that violates pkey restrictions, it receives "
"a B signal. See B(2) for details of the information "
"available with that signal."
msgstr ""
"Si un processus réalise un accès qui enfreint les restrictions de pkey, il "
"reçoit un signal B. Consultez B(2) pour des détails sur "
"l’information disponible avec ce signal."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"To use the pkeys feature, the processor must support it, and the kernel must "
"contain support for the feature on a given processor. As of early 2016 only "
"future Intel x86 processors are supported, and this hardware supports 16 "
"protection keys in each process. However, pkey 0 is used as the default "
"key, so a maximum of 15 are available for actual application use. The "
"default key is assigned to any memory region for which a pkey has not been "
"explicitly assigned via B(2)."
msgstr ""
"Pour utiliser la fonctionnalité de B, le processeur doit la prendre "
"en charge et le noyau doit contenir une prise en charge pour la "
"fonctionnalité d’un processeur donné. Au tout début de 2016, seuls les "
"processeurs x86 d’Intel à venir étaient pris en charge et ceux-ci géraient "
"16 clés de protection de la mémoire pour chaque processus. Cependant, la "
"pkey 0 est utilisée comme clé par défaut, donc un maximum de 15 sont "
"disponibles pour une utilisation effective d’application. La clé par défaut "
"est affectée à n’importe quelle région de la mémoire pour laquelle une pkey "
"n’a pas été assignée explicitement à l’aide de B(2)."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Protection keys have the potential to add a layer of security and "
"reliability to applications. But they have not been primarily designed as a "
"security feature. For instance, WRPKRU is a completely unprivileged "
"instruction, so pkeys are useless in any case that an attacker controls the "
"PKRU register or can execute arbitrary instructions."
msgstr ""
"Les clés de protection ont la capacité d’ajouter une couche de sécurité et "
"de fiabilité aux applications, mais elles n’ont pas été conçues "
"principalement pour une fonctionnalité de sécurité. Par exemple, WRPKRU est "
"une instruction entièrement non privilégiée, aussi les pkeys sont inutiles "
"dans tous les cas où un attaquant contrôle le registre PKRU ou peut exécuter "
"des instructions arbitraires."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Applications should be very careful to ensure that they do not \"leak\" "
"protection keys. For instance, before calling B(2), the "
"application should be sure that no memory has that pkey assigned. If the "
"application left the freed pkey assigned, a future user of that pkey might "
"inadvertently change the permissions of an unrelated data structure, which "
"could impact security or stability. The kernel currently allows in-use "
"pkeys to have B(2) called on them because it would have "
"processor or memory performance implications to perform the additional "
"checks needed to disallow it. Implementation of the necessary checks is "
"left up to applications. Applications may implement these checks by "
"searching the IpidI file for memory regions with the pkey "
"assigned. Further details can be found in B(5)."
msgstr ""
"Les applications doivent être très précautionneuses pour assurer de ne pas "
"faire « fuiter » leurs clés de protection. Par exemple, avant d’appeler "
"B(2), l’application doit être sûre qu’aucune mémoire a cette pkey "
"assignée. Si l’application laisse la pkey libérée assignée, un prochain "
"utilisateur de cette pkey peut par inadvertance modifier les permissions "
"d’une structure de données étrangère, pouvant impacter la sécurité ou la "
"stabilité. Le noyau permet actuellement aux pkeys en cours d’avoir "
"B(2) appelée sur elles, car cela pourrait avoir des implications "
"de performance de processeur ou de mémoire pour réaliser des vérifications "
"supplémentaires nécessaires pour désactiver cet appel. L’implémentation des "
"vérifications nécessaires est laissée aux applications. Celles-ci peuvent "
"mettre en œuvre ces vérifications en parcourant le fichier IpidI"
"smaps> pour des régions de la mémoire ayant la pkey assignée. Plus de "
"détails sont fournis dans B(5)."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Any application wanting to use protection keys needs to be able to function "
"without them. They might be unavailable because the hardware that the "
"application runs on does not support them, the kernel code does not contain "
"support, the kernel support has been disabled, or because the keys have all "
"been allocated, perhaps by a library the application is using. It is "
"recommended that applications wanting to use protection keys should simply "
"call B(2) and test whether the call succeeds, instead of "
"attempting to detect support for the feature in any other way."
msgstr ""
"Toute application voulant utiliser les clés de protection doivent être "
"capables de fonctionner sans elles. Elles peuvent être indisponibles parce "
"que le matériel exécutant cette application ne les prennent pas en charge, "
"le code du noyau ne fournit aucune prise en charge ou cette prise en charge "
"a été désactivée, ou parce que les clés ont été allouées, peut être par une "
"bibliothèque utilisée par l’application. Il est recommandé aux applications "
"voulant utiliser les clés de protection de simplement appeler "
"B(2) et de tester si l’appel réussit au lieu d’essayer de "
"détecter une prise en charge de la fonctionnalité par tout autre moyen."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Although unnecessary, hardware support for protection keys may be enumerated "
"with the I instruction. Details of how to do this can be found in "
"the Intel Software Developers Manual. The kernel performs this enumeration "
"and exposes the information in I under the \"flags\" field. "
"The string \"pku\" in this field indicates hardware support for protection "
"keys and the string \"ospke\" indicates that the kernel contains and has "
"enabled protection keys support."
msgstr ""
"Quoique non nécessaire, la prise en charge matérielle des clés de protection "
"peut être déterminée à l’aide de l’instruction I. La manière de "
"réaliser cela est décrite dans le manuel pour les développeurs de logiciels "
"pour Intel. Le noyau réalise ce dénombrement et expose cette information "
"dans le champ « flags » de I. La chaîne « pku » dans ce champ "
"indique la prise en charge matérielle des clés de protection et la chaîne "
"« ospke » indique que le noyau gère et active la prise en charge des clés de "
"protection."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Applications using threads and protection keys should be especially "
"careful. Threads inherit the protection key rights of the parent at the "
"time of the B(2), system call. Applications should either ensure "
"that their own permissions are appropriate for child threads at the time "
"when B(2) is called, or ensure that each child thread can perform "
"its own initialization of protection key rights."
msgstr ""
"Les applications utilisant les threads et les clés de protection doivent "
"être particulièrement attentives. Les threads héritent des droits des clés "
"de protection de leur parent au moment de l’appel système B(2). Les "
"applications doivent aussi s’assurer que leurs propres permissions sont "
"appropriées pour les threads enfant au moment de l’appel B(2) ou de "
"s’assurer que chaque thread enfant peut réaliser sa propre initialisation "
"des droits de clés de protection."
#. type: SS
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Signal Handler Behavior"
msgstr "Comportement du gestionnaire de signal"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Each time a signal handler is invoked (including nested signals), the thread "
"is temporarily given a new, default set of protection key rights that "
"override the rights from the interrupted context. This means that "
"applications must re-establish their desired protection key rights upon "
"entering a signal handler if the desired rights differ from the defaults. "
"The rights of any interrupted context are restored when the signal handler "
"returns."
msgstr ""
"Chaque fois qu’un gestionnaire de signal est invoqué (y compris pour les "
"signaux imbriqués), le thread obtient temporairement un nouvel ensemble par "
"défaut de droits de clés de protection qui outrepasse les droits du contexte "
"interrompu. Cela signifie que les applications doivent rétablir les droits "
"désirés des clés de protection lors de l’utilisation d’un gestionnaire de "
"signal si ces droits différent de ceux par défaut. Les droits de n’importe "
"quel contexte sont restaurés lors du renvoi du gestionnaire de signal."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"This signal behavior is unusual and is due to the fact that the x86 PKRU "
"register (which stores protection key access rights) is managed with the "
"same hardware mechanism (XSAVE) that manages floating-point registers. The "
"signal behavior is the same as that of floating-point registers."
msgstr ""
"Ce comportement de signal est inhabituel et est dû au fait que le registre "
"PKRU x86 (qui stocke les droits d’accès des clés de protection) est géré "
"avec le même mécanisme matériel (XSAVE) qui gère les registres de virgule "
"flottante. Le comportement du signal est le même que celui des registres de "
"virgule flottante."
#. type: SS
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Protection Keys system calls"
msgstr "Appels système des clés de protection"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The Linux kernel implements the following pkey-related system calls: "
"B(2), B(2), and B(2)."
msgstr ""
"Le noyau Linux met en œuvre les appels système suivants relatifs aux clés de "
"protection : B(2), B(2) et B(2)."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The Linux pkey system calls are available only if the kernel was configured "
"and built with the B option."
msgstr ""
"Les appels système de Linux pour pkey sont disponibles uniquement si le "
"noyau a été configuré et construit avec l’option "
"B."
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "EXAMPLES"
msgstr "EXEMPLES"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The program below allocates a page of memory with read and write "
"permissions. It then writes some data to the memory and successfully reads "
"it back. After that, it attempts to allocate a protection key and disallows "
"access to the page by using the WRPKRU instruction. It then tries to access "
"the page, which we now expect to cause a fatal signal to the application."
msgstr ""
"Le programme ci-dessous alloue une page de mémoire avec les permissions en "
"lecture et écriture. Puis il écrit quelques données dans la mémoire et les "
"relit avec succès. Après cela, il essaie d’allouer une clé de protection et "
"désactive l’accès à la page en utilisant l’instruction WRPKRU. Il essaie "
"alors d’accéder à la page qui est supposée provoquer un signal fatal pour "
"l’application."
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid ""
"$B< ./a.out>\n"
"buffer contains: 73\n"
"about to read buffer again...\n"
"Segmentation fault (core dumped)\n"
msgstr ""
"$B< ./a.out>\n"
"le buffer contient : 73\n"
"sur le point de lire le buffer de nouveau...\n"
"Segmentation fault (core dumped)\n"
#. type: SS
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Program source"
msgstr "Source du programme"
#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
#, no-wrap
msgid ""
"#define _GNU_SOURCE\n"
"#include Eerr.hE\n"
"#include Eunistd.hE\n"
"#include Estdio.hE\n"
"#include Estdlib.hE\n"
"#include Esys/mman.hE\n"
"\\&\n"
"int\n"
"main(void)\n"
"{\n"
" int status;\n"
" int pkey;\n"
" int *buffer;\n"
"\\&\n"
" /*\n"
" * Allocate one page of memory.\n"
" */\n"
" buffer = mmap(NULL, getpagesize(), PROT_READ | PROT_WRITE,\n"
" MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);\n"
" if (buffer == MAP_FAILED)\n"
" err(EXIT_FAILURE, \"mmap\");\n"
"\\&\n"
" /*\n"
" * Put some random data into the page (still OK to touch).\n"
" */\n"
" *buffer = __LINE__;\n"
" printf(\"buffer contains: %d\\en\", *buffer);\n"
"\\&\n"
" /*\n"
" * Allocate a protection key:\n"
" */\n"
" pkey = pkey_alloc(0, 0);\n"
" if (pkey == -1)\n"
" err(EXIT_FAILURE, \"pkey_alloc\");\n"
"\\&\n"
" /*\n"
" * Disable access to any memory with \"pkey\" set,\n"
" * even though there is none right now.\n"
" */\n"
" status = pkey_set(pkey, PKEY_DISABLE_ACCESS);\n"
" if (status)\n"
" err(EXIT_FAILURE, \"pkey_set\");\n"
"\\&\n"
" /*\n"
" * Set the protection key on \"buffer\".\n"
" * Note that it is still read/write as far as mprotect() is\n"
" * concerned and the previous pkey_set() overrides it.\n"
" */\n"
" status = pkey_mprotect(buffer, getpagesize(),\n"
" PROT_READ | PROT_WRITE, pkey);\n"
" if (status == -1)\n"
" err(EXIT_FAILURE, \"pkey_mprotect\");\n"
"\\&\n"
" printf(\"about to read buffer again...\\en\");\n"
"\\&\n"
" /*\n"
" * This will crash, because we have disallowed access.\n"
" */\n"
" printf(\"buffer contains: %d\\en\", *buffer);\n"
"\\&\n"
" status = pkey_free(pkey);\n"
" if (status == -1)\n"
" err(EXIT_FAILURE, \"pkey_free\");\n"
"\\&\n"
" exit(EXIT_SUCCESS);\n"
"}\n"
msgstr ""
"#define _GNU_SOURCE\n"
"#include Eerr.hE\n"
"#include Eunistd.hE\n"
"#include Estdio.hE\n"
"#include Estdlib.hE\n"
"#include Esys/mman.hE\n"
"\\&\n"
"int\n"
"main(void)\n"
"{\n"
" int status;\n"
" int pkey;\n"
" int *buffer;\n"
"\\&\n"
" /*\n"
" * Allocation d’une page de mémoire.\n"
" */\n"
" buffer = mmap(NULL, getpagesize(), PROT_READ | PROT_WRITE,\n"
" MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);\n"
" if (buffer == MAP_FAILED)\n"
" err(EXIT_FAILURE, \"mmap\");\n"
"\\&\n"
" /*\n"
" * Mise de données aléatoires dans la page (toujours OK à affecter).\n"
" */\n"
" *buffer = __LINE__;\n"
" printf(\"le buffer contient : %d\\en\", *buffer);\n"
"\\&\n"
" /*\n"
" * Allocation d’une clé de protection :\n"
" */\n"
" pkey = pkey_alloc(0, 0);\n"
" if (pkey == -1)\n"
" err(EXIT_FAILURE, \"pkey_alloc\");\n"
"\\&\n"
" /*\n"
" * Désactivation de l’accès à toute mémoire avec l’ensemble\n"
" * « pkey », même si aucun droit n’existe à ce moment.\n"
" */\n"
" status = pkey_set(pkey, PKEY_DISABLE_ACCESS);\n"
" if (status)\n"
" err(EXIT_FAILURE, \"pkey_set\");\n"
"\\&\n"
" /*\n"
" * Mettre la clé de protection dans « buffer ».\n"
" * Noter que c’est toujours lect./écrit. aussi longtemps que mprotect()\n"
" * est concerné et que le pkey_set() précédent l’écrase.\n"
" */\n"
" status = pkey_mprotect(buffer, getpagesize(),\n"
" PROT_READ | PROT_WRITE, pkey);\n"
" if (status == -1)\n"
" err(EXIT_FAILURE, \"pkey_mprotect\");\n"
"\\&\n"
" printf(\"sur le point de lire le buffer de nouveau...\\en\");\n"
"\\&\n"
" /*\n"
" * Cela va planter car l’accès a été désactivé.\n"
" */\n"
" printf(\"le buffer contient : %d\\en\", *buffer);\n"
"\\&\n"
" status = pkey_free(pkey);\n"
" if (status == -1)\n"
" err(EXIT_FAILURE, \"pkey_free\");\n"
"\\&\n"
" exit(EXIT_SUCCESS);\n"
"}\n"
#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "SEE ALSO"
msgstr "VOIR AUSSI"
#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "B(2), B(2), B(2), B(2)"
msgstr ""
"B(2), B(2), B(2), B(2)"
#. type: TH
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid "2022-10-30"
msgstr "30 octobre 2022"
#. type: TH
#: debian-bookworm
#, no-wrap
msgid "Linux man-pages 6.03"
msgstr "Pages du manuel de Linux 6.03"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"#define _GNU_SOURCE\n"
"#include Eerr.hE\n"
"#include Eunistd.hE\n"
"#include Estdio.hE\n"
"#include Estdlib.hE\n"
"#include Esys/mman.hE\n"
msgstr ""
"#define _GNU_SOURCE\n"
"#include Eerr.hE\n"
"#include Eunistd.hE\n"
"#include Estdio.hE\n"
"#include Estdlib.hE\n"
"#include Esys/mman.hE\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"int\n"
"main(void)\n"
"{\n"
" int status;\n"
" int pkey;\n"
" int *buffer;\n"
msgstr ""
"int\n"
"main(void)\n"
"{\n"
" int status;\n"
" int pkey;\n"
" int *buffer;\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" /*\n"
" * Allocate one page of memory.\n"
" */\n"
" buffer = mmap(NULL, getpagesize(), PROT_READ | PROT_WRITE,\n"
" MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);\n"
" if (buffer == MAP_FAILED)\n"
" err(EXIT_FAILURE, \"mmap\");\n"
msgstr ""
" /*\n"
" * Allocation d’une page de mémoire.\n"
" */\n"
" buffer = mmap(NULL, getpagesize(), PROT_READ | PROT_WRITE,\n"
" MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);\n"
" if (buffer == MAP_FAILED)\n"
" err(EXIT_FAILURE, \"mmap\");\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" /*\n"
" * Put some random data into the page (still OK to touch).\n"
" */\n"
" *buffer = __LINE__;\n"
" printf(\"buffer contains: %d\\en\", *buffer);\n"
msgstr ""
" /*\n"
" * Mise de données aléatoires dans la page (toujours OK à affecter).\n"
" */\n"
" *buffer = __LINE__;\n"
" printf(\"le buffer contient : %d\\en\", *buffer);\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" /*\n"
" * Allocate a protection key:\n"
" */\n"
" pkey = pkey_alloc(0, 0);\n"
" if (pkey == -1)\n"
" err(EXIT_FAILURE, \"pkey_alloc\");\n"
msgstr ""
" /*\n"
" * Allocation d’une clé de protection :\n"
" */\n"
" pkey = pkey_alloc(0, 0);\n"
" if (pkey == -1)\n"
" err(EXIT_FAILURE, \"pkey_alloc\");\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" /*\n"
" * Disable access to any memory with \"pkey\" set,\n"
" * even though there is none right now.\n"
" */\n"
" status = pkey_set(pkey, PKEY_DISABLE_ACCESS);\n"
" if (status)\n"
" err(EXIT_FAILURE, \"pkey_set\");\n"
msgstr ""
" /*\n"
" * Désactivation de l’accès à toute mémoire avec l’ensemble\n"
" * « pkey », même si aucun droit n’existe à ce moment.\n"
" */\n"
" status = pkey_set(pkey, PKEY_DISABLE_ACCESS);\n"
" if (status)\n"
" err(EXIT_FAILURE, \"pkey_set\");\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" /*\n"
" * Set the protection key on \"buffer\".\n"
" * Note that it is still read/write as far as mprotect() is\n"
" * concerned and the previous pkey_set() overrides it.\n"
" */\n"
" status = pkey_mprotect(buffer, getpagesize(),\n"
" PROT_READ | PROT_WRITE, pkey);\n"
" if (status == -1)\n"
" err(EXIT_FAILURE, \"pkey_mprotect\");\n"
msgstr ""
" /*\n"
" * Mettre la clé de protection dans « buffer ».\n"
" * Noter que c’est toujours lect./écrit. aussi longtemps que mprotect()\n"
" * est concerné et que le pkey_set() précédent l’écrase.\n"
" */\n"
" status = pkey_mprotect(buffer, getpagesize(),\n"
" PROT_READ | PROT_WRITE, pkey);\n"
" if (status == -1)\n"
" err(EXIT_FAILURE, \"pkey_mprotect\");\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid " printf(\"about to read buffer again...\\en\");\n"
msgstr " printf(\"sur le point de lire le buffer de nouveau...\\en\");\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" /*\n"
" * This will crash, because we have disallowed access.\n"
" */\n"
" printf(\"buffer contains: %d\\en\", *buffer);\n"
msgstr ""
" /*\n"
" * Cela va planter car l’accès a été désactivé.\n"
" */\n"
" printf(\"le buffer contient : %d\\en\", *buffer);\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" status = pkey_free(pkey);\n"
" if (status == -1)\n"
" err(EXIT_FAILURE, \"pkey_free\");\n"
msgstr ""
" status = pkey_free(pkey);\n"
" if (status == -1)\n"
" err(EXIT_FAILURE, \"pkey_free\");\n"
#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
" exit(EXIT_SUCCESS);\n"
"}\n"
msgstr ""
" exit(EXIT_SUCCESS);\n"
"}\n"
#. type: TH
#: fedora-40 fedora-rawhide mageia-cauldron
#, no-wrap
msgid "2023-10-31"
msgstr "31 octobre 2023"
#. type: TH
#: fedora-40 mageia-cauldron
#, no-wrap
msgid "Linux man-pages 6.06"
msgstr "Pages du manuel de Linux 6.06"
#. type: TH
#: fedora-rawhide
#, no-wrap
msgid "Linux man-pages 6.7"
msgstr "Pages du manuel de Linux 6.7"
#. type: TH
#: opensuse-leap-15-6
#, no-wrap
msgid "Linux man-pages 6.04"
msgstr "Pages du manuel de Linux 6.04"
#. type: TH
#: opensuse-tumbleweed
#, no-wrap
msgid "Linux man-pages (unreleased)"
msgstr "Pages du manuel de Linux (non publiées)"