I servizi di Windows

Un’esplorazione dei processi e dei programmi utilizzati dal sistema operativo targato Microsoft: che cosa sono, a cosa servono, quando si possono disattivare

gennaio 2004 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.

continua…

LASCIA UN COMMENTO

Inserisci il tuo commento
Inserisci il tuo nome