• [^] # Re: Et après ?

    Posté par . En réponse à la dépêche Fabrice Bellard bat le record des décimales de Pi. Évalué à 4.

    Un effet de bord ? Pas vraiment.

    Suppose que les pages mémoire de ton processus ne soient pas initialisées avec des octets à zéro. Le noyau ne peut pas te donner une page mémoire ayant été auparavant utilisée par un autre processus ou par le noyau lui-même, cela n'est pas acceptable en termes de sécurité et puis ça te ferait certainement plaisir, sur un système multi-utilisateur, que quelqu'un lance un programme avec un gros tableau global non initialisé, et y trouve un mot de passe que tu as entré l'instant d'avant, ou ton numéro de carte bleue entré dans ton navigateur, ou toute autre information sensible).

    Il est donc nécessaire que le noyau contrôle le contenu des pages mémoire de chaque processus, même celles qui contiennent des données non initialisées.

    Alors, bien sûr, le noyau pourrait les remplir avec des valeurs pseudo-aléatoires, ou une valeur systématique mais différente de 0 (par exemple, 42).

    Mais comme entretemps l'initialisation à zéro est passée dans la norme du C, et que beaucoup de programmes existants se mettraient à mal se comporter si cela venait à changer... il n'est plus possible de revenir sur ce choix.