Bit lipicios

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În Unix si Unix- ului de operare sisteme , și , în general , în POSIX sisteme, bitul lipicios este o permisiune specială , care poate fi asociat cu un fișier ( de obicei fișiere executabile ) sau un director .

Istorie

Bitul lipicios a fost introdus în ediția a cincea a UNIX, în 1974 , pentru a fi utilizat numai pe fișiere executabile . Dacă este setat, acesta a forțat sistemul de operare să păstreze imaginea programului în spațiul swap chiar și după ce procesul aferent sa încheiat. Acest comportament a accelerat execuțiile ulterioare, deoarece spațiul de swap a fost tratat ca un fișier contigu și, prin urmare, mai rapid de recitit decât fișierele executabile , care ar putea fi stocate fragmentate în sistemul de fișiere . [1] Programele pornite frecvent, cum ar fi editorii de text , au câștigat mult în viteza de pornire. Printre problemele cauzate de utilizarea bitului sticky a fost aceea de a înlocui fișierul executabil original: pentru a face acest lucru, a trebuit mai întâi să scoateți bitul sticky din fișierul executabil, apoi să rulați programul și apoi să îl părăsiți pentru a goliți memoria cache , apoi înlocuiți fișierul executabil și restabiliți în cele din urmă bitul lipicios .

Viteza câștigată în repetări a fost pierdută când Unix a fost portat pe sisteme hardware cu suport pentru acces direct la memorie prin dispozitive de stocare în masă , precum și pe cele care au înlocuit sistemul de swapping cu paginare . În ciuda acestui fapt, bitul lipicios a rămas operațional în multe variante ale versiunii 5 (mai ales pe sistemeleSolaris [2] și pe HP-UX ). Versiunea BSD 4.4 Lite a păstrat suportul de biți lipicios pe sistemul său, apoi l-a eliminat în versiunile OpenBSD (de la versiunea 3.7) și FreeBSD (de la versiunea 2.2.1); rămâne în NetBSD . Nicio versiune de Linux nu a acceptat vreodată comportamentul tradițional pentru fișierele executabile.

Utilizare

În prezent, bitul lipicios este utilizat în mod obișnuit pentru directoarele destinate să conțină fișiere temporare ale mai multor utilizatori: dacă este setat pe un director indică faptul că fișierele și subdirectoarele conținute în acesta pot fi șterse sau redenumite numai de către proprietar sau de către proprietarul director sau de către utilizatorul root , chiar dacă aveți toate celelalte permisiuni de scriere necesare. Această permisiune este adesea setată în directorele / tmp și / var / tmp pentru a împiedica utilizatorii obișnuiți să șteargă sau să mute fișiere temporare aparținând altor utilizatori, permițând în același timp oricui să creeze fișiere și directoare noi. Acest comportament a fost introdus în 4.3BSD ( 1986 ) și este încă prezent în multe sisteme Unix astăzi.

Pe Solaris, începând cu SunOS 2.5, bitul lipicios poate fi setat de administrator ( rădăcină ) pe fișiere neexecutabile pentru a instrui nucleul să nu cache date din aceste fișiere. Utilizarea este tipică în cazul fișierelor swap , pentru a evita ca operațiunile de acces la aceste fișiere să ajungă să ocupe memoria cache în detrimentul altor date mai importante. Acest comportament este, de asemenea, exploatat ocazional pentru a efectua teste care măsoară performanța sistemului ( etalon ).

Exemple

Bitul lipicios poate fi setat prin comanda chmod , specificându-l prin reprezentarea sa octală 1000 sau prin reprezentarea simbolică t ( s este deja utilizat pentru permisiunea setuid ).

De exemplu, pentru a-l seta la directorul / usr / local / tmp puteți utiliza comanda

 # chmod + t / usr / local / tmp

Pentru a vă asigura că directorul are și celelalte permisiuni standard de director partajat pentru fișierele temporare pe care le puteți utiliza

 # chmod 1777 / usr / local / tmp

În notația simbolică a permisiunilor , prezența bitului lipicios este indicată de litera t în ultimul loc (cea utilizată altfel pentru a indica permisiunea de execuție pentru cealaltă clasă). De exemplu, pe Solaris 8, directorul / tmp , care are în mod normal bitul lipit pornit, arată astfel:

 $ ls -ld / tmp
 drwxrwxrwt 4 root sys 485 10 noi 06:01 / tmp

În cazul fișierelor sau directoarelor fără permisiunea de executare pentru cealaltă clasă, se folosește în schimb litera majusculă T , de exemplu:

 # ls -l test
 -rw-r - r-- 1 rădăcină alt 0 Nov 10 12:57 test

 # test chmod + t; ls -l test
 -rw-r - rT 1 rădăcină alt 0 Nov 10 12:57 test

Notă

  1. ^ (RO) W. Richard Stevens, Fișiere și directoare în programarea avansată în mediul UNIX, Addison Wesley, 1992, p. 88, ISBN 0-201-56317-7 .
    „Pe versiunile anterioare ale Unix, acest bit era cunoscut sub numele de bit lipicios . Dacă a fost setat pentru un fișier de program executabil, atunci prima dată când programul a fost executat, o copie a textului programului a fost salvată în zona de swap la finalizarea procesului. (Partea text a unui program este instrucțiunile mașinii.) Acest lucru a făcut ca programul să se încarce mai repede în memorie data următoare când a fost executat, deoarece zona de swap a fost tratată ca un fișier contigu, în comparație cu locația posibil aleatorie a blocurilor de date din un sistem de fișiere Unix normal. " .
  2. ^ Pagina manuală Solaris 10 chmod (2) [ link rupt ]

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT