Descriptorul indexului este

Vezi detalii

Atunci când creați un sistem de fișiere, sunt create și structuri de date care conțin informații despre fișiere. Fiecare fișier are propriul inod, identificat prin numărul de inode (adesea denumit "i-number" sau "inode"), în sistemul de fișiere în care este localizat fișierul.







Inodes stochează informații despre fișiere, cum ar fi apartenența la proprietar (utilizator și grup), modul de acces (citire, scriere, executare) și tipul de fișier. Există un anumit număr de inode, care indică numărul maxim de fișiere permise de un anumit sistem de fișiere. De obicei, atunci când creați un sistem de fișiere, aproximativ 1% din acesta este alocat inode.

  • Numărul de inode este introdus în tabelul inode la o anumită locație de pe dispozitiv; de către numărul inode, nucleul sistemului poate citi conținutul inod, inclusiv indicatorii de date și conținutul altor fișiere.
  • Puteți vedea numărul inod al fișierului utilizând comanda ls -i. iar comanda ls-l va afișa informațiile stocate în inod.
  • Sisteme de fișiere care nu fac parte din sistemul tradițional UNIX FS, cum ar fi stat - apel sistem. furnizarea de informații către programe.

Numele de fișiere și conținutul directorului

  • Inodurile nu stochează nume de fișiere, ci doar informații despre conținutul lor.
  • Directoarele din Unix sunt liste de structuri "de referință", fiecare conținând un nume de fișier și un număr inode.
  • Kernel-ul ar trebui să răsfoiască directorul în căutarea numelui fișierului, apoi să convertească acel nume la numărul de inode corespunzător, dacă reușește.

Reprezentarea datelor din memoria de bază numit inode struct (inode structurală) (BSD în sistemul de operare folosește termenul vnode. Litera V indică virtuală nucleul sistemului de fișiere.

Descrierea inodei în POSIX

Standarde Unix. Fișierele permanente trebuie să aibă următoarele atribute:

  • Lungimea fișierului în octeți.
  • ID dispozitiv (identifică dispozitivul care conține fișierul).
  • ID-ul utilizatorului. care deține fișierul.
  • ID-ul grupului din fișier.
  • Un mod de fișier care determină utilizatorii care pot citi, scrie și executa fișierul.
  • ctime. timpul de modificare, ultima modificare a conținutului fișierului (timpul de modificare a timpului) și ultimul acces (timpul de acces temporar).
  • Numărul de referințe indică numărul de legături dure. indicând un inod.
  • Indică blocurile de discuri care stochează conținutul fișierului (consultați structura indicatorului din inode).

Apelul sistemului stat citește numărul inode al fișierului și unele informații din inode.

Originea cuvântului

Motivul exact pentru utilizarea "și" în noduri (noduri) nu este cunoscut. Ca răspuns la o întrebare despre acest lucru, unul dintre pionierii sistemelor Unix, Dennis Ritchie a răspuns:

Sincer, nu știu prea multe despre asta. A fost doar un termen pe care am început să-l folosim. „Index“, cred, a fost folosit din cauza structurii oarecum neobișnuită a sistemului de fișiere pentru a stoca informații despre accesul la fișiere într-o matrice plat (bidimensional) pe disc, și toate informațiile de director ierarhie sunt stocate separat. Astfel, numărul i a fost un indice în această matrice, iar -nodul este elementul selectat al matricei. (Prefixul "i-" a fost folosit în prima versiune a manualului, cu timp, cratimele s-au oprit folosind).







Ie index nod (nod index, element) → index-node → i-node → inode - trunchierea treptată și fuzionarea nodului index al frazării. Conform unei alte versiuni, litera i inițială din i-node este derivată din cuvântul informație (informație).

Caracteristicile sistemului de fișiere care conduc la utilizarea inodes descurajează mulți utilizatori care nu sunt familiarizați cu acest concept:

  • Dacă mai multe nume indică același inode (linkuri tari), atunci toate numele sunt considerate echivalente. Primul nume creat nu are nicio poziție specială. Aceasta este diferită de comportamentul unor legături simbolice similare. care depind de numele original.
  • Un inode poate să nu aibă deloc referințe. De obicei, un astfel de fișier ar trebui să fie șters de pe disc (care este motivul pentru care tipul de program Undelete pe Unix nu permit să se stabilească exact numele fișierului de la distanță), iar resursele ar trebui să fie liber (acesta este un proces normal de ștergere fișier), dar, în cazul în care orice proces care deține deschis un fișier, acestea poate păstra accesul la acesta, iar fișierul va fi șters definitiv numai când ultima accesare a acestuia este închisă. Acest lucru se aplică și copiilor executabile care sunt păstrate de procesele deschise care le execută. Din acest motiv, programul de upgrade este recomandat să dezinstalați copia vechi și de a crea un nou inod pentru o versiune actualizată, care nu copii ale versiunii vechi nu a continuat să ruleze.
  • De obicei, nu este posibilă maparea unui fișier deschis și a numelui prin care a fost deschis. Sistemul de operare convertește numele fișierului la numărul inode la prima ocazie convenabilă și apoi "uită" numele fișierului. Astfel, funcțiile bibliotecilor getwd () încep să caute un fișier cu un inode care este același cu fișierul "." În directorul părinte din directorul părinte. apoi căutați directorul părinte pentru directorul curent și așa mai departe până la atingerea directorului "/". SVR4 și
  • Anterior, a fost posibil să se aplice legăturile tari către directoare. Aceasta a făcut structura directorului un grafic orientat în locul unui arbore. și anume graficul conectat cu margini N-1 și noduri N. De exemplu, catalogul a avut ocazia de a fi părintele său propriu. Sistemele moderne nu permit astfel de ambiguități, cu excepția directorului rădăcină, care este considerat a fi propria sa mamă.
  • Numărul inode de fișiere rămâne aceeași când mutați fișierul în alt director pe același dispozitiv sau defragmentarea discului. Prin urmare, mutarea sau directorul care conține fișierul sau conținutul său (sau ambele dintre ele împreună) nu este suficient pentru a preveni accesul la acesta procesul de funcționare, în cazul în care procesul este posibil să se calculeze numărul de inode. De asemenea, se prevede că controlează pe deplin comportamentul inode nu poate fi pus în aplicare pe o varietate de sisteme non-unix fișier cum ar fi FAT și succesorii săi, care nu sunt capabili să păstreze astfel de „inflexibilitate“ permanent atunci când directorul de fișiere și conținutul său sunt mutate.

Aplicare practică

Multe programe. utilizate de administratorii de sistem în sistemul de operare pe hard disk pfiles pot servi ca exemple în acest caz, deoarece trebuie să convertească în mod natural numerele inode în calea fișierului și înapoi. Acest lucru poate fi completat cu ajutorul utilitarului de căutare fișier -inum sau comanda -i).

Inodurile se pot "termina". În acest caz, nu puteți scrie informații dispozitivului, chiar dacă există suficient spațiu liber.

Ediția Y2038

Unele sistem de fișiere bazat pe inode, protejat de Y2038 problema (cunoscut sub numele de timp Unix), în vederea prevenirii date „preaplin“, dar, din păcate, nu toate aceste sisteme de fișiere sunt protejate de astfel de probleme. Când configurați un server,







Articole similare

Trimiteți-le prietenilor: