Что означает "мертвая говядина"?
Что означает слово "мертвая говядина"? Я прочитал его из интервью. Это как-то связано с ipv6. Я полагал, что это может быть случайный шестнадцатеричный номер, используемый для примеров, например "Быстрая коричневая лиса прыгает через ленивую собаку".
Правильно ли я понимаю? Или это имеет более существенный смысл?
Ответы
Ответ 1
http://en.wikipedia.org/wiki/Hexspeak
http://www.urbandictionary.com/define.php?term=dead%3Abeef
"Dead beef" - очень популярное предложение в программировании, потому что оно построено только из букв a-f, которые используются в шестнадцатеричной нотации. Колонны в начале и в середине предложения делают это предложение (теоретически) действительным адресом IPv6.
Ответ 2
Это выраженное выражение, использующее только буквы A-F, часто используемые, когда требуется распознаваемое шестнадцатеричное число. Некоторые системы используют его для различных целей, таких как показ памяти, которая была освобождена и не должна упоминаться снова. В отладчике это значение может быть признаком того, что вы сделали ошибку. Из Wikipedia:
0xDEADBEEF ( "мертвая говядина" ) используется системами IBM RS/6000, Mac OS на 32-битных процессорах PowerPC и Commodore Amiga в качестве магического значения отладки. В Solaris Solar Microsystems он отмечает освобожденную память ядра. В OpenVMS, работающем на процессорах Alpha, DEAD_BEEF можно увидеть, нажав CTRL-T.
Число 0xDEADBEEF равно менее узнаваемому десятичному числу 3735928559 (без знака) или -559038737 (подписано).
Ответ 3
Значение 0xDEADBEEF имеет три практических преимущества, в основном для старых систем. Старый ассемблер/C-хаки, как и я, использовал бы его для заполнения нераспределенной памяти, чтобы уладить проблемы с памятью. Кроме того, это каламбур сленгового термина "мертвое мясо". Программист - это мертвое мясо, если DEADBEEF завершается в своих указателях. Я поздравляю парня, который сначала подумал об использовании ценности DEADBEEF. Это умно во многих отношениях.
Как по практическим соображениям, во-первых, он более заметен в дампе с шестнадцатеричной памятью, потому что на самом деле он произносит слова в отличие от случайных шестнадцатеричных значений.
Во-вторых, если значение задерживается в указателе, оно скорее всего вызовет ошибку памяти вне диапазона. Адрес DEADBEEF вышел из диапазона адресов систем (мы говорим о системах прошлого века) независимо от системного endian.
В-третьих, это скорее вызовет ошибку в системах, для которых требуются даже значения указателя границы для доступа к 16/32/64-битным данным. Значение имеет большую вероятность ошибки, поскольку оба из 16-битных значений (DEAD, BEEF) являются нечетными.
Ответ 4
Он также используется для целей отладки.
Вот удобный список некоторых из этих значений:
http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Magic_debug_values
Ответ 5
Так как IPv6-Адреса записаны в Hex-нотации, вы можете использовать "Hexspeak" (цифры 0-9 и буквы a-f) в адресах.
Есть несколько слов, которые вы можете использовать в качестве действительных адресов, чтобы лучше их модерировать.
Если вы ping6 www.facebook.com -n
, вы получите что-то вроде "2a03: 2880: f01c: 601: face: b00c: 0: 1".
Вот несколько примеров:
- : affe:: (Affe - German for Monkey - рассматривается в vlan для правления)
- : 1bad: babe:: (один плохой младенец - замечен в smtp-honeypot)
- : badc: ab1e:: (плохой кабель - рассматривается как подсеть для незащищенного vlan)
- : da7a:: (Данные - для файловых серверов)
Ответ 6
Обычно люди используют его для указания фиктивных значений. Я думаю, что прежде всего он использовался до идеи указателей NULL.
Ответ 7
Это волшебное число, используемое в разных местах, потому что оно также может быть доступно для чтения на английском языке, что делает его выдающимся. Там есть неполный список на Wikipedia.
Ответ 8
Он использовался как шаблон для хранения в памяти как серии шестнадцатеричных байтов (0xde, 0xad, 0xbe, 0xef). Вы могли видеть, повреждена ли память из-за сбоя оборудования, переполнения буфера и т.д.
Ответ 9
0xDEADBEEF обычно заполняется массивами памяти, поэтому любое исключение, если оно ошибочно указано или знать буфер за прогоны и т.д.,