¿Qué significa la palabra "carne muerta"? Lo leí de una pregunta de una entrevista. Tiene algo que ver con ipv6. Pensé que podría ser un número hexadecimal aleatorio usado para ejemplos, como "El rápido zorro marrón salta sobre el perro perezoso".
¿Mi comprensión es correcta? ¿O tiene un significado más significativo?
Respuestas:
http://en.wikipedia.org/wiki/Hexspeak
http://www.urbandictionary.com/define.php?term=dead%3Abeef
"Dead beef" es una oración muy popular en programación, porque se construye solo con las letras af, que se usan en notación hexadecimal. Los dos puntos al principio y en el medio de la oración hacen de esta oración una dirección IPv6 (teóricamente) válida.
fuente
Es una expresión inventada que usa solo las letras AF, que se usa a menudo cuando se requiere un número hexadecimal reconocible. Algunos sistemas lo usan para varios propósitos, como mostrar la memoria que se ha liberado y no debe volver a ser referenciada. En un depurador, este valor que aparece podría ser una señal de que ha cometido un error. De Wikipedia :
El número 0xDEADBEEF es igual al número decimal menos reconocible 3735928559 (sin signo) o -559038737 (con signo).
fuente
El valor de 0xDEADBEEF tiene tres beneficios prácticos, principalmente para sistemas más antiguos. Los viejos hacks de ensamblador / C, como yo, lo usarían para llenar la memoria no asignada para solucionar problemas de memoria. Además, es un juego de palabras del término argot "carne muerta". El programador es carne muerta si DEADBEEF termina en sus punteros. Felicito al tipo que pensó por primera vez en usar el valor DEADBEEF. Es inteligente en muchos sentidos.
En cuanto a razones prácticas, en primer lugar, es más notable en un volcado de memoria hexadecimal porque en realidad deletrea palabras en lugar de valores hexadecimales aleatorios.
En segundo lugar, si el valor termina en un puntero, es más probable que induzca una falla de memoria fuera de rango. Una dirección de DEADBEEF estaba fuera del rango de direcciones de los sistemas (ahora estamos hablando de sistemas del siglo pasado) independientemente del endian del sistema.
En tercer lugar, es más probable que induzca una falla en los sistemas que requieren valores uniformes de puntero para acceder a datos de 16/32/64 bits. Es más probable que el valor falle porque ambos valores de 16 bits (DEAD, BEEF) son impares.
fuente
Dado que las direcciones IPv6 están escritas en notación hexadecimal, puede utilizar "Hexspeak" (números del 0 al 9 y letras af) en las direcciones.
Hay una serie de palabras que puede utilizar como direcciones válidas para momorizarlas mejor.
Si
ping6 www.facebook.com -n
obtendrá algo como "2a03: 2880: f01c: 601: face: b00c : 0: 1".Aquí hay unos ejemplos:
fuente
También se utiliza con fines de depuración.
Aquí hay una lista útil de algunos de estos valores:
http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Magic_debug_values
fuente
La gente normalmente lo usa para indicar valores ficticios. Creo que se usó principalmente antes de la idea de punteros NULL.
fuente
Es un número mágico que se usa en varios lugares porque también es legible en inglés, lo que lo hace destacar. Hay una lista parcial en Wikipedia .
fuente
Se utilizó como patrón para almacenar en la memoria como una serie de bytes hexadecimales (0xde, 0xad, 0xbe, 0xef). Podía ver si la memoria estaba dañada debido a fallas de hardware, saturación del búfer, etc.
fuente
0xDEADBEEF normalmente se llena en las matrices de memoria para que cualquier excepción cuando se señala incorrectamente o para saber que el búfer se sobrepasa, etc.
fuente