CATEGORII DOCUMENTE |
Schimbarea directorului sau a radacinii - UNIX
La incarcarea sistemului, procesul 0 stabileste ca radacina a sistemului de fisiere directorul sau curent din perioada initializarii. El executa algoritmul iget pentru a obtine inodul radacina, il salveaza in u area ca director curent, si elibereaza. Atunci cand se creaza un proces prin apelul sistem fork, acest proces mosteneste in zona sa u area directorul curent al procesului tata, iar nucleul incrementeaza valoarea contorului de referinta din inod.
algoritm change directory
intrare: numele noului director
iesire: niciuna
deblocheaza inodul;
elibereaza inodul corespunzator directorului curent anterior
(algoritm iput);
plaseaza informatiile corespunzatoare noului inod in slotul
corespunzator directorului curent din u area;
}
Figura 5.14. Algoritm pentru schimbarea directorului curent
Algoritmul chdir (figura 5.14) modifica directorul curent al unui proces.
Sintaxa apelului sistem chdir este:
chdir (numeIcale);
unde numeIcale este numele noului director curent al procesului.
Nucleul analizeaza numele noului director folosind algoritmul namei si verifica daca acesta este intr-adevar director, precum si permisiunile de acces. Noul inod este eliberat, dar ramane alocat si cu valoarea contorului de referinta incrementata. Se elibereaza inodul vechiului director curent memorat in u area (algoritm iput), iar noul inod este salvat in u area. Dupa schimbarea directorului curent algoritmul namei va utiliza inodul din u area ca director de inceput pentru cautarea cailor ce nu incep din radacina. Dupa executia apelului chdir, contorul inodului noului director este cel putin 1, pe cand cel al directorului anterior poate fi 0. Inodul alocat in timpul unui apel chdir este eliberat numai cand procesul executa un alt apel chdir sau se termina.
Pentru fiecare utilizator se pastreaza in nucleu o variabila globala care pointeaza spre inodul radacinii sistemului. O copie a acestei variabile este in u area. Procesele pot schimba radacina curenta (cea din u area) prin intermediul apelului sistem chroot. Sintaxa este:
chroot (numeIcale);
unde numeIcale este numele noii radacini. Algoritmul pentru chroot este similar cu chdir.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1018
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved