domingo, 14 de marzo de 2010

svchost.exe

Recientemente y tras 13 años trabajando con alernativas libres a Microsoft [ OpenBSD, Linux... ] me apetece volver a trabajar con Windows. Ya no recuerdo nada de lo que este aparentemente simple sistema operativo hace, tiene y oculta, así que a modo educativo para mi mismo voy a investigar un poco sobre ello.
Y como bien digo en el título de esta entrada quiero saber que diantres es este proceso que siempre tengo corriendo.
Si abro el Administrador de tareas [ Control + Mayúsculas + ESC ] me salen varios procesos con dicho nombre:



Sí visito el servicio de soporte de Microsoft aparece una entrada informamando sobre ello:

"a generic host process name for services that run from dynamic-link libraries”.
Uséase, no me aclaran nada.





Una librería dinámica es comunmente conocida como una .dll, no es más que un bloque de código y según comprendo no es capaz de ejecutarse por si sola, es decir, se requiere de la presencia de un .exe para que cargue y sea efectivo el código contenido en la mencionada librería.
Dicho esto se puede dar a entender que svhost.exe carga una .dll para que se puedan ejecutar aplicaciones del sistema. Poco aclaratorio de momento, pero sigo, pues realmente deseo conocer el intríngulis del tema.

Y para ello voy a recurrir a la línea de comandos, sí, incluso en windows me gusta.
Para ello utilizo cmd [ Tecla Windows + r y escribo cmd en el diálogo que me aparece ]. Una vez allí ejecuto el comando: tasklist /SVC con lo que aparecerán todas las librería dinámicas que svhost.exe está ejecutando:




Y aquí me lío mucho más, que son todas esas librerías!!!
Para aclararme un poco más requeriré de otro software, en este caso voy a utilizar Process Explorer descargable via Microsoft Technet. No requiere de instalación, es un binario que funciona tal cual lo descargas, sólo basta descomprimirlo y lanzarlo. Tiene muchísimas opciones, pudiendo ser interesante por ejemplo, en este caso, de investigar los procesos por separado uno de otros y con la posibilidad de expandir y ver las propiedades de cada uno:






Decididamente ahora y gracias a estas dos aplicaciones ya soy capaz de distinguir cada uno de los servicios que el permanente en los procesos del sistema svhost.exe está ejecutando. Pero aún queda por resolver una incógnita:
¿ Por que tengo varios svhost.exe ejecutándose a la vez ?

La respuesta y gracias a varias páginas encontradas por la web se puede resumir; Cada svhost.exe ejecuta servicios basados en grupos de servicios lógicos, es decir, uno puede estar ejecutando servicios de red mientras que otro se dedica a tratar con los drivers del sistema, y así un largo etcétera para las variopintas cosas que tenemos por aquí lanzadas.
Teniendo estos servicios ejecutándose por separado tiene la ventaja que si uno de ellos termina, teóricamente no nos dejará el sistema por completo congelado...
AI!

1 comentario:

kir dijo...

Increible las porquerías que se ven haciendo una autopsia a windows!