* Integrateur Magento Aix-en-Provence
Integrateur Magento Aix-en-Provence
Article:
La fonction exec(),dans le Lions' Commentary on UNIX 6th Edition, with Source Code (en) de la version 6 d'Unix,émet l'image alternée d'un exécutable depuis le système de fichiers. Les huit premiers octets forment le header qui comprend 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 afin d' identifier si l'exécutable emploie des références mémoires réatables, le système de page en lecture seule dernièrement amélioré ou des pages divisées pour les consignes et les données4. Le double rôle de cette constante du début du header n'était pas défini ,dans les sixième et septième versions d'Unix, mais le bit de poids fort de cette constante était l'opcode de l'instruction de saut sur un PDP-11 (octal 000407 ou hex 0107). Quand on additionne sept au compteur de programme d'un programme exécuté, celui-ci va utiliser le service exec() pour commencer.
Le service exec() présente le header du fichier exécutable (méta) à partir d'un buffer de l'espace noyau mais l'image exécutable est lue dans l'espace utilisateur et donc sans pouvoir utiliser la constante de saut. Les magicnumber ont alors été implantés dans l'éditeur de liens et le chargeur d'Unix ; ils ont dû être utilisés ensuite dans les programmes de test donnés avec les versions 6 et 7 d'Unix.
En version 7, la constante n'est pas lue instantanément ; en priorité,elle est atée à la variable ux_mag5 et fut après indiquée par le terme magicnumber. Etant donné qu'il y avait alors dans cet Unix environ 10 000 lignes de code et nombreux constantes utilisées, pour une constante ce nom est un peu bizarre, au moins autant que le commentaire2 laissé dans la partie corrélative à la coversion de contexte de la version 6 du gestionnaire d'applications d'Unix. C'est éventuellement pour cela que le terme a ensuite indiqué le type d'exécutable, puis élargi aux systèmes de fichiers et étendu encore pour désigner un exécutable utilisant un typage fort.
Beaucoup de ces nombres sont dérivés d'un typage fort des données ou de leur multiplexage. Ils permettent aux programmes développant l'information d'identifier les données qui suivent et spécialement de distinguer le format de données utilisé.
L'expression de magicnumber peut aussi convenir à l'utilisation de constantes numériques non-nommées dans le code source d'un programme. l'utilisation de ces constantes enfreind les anciennes règles de programmation issues de COBOL, de FORTRAN et de PL/I9, ne rend pas plus clair le choix de cette valeur10 et provoque souvent des erreurs de programmation. Selon certains, le nommage de tous les constantes rend le code plus lisible, plus compréhensible et plus aisément maintenable