L’espace disque

Cet article parle de l’espace disque utilisé par Windows 7. Bien qu’à priori il semble naturel de vouloir utiliser le moins d’espace disque possible, il est de fait que les avantages associés à une plus grande utilisation l’emportent généralement sur les désavantages. Les choses ont changé récemment avec l’avènement des disques électroniques ( « solid-state »), ayant des capacités largement inférieures à celles des disques classiques. En règle générale, et en cas de besoin spécifique (et justifié), la plupart des logiciels, y-compris Windows, n’auraient aucune hésitation à s’approprier 100MB d’un disque de 60GB (ou 1500GB); cependant, au vu des machines performantes maintenant commercialisées ayant des capacités de 16GB en « solid-state », nous nous devons de soigneusement réexaminer l’espace disque utilisé par Windows, à la fois pendant l’installation, et aussi au cours du « vieillissement » du PC. Nous avons tenu à WinHEC une session dédiée aux disques électroniques qui pourra intéresser certains d’entre vous. L’article ci-dessous a été écrit par Michael Beck, un chef de programme dans l’équipe de déploiement du système d’exploitation. –Steven.

Nous allons parler « d’empreinte sur disque ». Dans le contexte de cet article, le terme « empreinte » représente le montant total d’espace disque utilisé par Windows. Ceci comprend non seulement les fichiers de Windows, mais aussi tout l’espace disque utilisé ou réservé pour les opérations relatives au système d’exploitation. J’entrerai plus en détail au cours de cet article sur la façon dont les différentes technologies de Windows utilisent l’empreinte sur disque.

Nous avons reçu pas mal de commentaires et de questions relatifs à l’empreinte sur disque, et sur les attentes que vous pouvez avoir au sujet de l’utilisation du disque dans Windows 7. Comme beaucoup de notions de conception dont nous avons déjà parlé, l’espace disque est aussi un sujet sur lequel nous devons faire des compromis. Cet article détaille certains de ces compromis, et répond aussi à certains des commentaires que nous avons reçus. Il est important de noter cependant que nous n’en sommes pas encore au point d’avoir finalisé les exigences de matériel pour Windows 7, et cet article ne présente donc qu’un contexte où nous nous concentrons sur l’ingénierie.

Nous allons organiser cet article autour de deux thèmes importants émergeant des commentaires et des questions que nous avons reçus :

  • Que contient le dossier WinSxS, pourquoi est-il si gros, et puis-je m’en débarrasser ?
  • Où va tout l’espace disque utilisé par les composants de Windows ?

Nous parlerons ensuite de l’ingénierie de Windows 7.

Le dossier WinSxS

Depuis Vista, nous recevons énormément de questions sur le nouveau dossier WinSxS (%SystemRoot%\winsxs), et beaucoup d’entre vous sont convaincus que c’est un gros consommateur d’espace disque – une simple consultation de ses propriétés révèle qu’il contient plus de 3000 fichiers, et prend 3.5GB sur le disque d’un système récemment installé. Après utilisation, la taille de ce dossier augmente encore plus. Aïe ! Voici un exemple pris d’une des machines de Steven.

clip_image002

La « modularisation » du système d’exploitation était un principe de base dans Vista, et devait résoudre un grand nombre de problèmes inhérents à l’installation, au support et à la fiabilité de Windows. En fait, le dossier WinSxS représente « l’état d’installation et de support » de tous les composants du système. Mais en réalité il n’utilise pas autant d’espace disque que vous l’indiquent les outils d’utilisation de disque intégrés dans Windows (DIR ou Explorer). Eh oui, le fait que nous rendions difficile de savoir quel espace disque est réellement utilisé dans un fichier est une remarque tout à fait justifiée !

En fait, pratiquement chaque fichier dans le dossier WinSxS est un lien « physique » vers les fichiers réels dispersés dans le système - ce qui signifie que les fichiers ne sont pas réellement dans le dossier. Par exemple, vous trouverez dans le dossier WinSxS un fichier appelé advapi32.dll occupant plus de 700KB, mais le réel fichier advapi32.dll est dans le dossier Windows\System32, et sera compté deux fois (ou plus) si vous regardez dans les dossiers individuels avec Windows Explorer.

Le bénéfice de ce principe est que la plateforme de support de Windows (les outils permettant de déployer les mises à jour logicielles et de sécurité) peut ainsi consulter le dossier WinSxS et aisément collecter un grand nombre de détails cruciaux concernant l’état général du système, comme par exemple ce qui est installé, ce qui est disponible à l’installation (comme les composants facultatifs, sur lesquels je reviendrai plus tard), quelles en sont les versions, ou quelles mises à jours sont sur le système, afin d’aider à déterminer quelles autres mises à jour de sécurité sont disponibles. Cette fonctionnalité nous apporte plus de performance et de fiabilité dans le support, et permettra aussi de développer dans le futur une meilleure structuration en couches du système, et de plus grandes capacités de configuration.

Le dossier WinSxS permet aussi le support hors ligne, et permet d’obtenir un « cliché » de Windows Vista. Avant Vista, le support de déploiement s’effectuait grâce au logiciel d’installation uniquement. Les professionnels IT installaient le système sur une machine, puis utilisaient des outils indépendants pour clicher une image du système installé, qu’ils répliquaient ensuite sur l’ensemble de leurs machines. Windows n’avait en lui-même pas de notion d’ « image ». Ceci signifie que plus de 80% des systèmes étaient déployés et mis à jour grâce à une technologie qui n’était pas supportée nativement, et qui demandait aux services IT de créer leurs propres solutions personnalisées afin de déployer et gérer Windows efficacement. De plus, l’état de système emmagasiné dans le dossier WinSxS peut aussi être consulté « hors ligne », ce qui signifie que l’image n’a pas besoin d’être démarrée ou de tourner pour recevoir des mises à jour. Ces deux fonctionnalités de WinSxS apportent une grande flexibilité et des réductions de cout aux services IT qui déploient Windows Vista, en facilitant la création d’images corporatives et leurs mises à jour hors ligne.

Bien qu’il soit vrai que l’existence même de WinSxS utilise de l’espace disque (il contient un bon nombre de fichiers de métadonnées, de dossiers, de manifestes, et de catalogues), le dossier est beaucoup plus petit qu’indiqué. L’espace de stockage réellement utilisé varie, mais sur un système ordinaire il est à peu près de 400MB. Bien que non négligeable, nous pensons que les bénéfices apportés aux mises à jour en justifient le cout.

Pourquoi le bureau reporte-t-il les liens physiques de cette façon ? Les liens physiques ont pour but d’optimiser l’empreinte sur disque des fichiers dupliqués dans tout le système. Les développeurs de logiciels peuvent aussi utiliser cette fonctionnalité de façon à minimiser la consommation d’espace disque de leurs applications. Il est donc capital que tout chemin d’accès utilisé par un logiciel aboutisse sur un fichier physique du système, de façon à permettre son chargement. Dans ce cas précis, le bureau n’est donc rien d’autre qu’un logiciel fournissant des informations sur les fichiers qu’il trouve. Malheureusement cette confusion, accompagnée du désir d’économiser de l’espace disque, a poussé certains à effacer ce dossier de leurs systèmes.

Nous avons vu plusieurs blogs sur internet, et même quelques outils « occultes », vous informant que la suppression du dossier WinSxS était possible. De fait, après installation, il est possible de l’éliminer du système, et votre machine paraitra démarrer et fonctionner correctement. Mais comme nous venons de l’expliquer, c’est une très mauvaise pratique, qui élimine la faculté de mettre à jour les composants système de façon fiable, ainsi que la faculté de mettre à jour ou de configurer les composants facultatifs de votre système. Windows Vista ne supporte le dossier WinSxS que sur un disque physique, et dans son emplacement d’origine. Au vu des données ci-dessus, il est clair que les risques encourus par sa suppression ou son déplacement en dépassent largement les bénéfices potentiels.

Où va l’espace disque ?

Tout le monde sait que l’ajout de nouvelles fonctionnalités nécessite plus d’espace disque – que ce soit dans Windows ou dans tout autre logiciel. Mais en fait, le « code » de Windows n’occupe qu’une portion relativement faible de son empreinte sur disque. La quantité de code nécessaire à l’installation de Windows Vista Edition Intégrale est d’un peu plus de 2GB, le reste de l’empreinte sur disque étant consacrée aux « données », terme défini ici de façon tres générale. Penchons-nous d’un peu plus près sur l’utilisation du disque dans Windows Vista, et sur ce que nous appelons les « données ».

La fiabilité et la sécurité étaient des préoccupations de base durant le développement de Windows Vista. Une grande partie de l’augmentation de l’empreinte sur disque provient de nouvelles fonctionnalités de fiabilité dont les utilisateurs dépendent pour la protection du système, sa performance, la protection des données, et le dépannage. Certaines de ces fonctionnalités comprennent la sauvegarde du système, l’hibernation, le fichier de pagination, la sauvegarde du registre, et l’enregistrement. Chacune de ces fonctionnalités représente un « état de sauvegarde » permettant la récupération du système après un nombre donné de situations, certaines prévues, et d’autres non. Dans Windows 7, nous savons que certains utilisateurs voudront faire d’autres compromis entre l’espace disque et la récupération (surtout sur des machines ayant peu d’espace). Ainsi avons-nous décidé de leur donner plus de contrôle préalable sur l’espace disque utilisé par ces mécanismes, et d’ajuster nos préréglages de façon plus sensible à l’utilisation du disque, au vu des changements en cours dans le stockage.

La sauvegarde du système et l’hibernation sont des fonctionnalités qui aident les utilisateurs à récupérer leur système avec confiance et évitent la perte de données dans bon nombre de situations telles que le déchargement de la pile (pour l’hibernation), ou une mauvaise installation de logiciel ou toute autre corruption du système (pour la sauvegarde). En association, ces fonctionnalités occupent une part importante de l’empreinte sur disque. Vu la place qu’elles occupent sur le disque, il est facile de les isoler et de prendre des décisions à leur sujet.

La sauvegarde du système protège l’utilisateur en clichant le système avant que des changements ne se produisent, et à intervalles réguliers. Dans Windows Vista, cette sauvegarde est programmée de façon à utiliser au moins 300MB, et jusqu'à 15% du disque physique. A mesure que cet espace se remplit par des sauvegardes successives, les clichés les plus anciens sont effacés pour faire place aux nouveaux. Plus vous avez d’espace, et plus de clichés sont donc disponibles pour d’éventuels « retours en arrière » du système. Dans Vista, nous avons reçu pas mal de commentaires d’utilisateurs indiquant que la Sauvegarde du Système prenait trop de place, et était difficile à gérer. Certains d’entre vous auront déjà remarqué dans la version pré-Béta de Windows 7 une interface permettant de mieux gérer cette fonctionnalité.

L’hibernation est principalement utilisée sur les PC mobiles. Elle sauvegarde votre travail sur le disque, puis met l’ordinateur dans un état ralenti consommant extrêmement peu d’électricité. Elle se met en route quand la charge de la pile descend en-dessous d’un certain seuil, ou quand l’ordinateur est éteint ou fermé sans passer par le menu « Arrêter », et permet d’étendre la durée de vie de la pile. Dans Windows Vista, l’hibernation est aussi utilisée automatiquement par la l’option de mise en veille sur les ordinateurs de bureau pour préserver une copie de sauvegarde des programmes en cours et de leurs données. Cette fonctionnalité s’appelle la mise en veille hybride, et est utilisée pour sauvegarder l’état de la machine sur le disque dur, de façon à pallier une panne de courant éventuelle pendant la veille de l’ordinateur. L’hibernation enregistre l’ensemble du contenu de la mémoire RAM sur le disque, dans un fichier appelé Hiberfil.sys. La taille de ce fichier est ainsi égale au montant de mémoire RAM du système. Pendant que nous développions Vista, le montant de RAM intégré dans les ordinateurs a augmenté de façon importante, rendant de fait l’empreinte sur disque de l’hibernation plus évidente qu’elle ne l’était auparavant. Cet espace doit aussi être réservé par avance, pour garantir qu’en cas de décharge critique de la pile, le système puisse facilement enregistrer le contenu de la mémoire sur le disque. Tout utilisateur de PC mobile dont l’ordinateur entre en hibernation à cause d’une pile déchargée peut apprécier la tranquillité d’esprit apportée par cette augmentation de l’empreinte sur disque. Puisque nous parlons d’espace disque et de mémoire RAM dans le même paragraphe, j’en profite pour signaler à ceux qui seraient intéressés que Mark Russinovich a écrit récemment un article traitant de la mémoire virtuelle, et de la taille qu’elle peut, pourrait ou devrait atteindre.

Il est bien sûr évident que dans les descriptions ci-dessus, nous n’incluons pas l’ensemble de l’espace disque occupé par Windows Vista – par exemple, le disque comprend aussi un grand nombre de fichiers modèles, de vidéos ou d’arrière-plans haute-résolution permettant aux utilisateurs de facilement personnaliser leur expérience ou d’essayer de nouvelles fonctionnalités – mais nous avons couvert deux des questions les plus courantes.

Il est aussi important de ne pas se limiter à la taille du système pendant l’installation, mais d’également prendre en compte la façon dont le système croît au cours du temps, quand les services enregistrent leurs données, les mises à jour sont installées, les clichés de sauvegarde sont pris, etc. Pour beaucoup, la « croissance » du système au fil du temps crée une grande perplexité – nous en sommes conscients, et nous nous devons de (a) prendre des décisions plus logiques et (b) être plus clairs quant à la quantité d’espace disque qui est utilisée et peut être récupérée.

Le tableau ci-dessous donne un aperçu de l’empreinte sur disque d’une installation de Windows Vista Edition Familiale Premium ou Intégrale. Il inclut toute l’installation, mais a été séparé en catégories logiques de façon à être plus digeste, et souligne aussi quelques fonctionnalités spécifiques, de façon à présenter le cout d’éléments ayant suscité des questions.

clip_image003

Je relèverai quelques éléments méritant d’être signalés :

  • ~1GB  est consacré au support des polices. Windows Vista fonctionne avec des milliers de périphériques différents. Nos utilisateurs attendent maintenant de Windows qu’il reconnaisse et installe automatiquement tout périphérique qu’ils connectent, même une vieille imprimante. Nous recevons aussi un grand nombre de demandes pour enlever des périphériques, et à chaque version, nous passons la liste de périphériques supportés au peigne fin afin de la faire correspondre à nos données de télémétrie. La possibilité de pouvoir installer une imprimante ou un périphérique USB hors-ligne est très importante, surtout parce que les ordinateurs portables représentent plus de la moitié des ventes de PC. Dans le futur, nous pourrons probablement partir de l’hypothèse que Windows Update sera toujours disponible, mais pour le moment nous n’en sommes pas là dans la majeure partie du monde.
  • ~1GB  est consacré à la croissance du système pour les composants remplacés ou mis à jour, de façon à assurer un retour en arrière et une récupération fiables après avoir installé des mises-à-jour de fonctionnalité ou de sécurité importantes. Nous avons reçu beaucoup de louanges sur la fiabilité de notre infrastructure de mise à jour, mais la faculté de pouvoir revenir en arrière après une réparation donnée reste une mesure importante de robustesse et de fiabilité. Nous comprenons aussi les critiques que nous avons reçues au sujet des exigences en disque de l’installation de Vista SP1 sur l’édition de publication (« RTM »). Nous espérons que ceux d’entre vous qui auraient besoin de plus d’espace disque sauront trouver l’outil vsp1cln.exe dans le dossier system32.
  • ~1GB  est consacré au support d’hibernation, nécessaire pour éviter la perte de données quand une machine sommeille pendant de nombreuses heures. Cet espace peut être éliminé soit grâce à l’outil Nettoyage de disque, soit dans une fenêtre Commande en mode administrateur (powercfg /h off).
  • ~315MB sont consacrés aux polices d’écriture. Windows est utilisé par des utilisateurs parlant des langues diverses, partageant souvent une même machine, et désirant tous pouvoir communiquer avec le système. Vista comprend donc un support extensif de polices natives, permettant à nos utilisateurs ayant un système fonctionnant dans une certaine langue de lire des documents ou des sites internet dans une autre. En cas de besoin, ces polices peuvent être facilement éliminées du système.
  • ~52MB vont aux fichiers d’enregistrement. Cet espace est crucial pour les diagnostics d’erreurs, et nous le réservons à l’enregistrement d’événements, de mises à jour, d’installation de périphériques, ou d’autres. Ces enregistrements sont utilisés couramment par nos agents de support ou les agents de support corporatifs pour les diagnostics d’erreurs et les dépannages.

La conception de Windows 7

L’espace disque utilisé par Windows a augmenté au fil du temps. Bien que non désirable, la mesure dans laquelle nous avons accepté cette augmentation est due en majeure partie à l’accroissement incessant de la capacité des disques durs, couplé aux besoins des nos utilisateurs et à notre souci de nous concentrer sur la fiabilité des machines, sur l’extension de notre support de périphériques, et sur la demande de nouvelles fonctionnalités innovatrices. Cependant, la prolifération récente de disques électroniques (« solid-state » ou « SSD ») vient à l’encontre de cette tendance, et nous pousse à être beaucoup plus vigilants quant à l’empreinte sur disque de Windows 7.

Cela ne signifie pas que nous allons arrêter d’ajouter de nouvelles fonctionnalités, ou rendre Windows moins fiable ou moins réparable. Mais à l’avenir, il nous sera critique de savoir innover tout en traitant l’espace disque comme une ressource précieuse, et d’avoir une idée plus claire de la façon dont nous l’utiliserons. Nous voulons nous assurer de faire les meilleurs choix possibles pour la grande majorité de nos utilisateurs, tout en laissant la faculté de modifier ces choix à ceux qui désirent plus de contrôle. Le but de ce concept n’est pas spécifique à une configuration ou à une autre – toutes les versions de Windows pourront bénéficier d’efforts visant à minimiser l’empreinte sur disque.

Par exemple, si nous prenons en considération le problème de support de périphériques mentionné ci-dessus, Windows Vista SP1 installe sur le système presque 1GB de polices de périphériques prêts à tourner (« Plug-and-Play »). Ce cache local se périme quand les fabricants de périphériques publient des mises à jour de leurs polices, poussant ainsi les utilisateurs de ces périphériques à télécharger les dernières versions sur Windows Update.

Pourquoi alors ne pas étendre le principe du prêt à tourner et n’utiliser que le cache de polices de Windows Update, de façon à économiser de l’espace disque ? Ceci a plusieurs avantages :

  1. Les PC mobiles étant rarement déconnectés d’Internet, il leur est facile de simplement télécharger la nouvelle police.
  2. Pour les périphériques mis à jour, les polices n’auraient pas à être installées deux fois, puisque le système irait sur Internet de toute façon.

Cet exemple démontre ainsi aisément comment la minimisation de l’empreinte sur disque peut aboutir à une meilleure expérience utilisateur dans l’installation de nouveaux périphériques. En même temps, nous nous devons de faire attention à ne pas aller trop loin, ou trop vite. Nous recevons énormément de commentaires sur le « Plug-and-Play », et sur les temps de téléchargement couteux (quand le téléchargement est même possible). Dans Windows 7, nous allons continuer à prendre des décisions délibérées sur ce que nous inclurons dans le système, basées sur un recensement des périphériques existants, et visant à réduire le nombre de polices incluses de façon à couvrir les périphériques les plus répandus dans le monde. En parallèle, nous continuerons à investir d’importants efforts dans Windows Update, de façon à avoir le meilleur site possible pour tous les périphériques que nous pouvons supporter.

Les fonctionnalités installées par défaut dans Windows sont conçues pour couvrir des scénarios multiples. Il nous sera utile d’envisager de rendre certaines fonctionnalités ou certains composants (comme « Media Center ») facultatifs quand ils ne sont pas nécessaires, plutôt que de les installer par défaut sur tous les systèmes. En fait, nous sommes décidés à rendre plus de fonctionnalités de Windows facultatives. Comme vous pouvez le remarquer aujourd’hui dans Windows, quand vous choisissez une fonctionnalité non-installée, Windows ne vous demande pas de « source » (un DVD ou un chemin sur le réseau). Ceci s’explique par le fait que la fonctionnalité est déjà « cachée » sur le disque pendant l’installation de Windows – une fonctionnalité en soi-même. Nous garderons toujours les fonctionnalités disponibles, et nous les mettrons toujours à jour, même quand certains composants ne sont pas installés par défaut – de cette façon si vous ajoutez un composant par la suite, vous ne risquerez pas d’installer de code vous exposant à un problème de sécurité existant. Ceci est un autre moyen important que nous avons de garder Windows à jour et sécurisé, même pour les composants facultatifs.

La croissance du système au fil du temps est aussi un sujet sur lequel nous nous devons de fournir plus de « transparence ». Par exemple, Windows archive les versions antérieures de composants du système mis à jour, de façon à assurer de robustes retours en arrière. Comme prévu, un nouveau système installe les mises-à-jour disponibles sur Windows Update. Assez rapidement après l’installation d’une mise à jour importante (comme un « Service Pack ») qui comprend ou étend des mises à jour précédentes plus mineures, il nous est possible de récupérer l’espace disque occupé par ces dernières.

Pour aider au dépannage, Windows place des enregistrements un peu partout sur le disque, et ces enregistrements peuvent croitre de façon significative. Par exemple, quand une application « crashe », Windows archive un très gros fichier dump qui facilite l’analyse ultérieure du problème. Nous avons beaucoup de bonnes raisons de procéder ainsi, mais dans le souci de préserver le maximum d’espace disque, il nous sera important de penser à la façon dont nous gérerons cette croissance, et dont nous récupérerons l’espace disque quand nous le pourrons. Nous nous soucions aussi de l’espace disque occupé par l’hibernation et la restauration du système. Sur une machine ayant peu d’espace disque, réserver 1GB à l’hibernation coute cher, et il y a peut-être moyen de réduire la taille du fichier hiberfil.sys. De même, il devrait être possible de configurer la restauration du système de façon à n’occuper que le minimum de clichés requis, et non pas 15% du disque par défaut.

A WinHEC, nous avions en démonstration plusieurs machines avec des disques ou des partitions de 16GB, et ayant toujours beaucoup d’espace disque disponible. Cependant, comme pour tous les benchmarks, nous ne recommandons pas d’effectuer des mesures d’espace disque sur les versions pré-Béta de Windows 7.

En conclusion, il est probable que les différents efforts en cours dans l’équipe de Windows 7 aboutiront à une empreinte sur disque plus petite que dans Windows Vista, donnant ainsi aux fabricants de PC plus de latitude dans la conception de leurs systèmes. Ceci sera accompli grâce à une meilleure définition des réglages par défaut, et de plus grandes facilités de contrôle pour les fabricants d’ordinateurs, les utilisateurs et les professionnels IT, et sera accompli aussi sans compromettre la fiabilité et la robustesse générales de Windows.

- Michael Beck