El guardián secreto de Windows: ¿cómo funciona silenciosamente detrás de escena el Administrador de control de servicios?

Cuando inicia su sistema Windows, muchos servicios se ejecutan silenciosamente en segundo plano y son pilares importantes de la estabilidad del sistema operativo. La puesta en marcha y la gestión de estos servicios son en su mayor parte responsabilidad del Gestor de Control de Servicios (GCS). SCM es un proceso de sistema especial ubicado bajo el sistema operativo de la serie Windows NT, responsable de iniciar, detener e interactuar con los procesos de servicio de Windows.

La funcionalidad principal del SCM comienza con su función principal SvcCtrlMain(), que inicia todos los servicios configurados para iniciarse automáticamente.

El archivo ejecutable SCM services.exe se encuentra en %SystemRoot%\System32\ y lo inicia el proceso Wininit al principio del inicio del sistema. Cuando el SCM comienza a funcionar, primero inicializa su base de datos interna de servicios instalados, lo que implica leer claves de registro específicas.

En concreto, inicializa la base de datos interna leyendo las dos claves de registro siguientes:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder\List, esta clave contiene los nombres de los grupos de servicios y su orden.
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, esta clave contiene los datos reales del servicio y del controlador del dispositivo.

SCM determina el orden de carga de los servicios en función del valor del grupo y las dependencias de cada servicio. Durante este proceso, si se encuentra una dependencia circular, el SCM registrará un error y omitirá el servicio que depende del grupo cargado tardíamente.

El siguiente paso en el SCM es verificar si los controladores de dispositivo que deberían iniciarse durante el inicio del sistema se cargaron correctamente y guardar los controladores fallidos en una lista llamada ScFailedDrivers.

Luego, el SCM llama a la función ScAutoStartServices(), que recorre todos los servicios marcados para inicio automático y los inicia en consecuencia. Para cada servicio, el SCM llama a la función ScStartService() para garantizar que el proceso del servicio se ejecute bajo la cuenta correcta. Si el servicio no se ejecuta bajo la cuenta del sistema, el SCM llama a la función LSASS LogonUserEx() para recuperar la contraseña "secreta" que se almacenó de forma segura cuando se configuró el servicio inicialmente.

No sólo eso, también hay un tipo especial de servicio: el servicio de inicio automático retrasado. Este tipo de servicio se introdujo en Windows Vista para solucionar el problema del inicio lento del sistema. El SCM no comenzará a inicializar los servicios de inicio automático retrasado hasta que se hayan procesado todos los servicios de inicio automático no retrasado.

Aunque hay un retraso en el inicio de estos servicios, no son muy diferentes de otros servicios excepto por el orden en que se inician.

Vale la pena señalar que el SCM también maneja específicamente los servicios de controladores de dispositivos. El valor de registro de tipo de estos servicios es SERVICE_KERNEL_DRIVER o SERVICE_FILE_SYSTEM_DRIVER. Cuando el SCM llama a ScStartService(), también llama a la función ScLoadDeviceDriver() para cargar el controlador correspondiente.

A través de la llamada al sistema NtLoadDriver, el SCM garantiza que el controlador se cargue correctamente. Durante el proceso de inicio inicial, el SCM incluso es responsable de notificar a otras aplicaciones, como el Explorador de Windows, cuando el estado de conexión de una unidad de red cambia mediante la transmisión del mensaje de Windows WM_DEVICECHANGE.

Este diseño permite a los usuarios administrar mejor los recursos y servicios de su sistema, garantizando el buen funcionamiento del sistema operativo.

Sin embargo, a pesar del papel fundamental que desempeña SCM para poner en marcha un sistema, muchos usuarios no entienden realmente cómo funciona. Detrás de cada operación de SCM hay una tecnología compleja y eficiente que, de hecho, permite a los usuarios utilizar sin obstáculos aquellas aplicaciones y servicios aparentemente comunes.

En futuras versiones de Windows, ¿cómo evolucionará SCM para satisfacer necesidades cada vez más diversas de los usuarios?

Trending Knowledge

El secreto del inicio automático de servicios: ¿Cómo acelera el inicio el sistema Windows?
En la era digital actual, el inicio rápido y el funcionamiento eficiente del sistema son cruciales para los usuarios. Los sistemas Windows pueden iniciar muchos servicios en poco tiempo y detrás de es
Misterio de la pantalla azul: ¿Qué cambios sorprendentes ocurrirán si finaliza Services.exe?
En los sistemas operativos Windows modernos, el Administrador de control de servicios (SCM) o services.exe es uno de los componentes principales del funcionamiento del sistema. Este proce

Responses