- Smss.exe
-
Session Manager Subsystem
Session Manager Subsystem (sous-système gestionnaire de session smss.exe) est un composant de Windows.
Il est exécuté dès le processus de démarrage de Windows (2003, XP, 2000, Windows NT 4.0). Durant cette phase, il lance autochk.exe pour vérifier le ou les différent(s) systèmes de fichiers, puis après cette vérification, il crée les variables d'environnement et démarre
- La gestion de la mémoire : pagination, mémoire virtuelle, fichier de swap pagefile.sys (i.e. fichier d'échange)
- le mode noyau du sous-système Win32 (win32k.sys) et lance les processus
- Les processus
- Winlogon.exe
- le mode utilisateur du sous-système win32 : csrss.exe (Client/Server Runtime SubSystem)
S'il y a plus d'une session ouverte (c'est-à-dire plusieurs utilisateurs connectés en même temps), smss.exe lance à chaque fois le nouveau processus winlogon.exe pour l'utilisateur correspondant.
Sur Windows XP (pack 2 ou non), si le processus lsass.exe (système de sécurité) ou winlogon.exe ou services.exe s'arrête, alors smss.exe provoque le reboot de l'ordinateur. Cela permet de garantir la sécurité.
NB : Si le processus csrss.exe s'arrête, cela provoque un reboot direct, sans passer par smss.exe. La raison en est que csrss.exe est le seul processus qui a le bit processus critique positionné dans la structure EPROCESS
Procédure de démarrage
Voir Processus de démarrage de Windows NT#Gestionnaire de session (smss.exe)
Configuration
Variables d'environnement
Certaines variables d'environnement sont dans HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
%SystemRoot% ne fait pas partie de ces variables, mais elle est utilisée pour en définir d'autres.
Nom de la variable Valeur par défaut (Windows XP) Remarque PATH %SystemRoot%\system32;%SystemRoot% Exemple : Si .NET est installé, la nouvelle valeur sera PATH = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem PATHEXT Sans objet C'est une liste d'extension de fichier. Exemple de valeur .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH
ComSpec %SystemRoot%\system32\cmd.exe Chemin du fichier cmd.exe TEMP %SystemRoot%\TEMP Répertoire de fichiers temporaires TMP %SystemRoot%\TEMP Répertoire de fichiers temporaires windir %SystemRoot% FP_NO_HOST_CHECK No Sans objet NUMBER_OF_PROCESSORS Sans objet La valeur la plus fréquente est 1 (monoprocesseur) PROCESSOR_ARCHITECTURE Sans objet La valeur la plus fréquente est x86 PROCESSOR_IDENTIFIER Sans objet exemple de valeur : x86 Family 15 Model 31 Stepping 0, AuthenticAMD PROCESSOR_LEVEL Sans objet Exemple de valeur : 15 PROCESSOR_REVISION Sans objet exemple de valeur : 1f00 OS : Windows_NT Que le système d'exploitation soit Windows 2003 ou XP ou 2000 ou NT, la valeur est Windows_NT TVDUMPFLAGS : Sans objet exemple de valeur 10 JAVA_HOME : Répertoire de la machine virtuelle Java, plus exactement il s'agit du répertoire contenant l'arborescence des fichiers nécessaires pour la JRE (classe, bibliothèques logicielles). Voir chargeur de classe Java. Si Java est installé sur Windows, cette variable d'environnement sera créée lors de l'installation Autochk : Paramétrage vérification des systèmes de fichiers
Le paramétrage pour la vérification des systèmes de fichiers (autochk) est fait à 2 endroits :
- Valeur : HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute
- Arborescence : HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SFC System File Checker
Il est possible de modifier ces paramètres via un outil en ligne de commande : chkntfs.exe.
Gestion de la mémoire
Les paramètres concernant la gestion de la mémoire sont stockés dans HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
Paramètre pour la sécurité
La valeur de registre ClearPageFileAtShutdown permet d'effacer le fichier d'échange avant chaque arrêt, ce qui permet partiellement de préserver la confidentialité de certaines informations.
Attention ! Mettre cette valeur ClearPageFileAtShutdown à '"1" rallonge le temps de fermeture de Windows (par exemple, sur certains PC, il peut passer de moins de 5 secondes à 30 secondes ou plus...). Ceci ne se produira qu'à partir du deuxième boot après la modification du registre.
Paramètres pour les performances
Les valeurs de registre suivantes permettent d'adapter d'améliorer (ou de diminuer ...) les performances d'un ordinateur :
- 1) PagingFiles
- Cela permet d'indiquer le ou les disques qui contiennent le ou les fichiers de swap, la taille initiale et la taille maximale de ce fichier. Exemple de valeur
C:\pageFile.sys 1536 3072
- Il existe une interface graphique pour modifier ces paramètres, le chemin pour y accéder est le suivant : Panneau de configuration\Système\\Onglet Avancé\Bouton de paramètre de performances\Onglet Avancé\\bouton Modifier mémoire virtuelle
- 2) DisablePagingExecutive
- Utile pour un PC ayant beaucoup de RAM : il permet de conserver le noyau Windows en RAM
- 3) IOPageLockLimit
- Paramètre à adapter en fonction de la quantité de RAM de l'ordinateur
- 4) LargeSystemCache
- Est utile pour un serveur de fichiers ayant uniquement des petits fichiers
- 5) SecondLevelDataCache
- A adapter en fonction de la taille du cache L2 du BIOS
- 6) SystemPages
- pour exchange notamment
Il est aussi possible de paramétrer des switch de boot dans la phase d'amorçage (3GB, userva et autres) : voir boot.ini
Si Exchange est installé, le paramétrage de Exchange peut désactiver le paramétrage mémoire dans le gestionnaire de session (valeur ParametersSystem dans l'arborescence HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem)
Paramètres pour le licence Windows
Pour la Contrat de licence utilisateur final, les informations sur l'activation (WPA : Windows Product Activation) sont stockés dans HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\WPA.
Il y a un PID (Product ID) généré pour l'installation de Windows.
Compatibilité MS/DOS pour les ports LPTn et COMn
Sur les anciennes versions de Windows, il existait des ports LPT1, LPT2, … (ports parallèle pour imprimante par exemple) et COM1, COM2, … (ports série pour modem par exemple). La compatibilité des anciens programmes est assurée en partie par le gestionnaire de session.
Ces informations de configuration sont stockés sous l'arborescence HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\DOS devices.
Compatibilité POSIX
Pour la compatibilité POSIX de la gestion des sessions, les informations de configuration sont stockées dans HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\subSystems\Posix
Paramétrage du lancement de csrss.exe
Pour csrss.exe, les informations de configuration sont stockés dans HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\subSystems\CSRSS
Autres informations de configuration
Les autres informations de configuration sont :
- l'alimentation électrique HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power
DLL connus
Les DLL connus sont stockés dans HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLS, cela va de advapi32.dll à wldap32.dll en passant par kernel32.dll.
Comparaison avec unix
Gestion de la mémoire
Unix utilise une partition de swap alors que Windows utilise un (ou des) fichier(s) de swap (pagefile.sys).
L'équivalent du autochk.exe sous Unix/linux
fsck est l'utilitaire de base sous Unix/linux pour la vérification de tout type de système de fichiers.
Sur la distribution debian (version Sarge) de linux, la vérification initiale des systèmes de fichiers est faite via 2 scripts checkroot.fs et checkfs.sh qui sont appelés via des liens symboliques dans /etc/rcS.d. Ces 2 scripts utilisent fsck.
Voir aussi
Références externes
- (fr) Paramétrage de la vérification de fichiers
- (en) Exécuter Windows sans lsass.exe (Juillet 2005)
- (en) The Memory Manager in Windows Server 2003 and Windows Longhorn format Powerpoint
- Base de registre :
Catégories : Administration Windows | Composant Windows
Wikimedia Foundation. 2010.