Folco (./1868) :
Je sais que /etc est pas forcément plus joli à regarder.
Mais de ce que j'en vois, la BdR est un lieu ou l'on retrouve tant des paramètres système inaccessibles depuis l'interface utilisateurs (alors pourquoi sont-ils exposés ici ?), que les paramètres sauvegardés de certaines applis. Deux utilisations quand même bien différentes.
Certaines applications utilisent des fichiers de conf, ça me parait beaucoup plus propre, en plus d'avoir l'avantage d'être portable (mais ça, amha, c'est un détail)
La BdR n'est pas si stupide que certains ont voulu la faire paraître. C'est surtout que son implémentation initiale était naïve (anglicisme), et que les développeurs tiers en ont fait n'importe quoi aussi (comme tant de softs étaient installés dans C:\ d'ailleurs, jusqu'à assez tard…), probablement par documentation insuffisante.
Mais la base de registre depuis Vista est un bon outil. C'est une vraie base de données, avec les opérations de query et autres qu'on attend, ce qui a du sens pour de la config. Elle ne consomme pas beaucoup de RAM (pas besoin de charger le fichier entier, là encore comme une BDD), elle ne ralentit plus avec le temps, elle est (normalement
) sauvegardée et fonctionne bien avec le versioning de Windows, elle est bien plus efficace non seulement en taille mais en temps de parsing que plein de petits fichiers de propriétés à accéder aléatoirement, et comme elle a un caching efficace et approprié pour de la configuration, elle ne se mélange pas avec les buffers du cache disque. Elle est journalisée aussi sauf erreur (qu'est-ce qui arrive si ton programme plante en écrivant la config ?). Elle utilise un format standard. Plus ce qui a été mentionné plus haut (droits fins, accès concurrents…). Il y a même des outils command-line pour faire tout ça, et c'est quand même plus safe que echo param=1 >> ma_config (je te passe le sed pour remplacer si le param existait déjà…). Non, c'est en fait plutôt méga cool comme truc. Le seul désavantage c'est qu'il faut utiliser les outils intégrés pour sauvegarder/restaurer des parties de la base.
Au fait la base de registres n'est pas un truc monolithique ! C'est plusieurs base de données, fédérées par le même système
SOFTWARE et SYSTEM sont les deux bases les plus courantes.
Maintenant c'est comme Linux, à l'époque tu pouvais facilement casser ton système en changeant juste une valeur dans le mauvais fichier de config (voire en ajoutant par erreur une virgule que le parseur ne comprend pas). Ça ne signifie pas que le système est cassé par définition, mais qu'il ne faut pas que tu puisses le faire sans en avoir conscience. Depuis ils ont mis des garde-fous autant pour que tu ne puisses pas modifier dans la BdR ce qui est essentiel (via des droits, requiérant un gros bordel pour se les approprier), déléguant les opérations qui y touchent à des APIs de l'OS, sûres. Sous Linux on a rendu moins nécessaire de toucher aux fichiers de config pour les trucs basiques dont Mme. Michu avait besoin