cosa significa "manzo morto"?


90

Cosa significa la parola "manzo morto"? L'ho letto da una domanda di un'intervista. Ha qualcosa a che fare con ipv6. Ho pensato che potesse essere un numero esadecimale casuale usato per esempi, come "La rapida volpe marrone salta sul cane pigro".

La mia comprensione è corretta? Oppure ha un significato più significativo?


57
Per me significa ora di pranzo!
FrustratedWithFormsDesigner

5
"DEADBEEF" risale a decenni fa, forse anche prima di Internet. (Immagino che lo stavo usando alla fine degli anni '70 in IBM.) È solo un modo per contrassegnare, in un modo facilmente visibile nei dump esadecimali, lo storage che è deallocato o altrimenti non è accessibile.
Hot Licks

Risposte:


106

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

"Dead beef" è una frase molto popolare nella programmazione, perché è composta solo dalle lettere af, che vengono utilizzate in notazione esadecimale. I due punti all'inizio e al centro della frase rendono questa frase un indirizzo IPv6 (teoricamente) valido.


45
per assicurarti che le risposte siano ancora lì anche dopo che il sito collegato non esiste più. Wikipedia è in continua evoluzione ed è / è stata bloccata in alcuni paesi per diversi motivi (pornografia [infantile] / verità "sbagliata"). Quindi è meglio rendere la tua risposta indipendente e utilizzare solo collegamenti per risposte / citazioni dettagliate. Solo i miei due cent.
josefx

45

È un'espressione inventata che utilizza solo le lettere AF, spesso utilizzate quando è richiesto un numero esadecimale riconoscibile. Alcuni sistemi lo usano per vari scopi, come mostrare la memoria che è stata liberata e non dovrebbe essere più referenziata. In un debugger questo valore visualizzato potrebbe essere un segno che hai commesso un errore. Da Wikipedia :

0xDEADBEEF ("dead beef") è utilizzato dai sistemi IBM RS / 6000, Mac OS su processori PowerPC a 32 bit e Commodore Amiga come valore di debug magico. Su Solaris di Sun Microsystems, contrassegna la memoria del kernel liberata. Su OpenVMS in esecuzione su processori Alpha, DEAD_BEEF può essere visto premendo CTRL-T.

Il numero 0xDEADBEEF è uguale al numero decimale meno riconoscibile 3735928559 (senza segno) o -559038737 (con segno).


20
ma che dire del 55378008 capovolto? (non firmato)
mVChr

O l'indirizzo IPv4 222.173.190.239!
Alyssa Haroldsen

41

Il valore di 0xDEADBEEF ha tre vantaggi pratici, principalmente per i sistemi meno recenti. I vecchi hack assembler / C, come me, lo userebbero per riempire la memoria non allocata per risolvere i problemi di memoria. Inoltre, è un gioco di parole del termine gergale "carne morta". Il programmatore è carne morta se DEADBEEF finisce nei suoi puntatori. Mi congratulo con il ragazzo che per primo ha pensato di utilizzare il valore DEADBEEF. È intelligente in molti modi.

Per quanto riguarda i motivi pratici, in primo luogo, è più evidente in un dump della memoria esadecimale perché in realtà scrive parole anziché valori esadecimali casuali.

In secondo luogo, se il valore finisce in un puntatore, è più probabile che induca un errore di memoria fuori intervallo. Un indirizzo di DEADBEEF era fuori dalla gamma di indirizzi dei sistemi (stiamo parlando di sistemi del secolo scorso ora) indipendentemente dall'endian del sistema.

In terzo luogo, è più probabile che induca un errore sui sistemi che richiedono anche valori di puntatore limite per l'accesso ai dati a 16/32/64 bit. È più probabile che il valore si guasti perché entrambi i valori a 16 bit (DEAD, BEEF) sono dispari.


1
Questa è una delle risposte SO più interessanti che ho letto da un po 'di tempo. Grazie @BSalita!
Steve Jansen

19

Poiché gli indirizzi IPv6 sono scritti in notazione esadecimale, è possibile utilizzare "Hexspeak" (numeri 0-9 e lettere af) negli indirizzi.

Ci sono un certo numero di parole che puoi usare come indirizzi validi per migliorarli.

Se ping6 www.facebook.com -nottieni qualcosa come "2a03: 2880: f01c: 601: face: b00c : 0: 1".

Ecco alcuni esempi:

  • : affe :: (Affe - tedesco per Monkey - visto in un vlan per il consiglio di amministrazione)
  • : 1bad: babe :: (one bad babe - seen at a smtp-honeypot)
  • : badc: ab1e :: (bad cable - visto come sottorete per un vlan non sicuro)
  • : da7a :: (Dati - visti per fileserver)
  • : d1a1 :: (Dial - visto per VPN Dial-In)


3

Le persone normalmente lo usano per indicare valori fittizi. Penso che sia stato utilizzato principalmente prima dell'idea dei puntatori NULL.


5
DEADBEEF era comunemente usato per contrassegnare la memoria liberata in modo che fosse ovvio quando si aveva un puntatore penzolante IIRC.
Chuck

2

È un numero magico utilizzato in vari posti perché è leggibile anche in inglese, facendolo risaltare. C'è un elenco parziale su Wikipedia .


2

È stato utilizzato come modello per archiviare in memoria una serie di byte esadecimali (0xde, 0xad, 0xbe, 0xef). È possibile vedere se la memoria è stata danneggiata a causa di errori hardware, sovraccarichi del buffer, ecc.


-1

0xDEADBEEF viene normalmente riempito negli array di memoria in modo che qualsiasi eccezione quando viene indicata erroneamente o per conoscere il buffer su esecuzioni ecc.,


Questo punto di vista è lontano dal punto di vista che tutti si aspettano che non ha problemi e potrebbe avere ragione, ma senza prove lo rende incredibile.
Shalomb
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.