Light Mode

Ves al contingut

Handle

De la Viquipedia, l'enciclopedia lliure
Per a altres significats, vegeu <<Handle System>>.

En programacio d'ordinadors, un handle es una referencia abstracta a un recurs que s'utilitza quan el programari d'aplicacio fa referencia a blocs de memoria o objectes que son gestionats per un altre sistema com una base de dades o un sistema operatiu.[1] Un identificador de recurs pot ser un identificador opac, en aquest cas sovint es un nombre enter (sovint un index de matriu en una matriu o "taula" que s'utilitza per gestionar aquest tipus de recurs), o pot ser un punter que permet l'acces a mes informacio. Els controladors de recursos habituals inclouen descriptors de fitxers, endolls de xarxa, connexions a bases de dades, identificadors de proces (PID) i identificadors de treballs. Els PID i els ID de treball son nombres enters visibles explicitament; mentre que els descriptors de fitxers i els socols (que sovint s'implementen com una forma de descriptor de fitxers) es representen com a nombres enters, normalment es consideren opacs. En les implementacions tradicionals, els descriptors de fitxers son indexs en una taula de descriptors de fitxers (per proces) i, per tant, una taula de fitxers (a tot el sistema).[2]

Comparacio amb punters

[modifica]

Mentre que un punter conte l'adreca de l'element al qual fa referencia, un handle es una abstraccio d'una referencia que es gestiona externament; la seva opacitat permet que el referent sigui reubicat a la memoria pel sistema sense invalidar el maneig, fent-lo semblant a la memoria virtual per a punters, pero encara mes abstracte. De la mateixa manera, la capa extra d'indireccio tambe augmenta el control que te el sistema gestor sobre les operacions que es fan sobre el referent. Normalment, el manec es un index o un punter a una matriu global de lapides.[3]

Una fuga d'identificador es un tipus d'error de programari que es produeix quan un programa informatic no allibera un identificador que havia assignat anteriorment. Aquesta es una forma de fuga de recursos, analoga a una fuga de memoria per a la memoria assignada previament.

Seguretat

[modifica]

En termes informatics segurs, com que l'acces a un recurs mitjancant un identificador esta mediat per un altre sistema, un maneig funciona com una capacitat: no nomes identifica un objecte, sino que tambe associa drets d'acces. Per exemple, mentre que un nom de fitxer es falsificable (es nomes un identificador endevinable), un sistema extern dona un identificador a un usuari i, per tant, representa no nomes la identitat, sino tambe l'acces concedit.

Exemples

[modifica]

Les nanses eren una solucio popular per a la gestio de memoria en sistemes operatius dels anys noranta, com Mac OS[4] i Windows. L'estructura de dades FILE a la biblioteca d'E/S estandard C es un identificador de fitxers, abstraient de la representacio del fitxer subjacent (a Unix aquests son descriptors de fitxers). Igual que altres entorns d'escriptori, l'API de Windows utilitza en gran manera els identificadors per representar objectes del sistema i per proporcionar una via de comunicacio entre el sistema operatiu i l'espai d'usuari. Per exemple, una finestra a l'escriptori es representa amb un manec de tipus HWND (handle, finestra).Els identificadors doblement indirectes (on el maneig no es necessariament un punter, pero pot ser, per exemple, un nombre enter) han caigut en desgracia en els ultims temps, ja que els augments de la memoria disponible i els algorismes de memoria virtual millorats han fet que l'us del punter mes senzill sigui mes. atractiu. No obstant aixo, molts sistemes operatius encara apliquen el terme als punters a estructures de dades opaques i "privades" (punters opacs) o als indexs en matrius internes passats d'un proces al seu client.

Referencies

[modifica]
  1. | Hertzfeld, Andy. The Original Macintosh: Hungarian (en angles), 1982-01.
  2. | <<Handles vs Threads vs Processes>> (en angles). [Consulta: 9 desembre 2023].
  3. | <<On Computing Handle and Tunnel Loops>> (en angles). [Consulta: 9 desembre 2023].
  4. | Hertzfeld, Andy. <<The Original Macintosh: Hungarian>>, 01-01-1982. [Consulta: 10 maig 2010].