112882 Letture

Guida ai servizi di Windows - Prima parte

Per capire il contesto di questo articolo e comprendere l'importanza dei servizi di Windows, conviene chiarire alcuni concetti di base. Secondo Microsoft, un servizio è "un processo o insieme di processi che aggiunge funzionalità a Windows fornendo supporto ad altri programmi".
L'installazione standard di ogni versione di Windows comprende un nucleo di servizi adatto per la maggior parte delle necessità, ma offre agli utenti una certa flessibilità. Un utente con privilegi di amministratore può infatti attivare e disattivare i servizi e modificarne le proprietà. Così facendo può rendere Windows più efficiente, ma se commette un errore (disattivando un servizio necessario) può anche compromettere il funzionamento del sistema operativo e la sua capacità di riavviarsi.

Continuando con le definizioni, un servizio può anche essere visto come un'applicazione eseguita in background (in sottofondo), indipendentemente da qualunque sessione di utente. Ci sono altre definizioni fornite da Microsoft, alcune poco espressive (come "un servizio è un oggetto eseguibile, installato in un registro e gestito dal Service Control Manager"), altre più interessanti, come la prossima. Il glossario di Windows XP definisce un servizio come "Applicazione, routine o processo che esegue una funzione di sistema specifica per supportare altre applicazioni, in modo particolare a basso livello, ovvero un livello prossimo all'hardware".


Per ora ci siamo fatti l'idea che i servizi siano dei componenti eseguibili al servizio di altri programmi, ma vediamo il quadro d'insieme. Se apriamo il Task Manager (in Windows 2000 o XP, clic destro sulla barra degli strumenti sul fondo dello schermo e clic su Task Manager), vediamo che la sezione Applicazioni elenca i programmi in esecuzione e il loro stato, mentre la sezione Processi elenca i processi e il relativo utilizzo di risorse.


Le applicazioni includono i programmi eseguiti dall'utente, non i componenti di Windows. I processi sono programmi eseguibili (come explorer.exe, ovvero Esplora risorse) oppure servizi (come l'utility di pianificazione, una delle tante funzioni del processo svchost.exe).

Secondo Microsoft, un processo è "spazio degli indirizzi virtuale e informazioni di controllo necessari per l'esecuzione di un programma". In pratica un processo è un programma in esecuzione.


La definizione completa sarebbe: un oggetto del sistema operativo che consiste di un programma eseguibile, di un insieme di indirizzi di memoria virtuale e di uno o più thread; un processo è creato quando un programma viene eseguito.

Un thread è una parte di programma che può essere eseguita in modo indipendente, contemporaneamente ad altri thread, così da sfruttare al meglio le risorse hardware. Molte grosse applicazioni, come Photoshop, sono multithreaded, cioè usano più thread per eseguire lavori simultanei su più CPU.
Le definizioni fin qui riportate però si possono prestare a diverse interpretazioni. Per esempio, se un processo è un programma in esecuzione (vero) e un servizio è "uno o più processi..." (citando Microsoft), allora un servizio è per forza in esecuzione o non è un servizio? No, è imperfetta la definizione citata all'inizio. Un servizio può essere fermato e può cessare quindi di essere un processo, pur rimanendo un programma eseguibile pronto per essere riattivato.

Se apriamo Servizi nella finestra degli Strumenti di amministrazione (dal Pannello di controllo), l'elenco ci mostra tutti i servizi installati e dal loro stato vediamo che solo in parte sono attivi (avviati). La colonna Tipo di avvio dice che parte dei servizi è predisposta per l'avvio manuale da parte dell'utente, parte è ad avvio automatico, (servizi avviati automaticamente dal sistema anche quando non sono utilizzati) e una piccola parte è disabilitata perché non necessaria nella configurazione corrente del sistema.


Per dimostrare quanto si siano sbizzarriti gli autori della documentazione di Microsoft, vi offriamo un'ultima definizione di servizio presa dall'help di Windows XP: "Un servizio è un tipo di applicazione eseguita in background ed è simile alle applicazioni daemon UNIX. Le applicazioni di servizio offrono funzionalità quali applicazioni client/server, server Web e database, nonché altre applicazioni basate su server a utenti, sia a livello locale che in rete". Anche questa definizione contiene qualcosa di vero ma, a parte l'omaggio a Unix, rischia di essere fuorviante.


Che cos'è un servizio?
Dopo aver preso atto delle definizioni di Microsoft e di altre fonti, tentiamo di fare una sintesi. Un servizio è un programma eseguito in background per fornire funzionalità di basso livello, strettamente integrate con il sistema operativo, a componenti di Windows o ad applicazioni.

Molti servizi operano a livello molto basso, per esempio interagendo direttamente con l'hardware e vengono quindi eseguiti sotto l'account System, che ha il massimo livello di privilegi. Se aprite la citata finestra Servizi (eseguibile anche attraverso Start, Esegui, services.msc) e ne scorrete l'elenco, scoprirete probabilmente che oltre ai servizi di sistema la vostra configurazione di Windows include anche alcuni servizi applicativi.

Alcuni esempi sono Diskeeper, Norton Antivirus Autoprotect Service, Norton Personal Firewall Accounts Manager, Norton Unerase Protection, Nvidia Driver Helper Service, Symantec Event Manager, Symantec Password Validation Service, Symantec Proxy Service, V2i Protector e altri che vengono installati da applicazioni commerciali per funzionare a stretto contatto col sistema operativo e offrire la massima protezione e le migliori prestazioni.


Guida ai servizi di Windows - Prima parte - IlSoftware.it