|
Hexspeakとは、リートスピークと類似の、英語の変わった表記法の一種である。 プログラマは、メモリやデータに「未使用」や「異常データ」といった印をつけるために分かりやすいマジックナンバーを必要としており、この際にHexspeakが作り出された。数字の"0"をアルファベットの"O"に、数字の"1"をアルファベットの"I"に、数字の"5"をアルファベットの"S"に読み替えるといった方法を利用し、16進数の表記に使われる文字(0123456789ABCDEF)しか使えない条件下で短い単語を表現している。 == 特記すべきマジックナンバー == 多くのプロセッサ、OS、デバッガでHexspeakに基づくマジックナンバーが使用されている。特にデバッグ用の値として用いられている場合が多い。 * 0xABADBABE ("a bad babe") アップルが"Boot Zero Block"を表す値として使っている。 * 0xBAADF00D ("bad food") Microsoft WindowsのLocalAlloc関数の第一引数にLMEM_FIXEDを渡して呼び出してメモリを確保した場合に、ヒープに確保されたメモリが初期化されていないことを表す値として使用されている。 * 0xBADDCAFE ("bad cafe") OpenSolarisのwatchmallocライブラリが、確保したメモリが初期化されていないことを表す値として使用している。 * 0xCAFEBABE ("cafe babe") Mach-O(68kとPowerPCの両方で動くファットバイナリ版)において、オブジェクトファイルを表す値として使用されている。また、JavaにおいてJavaバイトコードで記述されたJavaクラスファイルを表す値として使用されている〔Artima.com: Why CAFEBABE 〕。 * 0xDEADBEEF ("dead beef") IBM RS/6000システム〔Jargon FileのDEADBEEFの項 〕、32ビットPowerPC用Mac OS、コモドール Amigaでデバッグ用のマジックナンバーとして使用されている。Sun MicrosystemsのSolarisでは、開放されたカーネルメモリを表す値として使用されている。Alphaプロセッサで動作しているOpenVMSでは、CTRL-Tを押下するとDEAD_BEEFが表示される。 * 0xDEFEC8ED ("defecated") OpenSolarisのコアダンプで使用されている〔Opensolarisのヘッダファイルの48行目で定数0xDEFEC8EDが定義されている 〕。 * 0xFACEFEED ("face feed") Alphaサーバで動作するWindows NTで使用されている。AlphaのHardware Abstraction Layer (HAL)がハードウェア障害を検出した場合、エラーメッセージとしてこの値が表示される〔エラー0xFACEFEEDに関するMicrosoft Knowledge Baseの記述 〕。 * 0xFEE1DEAD ("feel dead") Linuxのrebootシステムコールでマジックナンバーとして使用されている。 * 0xC0ED ("coed") Linuxのmountシステムコールでマジックナンバーとして使用されている。 * 0xBADCAB1E ("bad cable") Microsoft eVCデバッガにおいて、コネクションが切断されたときにデバッガに返されるエラーコードとして使用されている。 * 0xFEEDFACE ("feed face") Mach-Oバイナリのヘッダとして使用されている。また、OpenSolarisのwatchmallocで不正なポインタを示す値として使用されている。 * 0xDEADDEAD ("dead dead") Windows NTベースのOSで、専用のキーストロークによって強制的にブルースクリーンを発生させた際のSTOPコードとして使用されている。 * 0xBEADFACE ("bead face"または"face bead") モトローラ68HCS12DP256マイクロコントローラのシミュレータSimHC12において、未使用のメモリを埋めておく値として使用されている。 * 0x0000000ff1ce ("Office") Microsoft OfficeのコンポーネントのGUIDの末尾に使用されている。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Hexspeak」の詳細全文を読む スポンサード リンク
|