Quelle pazze pazze librerie, files "vitali" per il PC


Il corretto funzionamento di Windows e delle applicazioni dipende da alcuni files "vitali" per il PC.

Nei sistemi operativi Windows giocano un ruolo particolarmente importrante i files identificati dall'estensione DLL (Dynamic Link Library).
Detti comunmente "librerieDLL", sono piccoli parti di codice che svolgono funzioni ben specifiche. Sono così importanti che la loro manomissione o cancellazione può compromettere il funzionamento del sistema.
I files DLL sono sbarcati nel mondo dell'informatica agli inizi degli anni 90, voluti fortemente dagli sviluppatori, da sempre alla ricerca di un metodo pratico per aggiornare le proprie applicazioni.
In passato, infatti, quando si voleva aggiornare un software o correggerne un bug, era necessario ricompilare l'intera applicazione e distribuirla nuovamente agli utenti.
Con l'utilizzo dei files DLL, invece, questa operazione è notevolmente simplificata: basta sostituire la libreria che si occupa di una determinata funzione per fare gli aggiornamenti del caso.

http://www.codeproject.com/library/piarchitecture/add_dll.gif


Vantaggi e svantaggi dei DLL

L'utilizzo del files DLL, agevola non solo il lavoro dei programmatori, ma comporta anche un notevole risparmio di risorse hardware. Se un software è composto da un solo blocco, senza subdividerne le funzioni in files DLL, quando viene eseguito, sono messe in gioco tutte le sue funzioni, anche quelle non usate. Viceversa, adoperando le librerie DLL, le risorse del computer sono adoperate solo quando necessario. Ogni medaglia ha il suo rovescio: i files DLL sono spesso causa di conflitti software, dal momento che può capitare che più applicazioni installino versioni differenti della stessa libreria. La cosa è più grave quando programmi sviluppati per vecchie versioni di Windows, o realizzati da programmatori dilettanti, tentano di sovrascrivere le librerie di sistema. In questo caso il meccanismo di protezione di Windows ci avverte con una finestra di dialogo che un software sta provando a sostituire una libreria DLL, con un altro meno recente. Non ci sono dubbi: clicchiamo su SI per tenere la versione del file DLL presente sul disco e metterci al riparo da ogni possibile errore.

E se il file non c'è?

http://www.idchildsupport.com/Images/dll.jpg

Se una libreria DLL viene modificata )sovrascritta da un'altra versione o eliminata per errore), i programmi e lo stesso Windows possono smettere di funzionare corretamente o più addiritura divenire impossibili avviarli. Nei casi meno gravi è sufficiente ripristinare l'installazione del programma, in altre situazioni è necessario sostituire la libreria mancante o corrota (possiamo copiarle da un altro computer o trovarle su Internet utilizzando un motore di ricerca come Google).
Quando inseriamo una nuova libreria nella cartella di sistema (C:\Windows\System32) è necessario effettuarne la registrazione, cioè aggiornare alcune voci del registro di configurazione di Windows. Per fare ciò il sistema operativo ci mette a disposizione l'utility regsvr32.exe. L'utilizzo è molto semplice: basta digitare sul promt dei commandi DOS a dal menù Start/Esegui di Windows il comando:

regsur32.exe c:\percorso\nomedll.dll

Prima di tutto è necessario differenziare le Librerie Standard dalle Librerie COM.
Quando si utilizzano le prime si eseguono chiamate dirette alle funzioni API (Application Programming Interface) di windows. Le seconde, invece, hanno un interfaccia COM (Component Object Model), che permette di comunicare coi loro componenti tramite un'architettura Software e una Libreria dei Tipi, che permette l'utilizzo di funzioni come Object Browser e Auto List Members a livello di programmazione. Proprio queste funzioni fanno si che questo tipo di Librerie venga utilizzato per la maggiore dai programmatori. A livello di prestazioni le Librerie Standard sono più veloci mentre le Librerie COM garantiscono una miglior gestione degli errori (evitando il più possibile le famose schermate Blu).

Un'altra classificazione va fatta tra i file .DLL e quelli .EXE.

Le DLL lavorano sempre nello spazio d'indirizzamento del processo chiamante (in-process) e non possono funzionare in un proprio task. Un file eseguibile in genere può essere utilizzato sia come libreria che come programma a se stante e lavora sempre in un proprio processo. L'utilizzo di librerie .EXE è più lento perché il passaggio dei dati tra un processo ed un altro (Marshaling) richiede più tempo e più risorse. Lo svantaggio delle DLL è che in caso di un loro blocco l'intero processo viene bloccato compreso quindi il programma chiamante. [MARSHALING: E' l'operazione che utilizza COM ogni volta che deve comunicare con un server out-of-process.]

Un'ultima differenziazione va fatta tra i file .DLL e gli .OCX.
Entrambi i tipi di file lavorano allo stesso modo ma i secondi forniscono oltre alle funzioni anche una propria interfaccia grafica. Gli Ocx sono detti anche ActiveX.

Esistono infine altre particolari Librerie che contengono l'elenco delle Proprietà, degli Eventi e dei Metodi dei componenti COM; sono dette Dei Tipi e possono essere .EXE, .DLL, .OLB, .TLB, .OCX

API e DLL

Si è accennato in precedenza alle API. L'API di Win32 è costituita da un gruppo di DLL Standard che fornisco funzioni a basso livello al Sistema Operativo.

Eccone alcune:

KERNEL32.DLL funzioni operative di basso livello. (gestione della memoria, dei task, delle risorse e operazioni correlate)
USER32.DLL Funzioni relative alla gestione di Windows (messaggi, menu, cursori, timer, caret, comunicazioni e la maggior parte delle altre funzioni che non riguardano la visualizzazione.
GDI32.DLL Funzioni che hanno a che fare con l'output dei dispositivi
COMDLG.DLL, LZ32.DLL, VERSION.DLL Supporto per le finestre di dialogo comuni, la compressione dei file e il controllo della versione. In alcuni casi sono accessibili direttamente in altri è necessario ricorrere alla APIGID32.DLL
APIGID32.DLL Fornisce a VB l'interfaccia ad alcune funzioni non compatibili
ODBC32.DLL Una delle DLL che implementano l'Open Database Connectivy). Queste funzioni forniscono un API standard per diversi tipi di DataBase.
COMCTL32.DLL Implementa il nuovo gruppo di controlli delle finestre (elenco ad albero, ecc.)
MAPI32.DLL Forniscono le API che permettono a qualsiasi applicazione di operare sulla posta elettronica.
NETAPI.DLL Funzioni di accesso e controllo delle reti.
WINMM.DLL Funzionalità multimediali di un sistema.

Commenti

Post popolari in questo blog

Rilasciano BlenderBot v3, un chatbot che utilizza il loro modello OPT e aprono la demo per testarlo

Componenti aggiuntivi di Google Workspace

Come rimuovere il virus che trasforma le cartelle in collegamenti nella tua pendrive.