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.
Come gestire i processi (senza fare danni)
Windows offre diverse utility per visualizzare i servizi e le relative proprietà e per modificarne lo stato e gli attributi. La citata utility Servizi in Strumenti di amministrazione elenca il nome in chiaro dei servizi, una descrizione (non sempre presente) e gli attributi. Oltre a permettere di avviare e arrestare i servizi, ne visualizza le proprietà (clic destro sul servizio, Proprietà) consentendo di modificarle. Per evitare di fare disastri nel modificare lo stato o la modalità di avvio dei servizi, prima di partire in esplorazione è bene chiarire che cosa non bisogna fare e come ci si può cautelare da manovre azzardate.
Profili hardware
Al momento dell’installazione, Windows crea un profilo hardware standard, vale a dire una certa configurazione di dispositivi hardware attivati e di servizi abilitati. In termini di configurazione hardware, può accadere ad esempio che un portatile sia usato, di volta in volta, con o senza docking station, dentro o fuori una rete locale e così via.
In tal caso basta creare nuovi profili hardware e, per ogni profilo aggiunto, disabilitare le periferiche superflue, riducendo l’uso di risorse e il tempo di avvio di Windows. Per creare un nuovo profilo hardware si entra nella applet Sistema del Pannello di controllo, si seleziona la linguetta Hardware, si clicca su Profili hardware e si copia il profilo corrente assegnando il nome desiderato al nuovo profilo. Poi si riavvia il computer e, nel menu dei profili hardware che verrà visualizzato all’avvio, si sceglie il profilo appena creato.
Ora si entra in Gestione Periferiche (Pannello di controllo, Sistema, Hardware, Gestione Periferiche), si seleziona una periferica da non utilizzare in questo profilo hardware, si seleziona Non utilizzare la periferica nel profilo hardware corrente (disabilita) e il gioco è fatto: ogni volta che si avvia Windows con questo profilo, la o le periferiche disabilitate non verranno installate.
Ora che sappiamo creare profili hardware alternativi, li possiamo usare non solo per personalizzare l’uso delle periferiche, ma anche per fare esperimenti con la disattivazione dei servizi. Il profilo standard, che raccomandiamo di non modificare, resterà sempre disponibile se disattivate qualche servizio di troppo e Windows non riparte o diventa instabile.
Profili hardware e servizi
Così come per ogni profilo hardware si possono disabilitare le periferiche superflue, lo stesso si può fare con i servizi. Avviando Windows con un profilo hardware alternativo, in modo da mantenere integro il profilo standard, si entra in Servizi, si fa clic destro su un servizio da disattivare nel profilo corrente, si apre Proprietà, Connessione, si seleziona il profilo e si clicca su Disattiva.
Questo è il modo corretto per modificare le impostazioni dei servizi.
Potete ad esempio creare un profilo hardware Gioco per velocizzare i giochi, dove disattivate tutti i servizi non necessari, un profilo Sicuro per far funzionare Windows in presenza di problemi e messaggi di errore e un profilo Router per utilizzare il PC solo come porta di accesso condiviso a Internet.
Servizi e dipendenze
Oltre a modificare le modalità di attivazione, Servizi permette di avviare, sospendere, riprendere e riavviare un servizio e vederne le proprietà, tutto tramite clic destro sul nome del servizio e il conseguente menu di scelta rapida.
In alternativa, potete fare le stesse cose nella sezione Generale delle Proprietà di un servizio. Ovviamente, possono esserci casi in cui l’attivazione di un servizio nel profilo hardware standard è indesiderata; se ne siete certi potete disabilitare un tale servizio direttamente nel profilo di default.
Un esempio è la disabilitazione del servizio Speed Disk di deframmentazione (componente delle utility Norton) quando è installato il programma Diskeeper con relativo servizio.
La sezione Relazioni di dipendenza della finestra Proprietà elenca i componenti di sistema che supportano il servizio selezionato e quelli che dipendono da questo servizio; in caso di problemi potete accertarvi che siano attivi e avviati i servizi necessari, mentre è bene consultare il secondo elenco prima di fermare o disabilitare un servizio apparentemente superfluo.
Da non fare
Quello che raccomandiamo di non fare è modificare l’attivazione dei servizi in modo globale, ovvero nel profilo hardware standard. L’unico modo consigliato per personalizzare la configurazione dei servizi nel vostro computer è:
1) create profili hardware aggiuntivi (lasciando intatto il profilo standard);
2) informatevi sulle funzioni del servizio e sugli eventuali servizi che ne hanno bisogno per funzionare;
3) evitate di disattivare i servizi essenziali di Windows.
Uno dei motivi che consigliano queste cautele è il fatto che le modifiche ai servizi vengono applicate a tutti gli utenti di Windows; se “truccate” il PC di casa senza creare un apposito profilo hardware per le modifiche, rischiate di attirarvi le ire e il dileggio dei famigliari. Per queste ragioni sconsigliamo l’uso indiscriminato dell’utility di configurazione di sistema (Msconfig.exe), che modificherebbe in modo magari irreparabile le modalità di attivazione dei servizi.
Fonti di informazioni
Le due utility principali di Windows che vi servono per esplorare i servizi e modificarne gli attributi sono Servizi in Strumenti di amministrazione e System Information, eseguibile via Start, Esegui, Msinfo32
e selezionando Ambiente software e Servizi.
Questi due programmi di solito vengono usati in coppia, perché in System Information trovate l’associazione tra il nome descrittivo del servizio (quello usato in Servizi), il nome effettivo del servizio e il suo percorso completo (directory e nome del programma eseguibile).
Per esempio, se volete disattivare il servizio MSMQ, non trovate questo nome in Servizi, a meno che sappiate che si tratti del servizio di message queuing (accodamento messaggi). Oppure vi chiedete se potete chiudere senza danni il processo mqsvc.exe
elencato in Task Manager, ma non sapete dove trovare informazioni.
In System Information scoprite che mqsvc.exe
è l’eseguibile del servizio MSMQ e in Servizi trovate la descrizione: “Offre un’infrastruttura di comunicazione per le applicazioni di messaggistica asincrona distribuite”, che per lo meno vi orienta sul campo di azione di questo servizio.
Inutile dire che cercando “servizi Windows” o “Windows services” su Google, avete solo l’imbarazzo della scelta tra le innumerevoli fonti di informazione elencate dal motore di ricerca.
Cautele
Sconsigliamo di usare Msconfig per modificare le impostazioni dei servizi, visto che le modifiche avrebbero effetto globale e potrebbero quindi danneggiare il sistema. Per lo stesso motivo, consigliamo di procedere con cautela nel modificare direttamente la configurazione dei servizi nel registro (in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
), un’operazione che neanche un esperto farebbe senza prendere le debite precauzioni (profili hardware, backup dei file di registro e così via).