table of contents
- trixie-backports 4.28.0-2~bpo13+2
- testing 4.28.0-2
- unstable 4.28.0-2
| PR_MPX_ENABLE_MANAGEMENT(2) | System Calls Manual | PR_MPX_ENABLE_MANAGEMENT(2) |
NUME¶
PR_MPX_ENABLE_MANAGEMENT, PR_MPX_DISABLE_MANAGEMENT - activează sau dezactivează gestionarea de către nucleu a eXtensiilor de protecție a memoriei (MPX)
BIBLIOTECA¶
Biblioteca C standard (libc, -lc)
SINOPSIS¶
#include <linux/prctl.h> /* Definirea constantelor PR_* */ #include <sys/prctl.h>
[[depreciat]] int prctl(PR_MPX_ENABLE_MANAGEMENT, 0L, 0L, 0L, 0L); [[depreciat]] int prctl(PR_MPX_DISABLE_MANAGEMENT, 0L, 0L, 0L, 0L);
DESCRIERE¶
Activează sau dezactivează gestionarea de către nucleu a tabelelor de limite a eXtensiilor de protecție a memoriei („Memory Protection eXtensions”: MPX).
MPX este un mecanism asistat hardware pentru efectuarea verificării limitelor pe indicatori. Acesta constă dintr-un set de registre care stochează informații privind limitele și un set de prefixe de instrucțiuni speciale care indică procesorului la ce instrucțiuni ar trebui să aplice limitele. Există un număr limitat de astfel de registre, iar atunci când există mai mulți indicatori decât registre, conținutul acestora trebuie să fie „vărsat” într-un set de tabele. Aceste tabele se numesc „bounds tables” (tabele de limie/limitări), iar operațiile MPX prctl() controlează dacă nucleul gestionează alocarea și eliberarea lor.
Atunci când gestionarea este activată, nucleul va prelua alocarea și eliberarea tabelelor de limite. Acesta face acest lucru prin captarea excepțiilor #BR care rezultă la prima utilizare a tabelelor de limitare lipsă și, în loc să transmită excepția în spațiul utilizator, alocă tabelul și completează directorul de limitare cu locația noului tabel. Pentru eliberare, nucleul verifică dacă sunt prezente tabele de limitare pentru memoria care nu este alocată și le eliberează dacă este cazul.
Înainte de a activa gestionarea MPX utilizând PR_MPX_ENABLE_MANAGEMENT, aplicația trebuie mai întâi să fi alocat un tampon în spațiul utilizatorului pentru directorul de limite și să fi plasat locația acelui director în registrul bndcfgu.
Aceste apeluri eșuează dacă procesorul sau nucleul nu acceptă MPX. Suportul nucleului pentru MPX este activat prin opțiunea de configurare CONFIG_X86_INTEL_MPX. Puteți verifica dacă CPU-ul acceptă MPX prin căutarea bitului mpx CPUID, ca de exemplu cu următoarea comandă:
cat /proc/cpuinfo | grep ' mpx '
Un fir nu poate intra sau ieși din modul lung (64 de biți) în timp ce MPX este activat.
Toate firele dintr-un proces sunt afectate de aceste apeluri.
Copilul unui fork(2) moștenește starea gestionării MPX. În timpul execve(2), gestionarea MPX este reinițializată la o stare ca și cum ar fi fost apelat PR_MPX_DISABLE_MANAGEMENT.
VALOAREA RETURNATö
În caz de succes, se returnează 0. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.
ERORI-IEȘIRE¶
- ENXIO
- Nucleul sau procesorul nu acceptă gestionarea MPX. Verificați dacă nucleul și procesorul au suport MPX.
STANDARDE¶
Niciunul.
ISTORIC¶
Linux 3.19. Eliminat în Linux 5.4. Numai pe x86.
Din cauza lipsei de suport pentru lanțul de instrumente, PR_MPX_ENABLE_MANAGEMENT și PR_MPX_DISABLE_MANAGEMENT nu sunt acceptate în Linux 5.4 și ulterior.
CONSULTAȚI ȘI¶
Pentru informații suplimentare despre Intel MPX, consultați fișierul sursă al nucleului Documentation/x86/intel_mpx.txt.
TRADUCERE¶
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
| 1 iunie 2024 | Pagini de manual de Linux 6.9.1 |