Concept

Nombre magique (programmation)

Résumé
thumb|Timbres de Macau, figurant 6 «carrés magiques» (2014) En programmation informatique, le terme magic number (en français ) peut désigner : une constante numérique ou un ensemble de caractères utilisé pour désigner un format de fichier ou un protocole ; une constante numérique non nommée ou mal documentée ; un ensemble de valeurs ayant un sens particulier (par exemple, les GUID). Ce type de magic number est apparu dans les premières versions du code source de la version 7 d'Unix. Bien qu'il ait perdu son sens originel, le terme a subsisté dans le lexique de l'informatique. Quand Unix fut porté sur le premier DEC PDP-11/20s, celui-ci n'avait pas de mécanisme de protection de la mémoire et utilisait des Ainsi, les versions avant la version 6 d'Unix lisent un fichier exécutable dans la mémoire en sautant à l'offset 0. Avec le développement de la pagination, les versions suivantes d'Unix ont vu le développement des headers précisant les composants d'un fichier exécutable. Une instruction de saut placée au début du header a été développée pour permettre d'exécuter le programme directement (sans lire le header) ; ce qui permet de choisir entre exécuter le programme en utilisant l'ancien mode utilisant des références mémoires réallouables (regular mode) ou en passant par la pagination. Avec le développement des formats d'exécutables, de nouvelles constantes de saut ont été ajoutées en incrémentant l'offset. Dans le de la version 6 d'Unix, la fonction exec() lit l'image binaire d'un exécutable à partir du système de fichiers. Les huit premiers octets forment le header qui contient la taille du programme (segment text) et les variables initialisées (segment global). Le premier mot de seize bits de ce header est comparé à deux constantes pour déterminer si l'exécutable utilise des références mémoires réallouables, le système de page en lecture seule récemment développé ou des pages séparées pour les instructions et les données.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.