diff options
Diffstat (limited to 'po/ro/man7/pkeys.7.po')
-rw-r--r-- | po/ro/man7/pkeys.7.po | 738 |
1 files changed, 738 insertions, 0 deletions
diff --git a/po/ro/man7/pkeys.7.po b/po/ro/man7/pkeys.7.po new file mode 100644 index 00000000..ce4bef18 --- /dev/null +++ b/po/ro/man7/pkeys.7.po @@ -0,0 +1,738 @@ +# Romanian translation of manpages +# This file is distributed under the same license as the manpages-l10n package. +# Copyright © of this file: +# Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2024. +msgid "" +msgstr "" +"Project-Id-Version: manpages-l10n 4.22.0\n" +"POT-Creation-Date: 2024-06-01 06:09+0200\n" +"PO-Revision-Date: 2024-05-19 19:26+0200\n" +"Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n" +"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n" +"Language: ro\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2;\n" +"X-Generator: Poedit 3.4.3\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 "Pagini de manual 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 "NUME" + +#. 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 - prezentare generală a cheilor de protecție a memoriei" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "DESCRIPTION" +msgstr "DESCRIERE" + +#. 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 "" +"Cheile de protecție a memoriei (pkeys) sunt o extensie a permisiunilor de " +"memorie existente bazate pe pagini. Permisiunile normale de pagini care " +"utilizează tabele de pagini necesită apeluri de sistem costisitoare și " +"invalidări ale TLB (Translation Lookaside Buffer) atunci când se schimbă " +"permisiunile. Cheile de protecție a memoriei oferă un mecanism de modificare " +"a protecțiilor fără a necesita modificarea tabelelor de pagini la fiecare " +"modificare a permisiunilor." + +#. 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 "" +"Pentru a utiliza B<pkeys>, software-ul trebuie mai întâi să „eticheteze” o " +"pagină din tabelele de pagini cu o cheie de protecție „pkey”. După ce " +"această etichetă este plasată, o aplicație trebuie doar să modifice " +"conținutul unui registru pentru a elimina accesul la scriere sau tot accesul " +"la o pagină etichetată." + +#. 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<PROT_READ>, " +"B<PROT_WRITE>, and B<PROT_EXEC> permissions passed to system calls such as " +"B<mprotect>(2) and B<mmap>(2), but always act to further restrict these " +"traditional permission mechanisms." +msgstr "" +"Cheile de protecție funcționează împreună cu permisiunile existente " +"B<PROT_READ>, B<PROT_WRITE> și B<PROT_EXEC> transmise apelurilor de sistem, " +"cum ar fi B<mprotect>(2) și B<mmap>(2), dar acționează întotdeauna pentru a " +"restricționa și mai mult aceste mecanisme tradiționale de permisiune." + +#. 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<SIGSEGV> signal. See B<sigaction>(2) for details of the information " +"available with that signal." +msgstr "" +"În cazul în care un proces efectuează un acces care încalcă restricțiile " +"cheii de protecție, acesta primește un semnal B<SIGSEGV>. A se vedea " +"B<sigaction>(2) pentru detalii privind informațiile disponibile cu acest " +"semnal." + +#. 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<pkey_mprotect>(2)." +msgstr "" +"Pentru a utiliza caracteristica B<pkeys>, procesorul trebuie să o accepte, " +"iar nucleul trebuie să conțină suport pentru această caracteristică pe un " +"anumit procesor. De la începutul anului 2016 sunt acceptate doar viitoarele " +"procesoare Intel x86, iar acest hardware suportă 16 chei de protecție în " +"fiecare proces. Cu toate acestea, „pkey 0” este utilizată drept cheie " +"implicită, astfel încât sunt disponibile maximum 15 pentru utilizarea " +"efectivă a aplicațiilor. Cheia implicită este atribuită oricărei regiuni de " +"memorie pentru care nu a fost atribuită în mod explicit o cheie de protecție " +"prin B<pkey_mprotect>(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 "" +"Cheile de protecție au potențialul de a adăuga un nivel de securitate și " +"fiabilitate la aplicații. Dar ele nu au fost concepute în primul rând ca o " +"caracteristică de securitate. De exemplu, WRPKRU este o instrucțiune complet " +"neprivilegiată, astfel încât cheile de protecție sunt inutile în orice caz " +"în care un atacator controlează registrul PKRU sau poate executa " +"instrucțiuni arbitrare." + +#. 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<pkey_free>(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<pkey_free>(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 I</proc/>pidI</smaps> file for memory regions with the pkey " +"assigned. Further details can be found in B<proc>(5)." +msgstr "" +"Aplicațiile trebuie să fie foarte atente pentru a se asigura că nu „li se " +"scurg” cheile de protecție.De exemplu, înainte de a apela B<pkey_free>(2), " +"aplicația ar trebui să se asigure că nu există nicio memorie care să aibă " +"atribuită acea cheie de protecție „pkey”. În cazul în care aplicația a lăsat " +"atribuită cheia de protecție eliberată, un viitor utilizator al acelei chei " +"de protecție ar putea modifica din greșeală permisiunile unei structuri de " +"date nerelaționată, ceea ce ar putea avea un impact asupra securității sau " +"stabilității. În prezent, nucleul permite ca B<pkey_free>(2) să fie apelat " +"pentru cheile de acces în uz, deoarece efectuarea verificărilor suplimentare " +"necesare pentru a interzice acest lucru ar avea implicații asupra " +"performanței procesorului sau a memoriei. Implementarea verificărilor " +"necesare este lăsată la latitudinea aplicațiilor. Aplicațiile pot pune în " +"aplicare aceste verificări prin căutarea în fișierul I</proc/>pidI</smaps> a " +"regiunilor de memorie cărora le-a fost atribuită cheia „pkey”. Mai multe " +"detalii pot fi găsite în B<proc>(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<pkey_alloc>(2) and test whether the call succeeds, instead of " +"attempting to detect support for the feature in any other way." +msgstr "" +"Orice aplicație care dorește să utilizeze chei de protecție trebuie să poată " +"funcționa fără acestea. Acestea ar putea fi indisponibile deoarece hardware-" +"ul pe care rulează aplicația nu le acceptă, codul nucleului nu conține " +"suport, suportul nucleului a fost dezactivat sau deoarece toate cheile au " +"fost alocate, poate de către o bibliotecă pe care o utilizează aplicația. Se " +"recomandă ca aplicațiile care doresc să utilizeze chei de protecție să " +"apeleze pur și simplu B<pkey_alloc>(2) și să testeze dacă apelul reușește, " +"în loc să încerce să detecteze suportul pentru această caracteristică în " +"orice alt mod." + +#. 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<cpuid> 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</proc/cpuinfo> 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 "" +"Deși nu este necesar, suportul hardware pentru cheile de protecție poate fi " +"enumerat cu instrucțiunea I<cpuid>. Detalii despre cum se face acest lucru " +"pot fi găsite în „Intel Software Developers Manual”. Nucleul efectuează " +"această enumerare și expune informațiile în I</proc/cpuinfo> sub câmpul " +"„flags”. Șirul „pku” din acest câmp indică suportul hardware pentru chei de " +"protecție, iar șirul „ospke” indică faptul că nucleul conține și a activat " +"suportul pentru chei de protecție." + +#. 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<clone>(2), system call. Applications should either ensure " +"that their own permissions are appropriate for child threads at the time " +"when B<clone>(2) is called, or ensure that each child thread can perform " +"its own initialization of protection key rights." +msgstr "" +"Aplicațiile care utilizează fire de execuție și chei de protecție trebuie să " +"fie deosebit de atente. Firele moștenesc drepturile cheilor de protecție ale " +"părintelui în momentul apelului de sistem B<clone>(2). Aplicațiile ar trebui " +"fie să se asigure că propriile permisiuni sunt adecvate pentru firele-copil " +"în momentul în care se apelează B<clone>(2), fie să se asigure că fiecare " +"fir-copil poate efectua propria inițializare a drepturilor cheilor de " +"protecție." + +#. 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 "Comportamentul gestionarului de semnale" + +#. 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 "" +"De fiecare dată când este invocat un gestionar de semnal (inclusiv semnalele " +"imbricate), firului i se atribuie temporar un set nou, implicit, de drepturi " +"de cheie de protecție care înlocuiesc drepturile din contextul întrerupt. " +"Acest lucru înseamnă că aplicațiile trebuie să restabilească din nou " +"drepturile de cheie de protecție dorite la intrarea într-un gestionar de " +"semnal dacă drepturile dorite diferă de cele implicite. Drepturile oricărui " +"context întrerupt sunt restabilite la returnarea gestionarului de semnal." + +#. 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 "" +"Acest comportament al semnalului este neobișnuit și se datorează faptului că " +"registrul x86 PKRU (care stochează drepturile de acces la cheia de " +"protecție) este gestionat cu același mecanism hardware (XSAVE) care " +"gestionează registrele în virgulă mobilă. Comportamentul semnalului este " +"același cu cel al registrelor în virgulă mobilă." + +#. 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 "Apeluri de sistem cu chei de protecție" + +#. 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<pkey_mprotect>(2), B<pkey_alloc>(2), and B<pkey_free>(2)." +msgstr "" +"Nucleul Linux implementează următoarele apeluri de sistem legate de chei de " +"protecție: B<pkey_mprotect>(2), B<pkey_alloc>(2) și B<pkey_free>(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<CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS> option." +msgstr "" +"Apelurile de sistem Linux pentru pkey sunt disponibile numai dacă nucleul a " +"fost configurat și construit cu opțiunea " +"B<CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS>." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "EXAMPLES" +msgstr "EXEMPLE" + +#. 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 "" +"Programul de mai jos alocă o pagină de memorie cu permisiuni de citire și " +"scriere. Apoi scrie câteva date în memorie și le citește cu succes înapoi. " +"După aceea, încearcă să aloce o cheie de protecție și interzice accesul la " +"pagină prin utilizarea instrucțiunii WRPKRU. Apoi încearcă să acceseze " +"pagina, ceea ce ne așteptăm acum să provoace un semnal fatal pentru " +"aplicație." + +#. 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" +"memoria tampon conține: 73\n" +"pe cale de a citi din nou memoria tampon...\n" +"Eroare de segmentare (conținutul memoriei a fost descărcat)\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 "Sursa programului" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"#define _GNU_SOURCE\n" +"#include E<lt>err.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>sys/mman.hE<gt>\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 E<lt>err.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>sys/mman.hE<gt>\n" +"\\&\n" +"int\n" +"main(void)\n" +"{\n" +" int status;\n" +" int pkey;\n" +" int *buffer;\n" +"\\&\n" +" /*\n" +" * Alocă o pagină de memorie.\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" +" * Introduce niște date aleatorii în pagină (întotdeauna în regulă pentru a le accesa).\n" +" */\n" +" *buffer = __LINE__;\n" +" printf(\"memoria tampon conține: %d\\en\", *buffer);\n" +"\\&\n" +" /*\n" +" * Alocă o cheie de protecție:\n" +" */\n" +" pkey = pkey_alloc(0, 0);\n" +" if (pkey == -1)\n" +" err(EXIT_FAILURE, \"pkey_alloc\");\n" +"\\&\n" +" /*\n" +" * Dezactivează accesul la orice memorie cu „pkey” stabilită,\n" +" * chiar dacă nu există niciuna în acest moment.\n" +" */\n" +" status = pkey_set(pkey, PKEY_DISABLE_ACCESS);\n" +" if (status)\n" +" err(EXIT_FAILURE, \"pkey_set\");\n" +"\\&\n" +" /*\n" +" * Stabilește cheia de protecție pe „memorie tampon”.\n" +" * Rețineți că este în continuare de citire/scriere în ceea ce privește mprotect(),\n" +" * iar precedentul pkey_set() are prioritate față de acesta.\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(\"pe cale de a citi din nou memoria tampon...\\en\");\n" +"\\&\n" +" /*\n" +" * Aceasta se va prăbuși, deoarece am interzis accesul.\n" +" */\n" +" printf(\"memoria tampon conține: %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 "CONSULTAȚI ȘI" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "B<pkey_alloc>(2), B<pkey_free>(2), B<pkey_mprotect>(2), B<sigaction>(2)" +msgstr "" +"B<pkey_alloc>(2), B<pkey_free>(2), B<pkey_mprotect>(2), B<sigaction>(2)" + +#. type: TH +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "2022-10-30" +msgstr "30 octombrie 2022" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "Linux man-pages 6.03" +msgstr "Pagini de manual de Linux 6.03" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"#define _GNU_SOURCE\n" +"#include E<lt>err.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>sys/mman.hE<gt>\n" +msgstr "" +"#define _GNU_SOURCE\n" +"#include E<lt>err.hE<gt>\n" +"#include E<lt>unistd.hE<gt>\n" +"#include E<lt>stdio.hE<gt>\n" +"#include E<lt>stdlib.hE<gt>\n" +"#include E<lt>sys/mman.hE<gt>\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" +" * Alocă o pagină de memorie.\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" +" * Introduce niște date aleatorii în pagină (întotdeauna în regulă pentru a le accesa).\n" +" */\n" +" *buffer = __LINE__;\n" +" printf(\"memoria tampon conține: %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" +" * Alocă o cheie de protecție:\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" +" * Dezactivează accesul la orice memorie cu „pkey” stabilită,\n" +" * chiar dacă nu există niciuna în acest 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" +" * Stabilește cheia de protecție pe „memorie tampon”.\n" +" * Rețineți că este în continuare de citire/scriere în ceea ce privește mprotect(),\n" +" * iar precedentul pkey_set() are prioritate față de acesta.\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(\"pe cale de a citi din nou memoria tampon...\\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" +" * Aceasta se va prăbuși, deoarece am interzis accesul.\n" +" */\n" +" printf(\"memoria tampon conține: %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 octombrie 2023" + +#. type: TH +#: fedora-40 mageia-cauldron +#, no-wrap +msgid "Linux man-pages 6.06" +msgstr "Pagini de manual de Linux 6.06" + +#. type: TH +#: fedora-rawhide +#, no-wrap +msgid "Linux man-pages 6.7" +msgstr "Pagini de manual de Linux 6.7" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "Linux man-pages 6.04" +msgstr "Pagini de manual de Linux 6.04" + +#. type: TH +#: opensuse-tumbleweed +#, no-wrap +msgid "Linux man-pages (unreleased)" +msgstr "Pagini de manual Linux (nepublicate)" |