「死んだ牛」とはどういう意味ですか?


90

「死んだ牛」という言葉はどういう意味ですか?インタビューの質問から読んだ。ipv6と関係があります。「怠惰な犬を飛び越えた茶色いキツネ」のように、ランダムな16進数の数値である可能性があると考えました。

私の理解は正しいですか?それとももっと重要な意味がありますか?


57
私にとってそれはランチタイムを意味します!
FrustratedWithFormsDesigner

5
「DEADBEEF」は数十年前、おそらくインターネットの前にまでさかのぼります。(私は70年代後半にIBMでそれを使用していたと思います。)これは、16進ダンプで簡単に見えるように、割り当て解除されているか、アクセスできないストレージにマークを付ける方法にすぎません。
Hot Licks 14

回答:


106

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

「デッドビーフ」は、16進表記で使用されるa〜fの文字からのみ作成されるため、プログラミングで非常に人気のある文です。文の始めと途中のコロンは、この文を(理論的には)有効なIPv6アドレスにします。


45
リンクされたサイトが存在しなくなった後でも、回答が残っていることを確認します。ウィキペディアは常に変化しており、いくつかの国ではさまざまな理由でブロックされています([児童]ポルノ/「間違った」真実)。そのため、回答を独立させ、詳細な回答/引用のリンクのみを使用することをお勧めします。ちょうど私の2セント。
josefx

45

これは、AFという文字のみを使用して作成された表現であり、認識可能な16進数が必要な場合によく使用されます。一部のシステムでは、解放されたメモリを再度表示する必要がないことを示すなど、さまざまな目的で使用します。デバッガーでこの値が表示されるのは、エラーが発生したことを示している可能性があります。ウィキペディアから:

0xDEADBEEF(「デッドビーフ」)は、IBM RS / 6000システム、32ビットPowerPCプロセッサーのMac OS、およびCommodore Amigaでマジックデバッグ値として使用されます。Sun MicrosystemsのSolarisでは、解放されたカーネルメモリをマークします。Alphaプロセッサで実行されているOpenVMSでは、CTRL-Tを押すとDEAD_BEEFが表示されます。

数値0xDEADBEEFは、認識しにくい10進数3735928559(符号なし)または-559038737(符号付き)と同じです。


20
しかし、55378008を逆さまにするとどうなりますか?(署名なし)
mVChr 2010年

または、IPv4アドレス222.173.190.239!
Alyssa Haroldsen、2018年

41

0xDEADBEEFの値には、主に古いシステムに対して、3つの実用的な利点があります。古いアセンブラ/ Cハックは、私のように、それを使用して未割り当てメモリを埋め、メモリの問題を解決していました。また、「死んだ肉」という俗語の俗語です。プログラマーは、DEADBEEFが彼のポインターに近づくと死んでしまいます。値DEADBEEFの使用を最初に考えた人におめでとう。それは多くの点で賢いです。

実際的な理由としては、まず、ランダムな16進値ではなく実際に単語をスペルするため、16進メモリダンプでより顕著になります。

第2に、値がポインタに巻き込まれると、メモリの範囲外の障害が発生する可能性が高くなります。DEADBEEFのアドレスは、システムのエンディアンに関係なく、システム(ここでは前世紀のシステムについて話している)のアドレス範囲外でした。

第3に、16/32/64ビットのデータにアクセスするために境界ポインター値さえ必要とするシステムで障害を引き起こす可能性が高くなります。16ビット値(DEAD、BEEF)の両方が奇数であるため、この値はフォールトする可能性が高くなります。


1
これは、これまでに読んだ中で最も興味深いSOの回答の1つです。@BSalitaありがとうございます!
Steve Jansen

19

IPv6-Adressesは16進表記で記述されているため、Adressesで「Hexspeak」(0〜9の数字とa〜fの文字)を使用できます。

それらをよりよく覚えるために有効なアドレスとして使用できる単語がいくつかあります。

ping6 www.facebook.com -n「2a03:2880:f01c:601:face:b00c:0:1」のようなものを取得する場合。

ここではいくつかの例を示します。

  • :affe ::(Affe-モンキーのドイツ語-管理ボードのVLANで見られる)
  • :1bad:babe ::(smtp-honeypotで見られる1人の悪いベイビー)
  • :badc:ab1e ::(不正なケーブル-安全でないVLANのサブネットと見なされます)
  • :da7a ::(データ-ファイルサーバーで見られる)
  • :d1a1 ::(ダイヤル-VPNダイヤルインで見られる)


3

人々は通常、それをダミー値を示すために使用します。私はそれが主にNULLポインターのアイデアの前に使用されたと思います。


5
DEADBEEFは解放されたメモリにマークを付けるために一般的に使用されていたため、ぶら下がりポインタIIRCがあると明らかです。
チャック

2

また、たまたま英語で読めるため、さまざまな場所で使用されるマジックナンバーであり、目立ちます。ウィキペディアに部分的なリストがあります。


2

一連の16進バイト(0xde、0xad、0xbe、0xef)としてメモリに格納するパターンとして使用されました。ハードウェア障害、バッファオーバーランなどが原因でメモリが破損していないかどうかを確認できます。


-1

0xDEADBEEFは通常、メモリアレイに書き込まれているため、誤ってポイントされた場合や、バッファオーバーランなどが発生した場合に例外が発生します。


この見解は、誰もがそれ自体問題はなく、正しいかもしれないと期待するようになるだろうという見解からはかけ離れていますが、証拠がなければ信じられないほどです。
shalomb 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.