Extras din proiect
Watchdogs sunt o extensie a sistemelor de fisiere din Unix. Implementarea lor consta într-un mecanism în interiorul nucleului prin care anumite fisiere pot fi supravegheate de catre procese. Cînd un alt proces încearca sa acceseze un fisier supravegheat, supervizorul (cel care este de fapt numit cîine de paza) este executat si i se paseaza informatii despre tipul accesului încercat. Supervizorul decide care trebuie sa fie rezultatul accesului.
1. Aplicatii
Numarul de aplicatii al unui astfel de mecanism este foarte mare. Cîteva posibilitati sunt urmatoarele:
1. ACL :
- (access control lists: liste de control al accesului): Unix ofera un sistem de protectie al fisierelor relativ rudimentar, bazat pe diviziunea utilizatorilor în 3 categorii: utilizatorul (unic) care poseda un fisier, grupul utilizatorilor care poseda fisierul si restul lumii. Se pot imagina scheme mai flexibile, în care un fisier are drepturi pentru mai multi utilizatori, de genul: X are voie sa scrie dar Y nu are voie sa citeasca. Un ``watchdog'' ar putea implementa un astfel de control;
2. fisiere active:
- în Windows NT fisierele sunt obiecte ``active'' în sensul ca procesele pot sa primeasca automat evenimente (events) atunci cînd alte procese actioneaza asupra fisierelor. În acest fel un manager de fisiere (File Manager) poate afisa permanent situatia cea mai recenta a fisierelor. În Unix asa ceva nu este cu putinta. Un watchdog ar putea însa intercepta actiunile si trimite semnale proceselor interesate de schimbarile pe fisiere;
3. continut generat dinamic:
- un watchdog poate genera dinamic continutul fisierelor în functie de anume parametri, cum ar fi identitatea procesului care acceseaza fisierul (cu alte cuvinte fiecare proces ar putea vedea altceva în acelasi fisier). Acest mecanism ar putea fi folosit pentru a implementa un server de web simplu emulînd mecanismele cgi-bin, prin care serverul executa alte procese cînd i se cer anume fisiere. Watchdog-ul poate subsuma aceste alte procese;
4. managere pentru ``obiecte de memorie'':
- sistemul de operare Mach permite utilizatorilor sa construiasca propriile lor sisteme de memorie virtuala; fiecare zona de memorie are un proces responsabil care pagineaza zona. În Unix de acest lucru se ocupa nucleul. Un watchdog, împreuna cu apelul de sistem mmap(), ar putea permite implementarea unor mecanisme ca cele din Mach: mmap() transforma un fisier într-o zona de memorie, iar managementul fisierului este facut de un watchdog. Schema asta este foarte flexibila; folosind-o se poate implementa de pilda un sistem de memorie partajata distribuita (DSM: distributed shared memory), în care mai multe procese de pe calculatoare diferite scriu în ``aceeasi'' zona de memorie;
5. colectare de statistici:
- putem scrie un watchdog care numara accesele la fisiere pentru a permite eventual optimizarea plasarii fisierelor des accesate sau studii despre obiceiurile programatorilor;
6. mecanismul de portal din BSD Unix:
- BSD 4.4 contine un mecanism numit ``portal'' care foloseste nume de fisiere pentru ``obiecte'' din retea; de pilda o legatura telnet TCP/IP la calculatorul foo.bar.org are un fisier numit /portal/tcpip/foo.bar.org/telnet. Un proces care deschide acest fisier stabileste de fapt o legatura telnet cu acel calculator. (Un portal este un fel de URL).
controlul versiunii:
sistemul de fisiere Translucent de la Sun creaza pentru fiecare fisier cîte o ``versiune'' noua atunci cînd este modificat, permitînd astfel recuperarea versiunilor mai vechi. Watchdog-ul poate face ceva asemanator;
fisiere la distanta,
etc.
2. Arhitectura sistemului
2.1. Terminologie
Conventii terminologice:
watchdog è atît procesul care supervizeaza accesul la un fisier cît si structurile de date din nucleu prin care watchdog-ul este implementat.
clienti ai watchdog-ului è procesele care actioneaza asupra fisierului supervizat
Preview document
Conținut arhivă zip
- Linux Watchdogs.doc