web-dev-qa-db-fra.com

qu'est-ce que "boeuf mort" signifie?

Que signifie le mot "boeuf mort"? Je l'ai lu à partir d'une question d'entrevue. Cela a quelque chose à voir avec ipv6. J'ai pensé qu'il pourrait s'agir d'un nombre hexadécimal aléatoire utilisé à titre d'exemple, comme "Le renard brun rapide saute par-dessus le chien paresseux".

Ma compréhension est-elle correcte? Ou cela a-t-il une signification plus significative?

84
Xi Zhang

http://en.wikipedia.org/wiki/Hexspeak
http://www.urbandictionary.com/define.php?term=dead%3Abeef

"Dead beef" est une phrase très populaire en programmation, car elle est construite uniquement à partir des lettres a-f, qui sont utilisées en notation hexadécimale. Les deux points au début et au milieu de la phrase font de cette phrase une adresse IPv6 valide (en théorie).

96
Dustin Laine

C'est une expression composée utilisant uniquement les lettres A à F, souvent utilisée lorsqu'un nombre hexadécimal reconnaissable est requis. Certains systèmes l'utilisent à des fins diverses, telles que l'affichage de la mémoire qui a été libérée et ne doit plus être référencée. Dans un débogueur, cette valeur peut indiquer que vous avez commis une erreur. De Wikipedia :

0xDEADBEEF ("dead beef") est utilisé par les systèmes IBM RS/6000, Mac OS sur des processeurs PowerPC 32 bits et le Commodore Amiga en tant que valeur de débogage magique. Sur Solaris, Sun Microsystems marque la mémoire libérée du noyau. Sur OpenVMS s'exécutant sur des processeurs Alpha, DEAD_BEEF est visible en appuyant sur CTRL-T.

Le nombre 0xDEADBEEF est égal au nombre décimal le moins reconnaissable 3735928559 (non signé) ou -559038737 (signé).

43
Mark Byers

La valeur de 0xDEADBEEF présente trois avantages pratiques, principalement pour les systèmes plus anciens. Les vieux hackers assembleurs/C, comme moi, l’utilisaient pour remplir de la mémoire non allouée afin d’attirer l’attention sur les problèmes de mémoire. En outre, c'est un jeu de mots de l'argot terme "viande morte". Le programmeur est de la viande morte si DEADBEEF se termine dans ses pointeurs. Je félicite le gars qui a d'abord pensé à utiliser la valeur DEADBEEF. C'est intelligent à bien des égards.

En ce qui concerne les raisons pratiques, tout d’abord, c’est plus visible dans un vidage mémoire hexadécimale, car elle épelle des mots plutôt que des valeurs hexadécimales aléatoires.

Deuxièmement, si la valeur se termine dans un pointeur, il est plus probable que cela induise une erreur de mémoire hors de portée. Une adresse de DEADBEEF était en dehors de la plage d'adresses des systèmes (nous parlons des systèmes du siècle dernier), quel que soit le système final.

Troisièmement, il est plus susceptible d'induire une erreur sur les systèmes nécessitant des valeurs de pointeur de frontière égales pour accéder aux données 16/32/64 bits. La valeur est plus susceptible de provoquer une erreur car les deux valeurs de 16 bits (DEAD, BEEF) sont impaires.

36
BSalita

Les adresses IPv6 étant écrites en notation Hex, vous pouvez utiliser "Hexspeak" (numéros 0 à 9 et lettres a-f) dans Adresses.

Il existe un certain nombre de mots que vous pouvez utiliser comme adresses valides pour mieux les momoriser.

Si vous ping6 www.facebook.com -n vous obtiendrez quelque chose comme "2a03: 2880: f01c: 601: face: b00c: 0: 1".

Voici quelques exemples:

  • : affe :: (Affe - allemand pour singe - vu à un vlan pour conseil d'administration)
  • : 1bad: babe :: (une méchante fille - vue à un smtp-honeypot)
  • : badc: ab1e :: (mauvais câble - vu comme sous-réseau pour un vlan non sécurisé)
  • : da7a :: (Data - vu pour les serveurs de fichiers)
  • : d1a1 :: (Dial - vu pour VPN Dial-In)
16
Martin Seitl

Il est également utilisé à des fins de débogage.

Voici une liste pratique de certaines de ces valeurs:

http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Magic_debug_values

13
Scott

Les gens l'utilisent normalement pour indiquer des valeurs factices. Je pense que cela a été principalement utilisé avant l'idée de pointeurs NULL.

3
Puppy

C'est un nombre magique utilisé à divers endroits, car il est également lisible en anglais, ce qui le distingue des autres. Il y a une liste partielle sur Wikipedia .

2
dsolimano

Il a été utilisé comme motif pour stocker en mémoire une série d'octets hexadécimaux (0xde, 0xad, 0xbe, 0xef). Vous pouvez voir si la mémoire est corrompue à cause d'une défaillance matérielle, de dépassements de mémoire tampon, etc.

2
Larry