46 votes

Pourquoi le registre de Windows existe-t-il ?

Il s'agit plus d'une question d'architecture d'OS que de programmation directe, mais quand même. Pourquoi le registre de Windows a-t-il été créé comme un sous-système complètement séparé pour stocker les paramètres du système et des applications ? Dans les systèmes d'exploitation *nix, il y a le répertoire /etc, ce qui est parfaitement compréhensible, car le système de fichiers est un moyen hiérarchique naturel pour stocker les paramètres, alors que Microsoft a décidé de créer un sous-système hiérarchique complètement extérieur, ce qui semble être un investissement insensé, pourquoi n'ont-ils pas simplement utilisé la hiérarchie du système de fichiers ?

21 votes

Je serais intéressé de vous voir justifier l'affirmation selon laquelle un système de fichiers est une façon plus naturelle de le faire.

4 votes

Cela devrait être le Wiki communautaire, IMHO

8 votes

Avez-vous regardé sous /etc/ sur les linux récents ? Je compte 2389 fichiers au total, y compris les sous-répertoires. Ce n'est pas cohérent, pas simple, et bien que certains soient incompréhensibles - des choses comme sendmail.cf, named.conf, ntp.conf n'ont jamais été parfaitement compréhensibles.

54voto

Kevin Montrose Points 11936
  1. Centralisé - ce qui est utile pour les profils les profils.
  2. Transactionnel - ce qui rend plus difficile la destruction de votre configuration.
  3. Sécurité - Vous pouvez imposer la lecture/écriture avec une meilleure granularité qu'un fichier (par clé/valeur).

15 votes

Un bon résumé qui va droit au but.

2 votes

Qu'est-ce que le registre a de transactionnel ? Voulez-vous dire que les mises à jour des valeurs individuelles sont atomiques ? Ou voulez-vous dire le Registre Transactionnel de Vista (qui est de toute évidence un développement très récent) ? Aussi, bien sûr, on peut avoir des ACL par clé/valeur avec des fichiers si chaque valeur est un fichier séparé (je me rappelle qu'il y avait un truc semblable au registre Linux d'IBM qui le faisait de cette façon...).

0 votes

Les mises à jour individuelles sont traitées par transaction - c'est le cas depuis NT 3.1. Contrairement aux fichiers plats où les mises à jour nécessitent une séquence de lecture/modification/écriture qui peut potentiellement corrompre le fichier.

13voto

Bastien Léonard Points 18404

Cet article traite des fichiers INI et du registre : https://devblogs.microsoft.com/oldnewthing/20071126-00/?p=24383 .

0 votes

Merci, très bel article. Et là, il est vraiment prouvé pourquoi le registre est bien meilleur que les fichiers ini. Cependant, le concept /etc + les paramètres spécifiques à l'utilisateur dans les répertoires personnels sous *nix est un concept beaucoup plus large que les anciens fichiers ini.

12voto

JAL Points 11164

Ainsi, lorsque le registre binaire est corrompu, vous abandonnez et allez acheter la dernière version de Windows pour une nouvelle installation.

0 votes

Bon point :) Je vois que le registre se corrompt assez fréquemment

7voto

peterchen Points 21792

De même, la granularité du système de fichiers : un cluster pour chaque valeur est un peu trop, vous devez donc faire un compromis entre la fin du système de fichiers et le début du fichier de configuration. Bien entendu, cela ne vous donne pas une API cohérente. Alors pourquoi ne pas rassembler tous les paramètres dans quelques fichiers clés, et vous donner une API cohérente pour y accéder ? BAM - le registre.

(Et comme MS considère généralement que l'API est plus importante que le format, il n'est pas surprenant que les fichiers soient opaques).

[N'oubliez pas qu'il a été conçu pour des ordinateurs où 4 Mo de RAM suffisaient amplement. [/Voix de Raymond Chen]

0 votes

Vous n'obtiendrez pas un cluster par valeur sur un système de fichiers moderne qui sait comment emballer les petits flux de fichiers directement dans la table d'allocation. NTFS le fait ; voir fr.wikipedia.org/wiki/

0 votes

Bon point, Pavel. (L'âge de la république sauve ma réponse - ouf ! ;))

7voto

asveikau Points 16871
  • Chaque application ne doit pas réinventer un format de fichier de configuration.
  • Vous pouvez facilement utiliser le registre dans le code du mode noyau.

Comme mentionné dans l'article Old New Thing cité par Bastien :

  • Le système peut gérer les problèmes de concurrence pour vous
  • Vous pouvez utiliser les clés de registre d'ACL

Je voudrais également mentionner que de nombreux frameworks *nix ont réinventé le registre... Comme gconfd sur GNOME.

1 votes

Gconfd est juste une interface graphique pour les fichiers de configuration en texte brut qui se trouvent dans votre répertoire personnel. Bien essayé cependant.

4 votes

Regedit est juste une interface graphique pour les fichiers de configuration codés qui se trouvent dans le répertoire système. Bien essayé cependant.

3 votes

@Vitali -- Euh. gconf est un ensemble de paires clé-valeur structurées pour les données de configuration. Tout comme le registre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X