2010-05-25 1 views
77

"죽은 쇠고기"란 단어는 무엇을 의미합니까? 나는 인터뷰 질문에서 그것을 읽었다. 그것은 ipv6와 관련이 있습니다. 예를 들어 "빠른 갈색 여우가 게으른 개로 점프"하는 것과 같이 임의의 16 진수가 될 수 있다고 생각했습니다."죽은 쇠고기"는 무엇을 의미합니까?

내 이해가 정확합니까? 아니면 더 중요한 의미가 있습니까?

+49

나를 위해 그것은 점심 시간을 의미합니다! – FrustratedWithFormsDesigner

+3

"DEADBEEF"는 수십 년 전으로 거슬러 올라갑니다. (필자는 IBM에서 70 년대 후반에이 파일을 사용하고 있었을 것입니다.) 이것은 16 진 덤프에서 쉽게 볼 수있는 방식으로 할당을 해제하거나 액세스하지 못하게하는 방법으로 표시하는 것입니다. –

+0

@HotLicks : 실제로 http://www.catb.org/jargon/html/D/DEADBEEF.html –

답변

89

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

"죽은 소는"프로그래밍에서 매우 인기있는 문장입니다. 문장의 처음과 중간에있는 콜론은이 문장을 (이론적으로) 유효한 IPv6 주소로 만듭니다.

+37

링크 된 사이트가 더 이상 존재하지 않아도 답변이 계속 있는지 확인하십시오. Wikipedia는 다른 이유로 (아동 포르노/"잘못된"진실) 일부 국가에서는 항상 변하고 있으며 차단되고 있습니다. 따라서 답변을 독립적으로 작성하고 상세한 답변/인용에 대한 링크 만 사용하는 것이 가장 좋습니다. 내 2 센트. – josefx

3

사람들은 일반적으로 더미 값을 나타 내기 위해이 값을 사용합니다. 나는 그것이 주로 NULL 포인터에 대한 생각보다 먼저 사용되었다고 생각한다. 이 문자를 16 진수에 사용되는-F,에서만 내장되어 있기 때문에

+4

DEADBEEF는 해방 된 포인터 IIRC가있을 때 해제 된 메모리를 표시하는 데 일반적으로 사용되었습니다. – Chuck

2

또한 영어로 읽을 수 발생하기 때문에 다양한 장소에서 사용하는 매직 넘버는 눈에 띄는 만드는입니다. Wikipedia에 부분적인 목록이 있습니다.

40

인식 할 수있는 16 진수가 필요할 때 자주 사용되는 문자 A-F 만 사용하여 구성된 표현입니다. 일부 시스템에서는 해제 된 메모리를 표시하거나 다시 참조하면 안되는 등의 다양한 용도로이 시스템을 사용합니다. 디버거에서이 값이 표시되면 오류가 발생했을 수 있습니다. Wikipedia에서 :

0xDEADBEEF 라 ("죽은 소")는 IBM의 RS/6000 시스템, 32 비트 PowerPC 프로세서에서 Mac OS와 마법의 디버그 값으로 아미가 제독에 의해 사용되는

. Sun Microsystems의 Solaris에서는 해제 된 커널 메모리를 표시합니다. Alpha 프로세서에서 실행중인 OpenVMS에서 CTRL-T를 누르면 DEAD_BEEF를 볼 수 있습니다.

숫자 0xDEADBEEF는 인식 할 수없는 10 진수 3735928559 (부호없는) 또는 -559038737 (부호있는)과 같습니다.

+19

하지만 거꾸로 55378008은 어떨까요? – mVChr

1

16 진수 바이트 (0xde, 0xad, 0xbe, 0xef)로 메모리에 저장하는 패턴으로 사용되었습니다. 메모리가 있기 때문에 하드웨어 오류, 버퍼 오버런 등 예외 잘못을 지적하거나 등의 실행을 통해 버퍼를 알 때 있도록

-2

0xDEADBEEF 라는 일반적으로 메모리 어레이에 가득의 손상된 경우, 볼 수

+0

이보기는 모든 사람이 아무런 문제가 없으며 옳을 수도 있지만 증거가 없으면 믿을 수 없을 것이라고 예상 할 수있는 관점에서 멀리 떨어져 있습니다. – shalomb

25

0xDEADBEEF 값은 세 가지 실질적인 이점을 가지고 있습니다. 나 같은 오래된 어셈블러/C 해킹은 메모리 문제를 해결할 수 있도록 할당되지 않은 메모리를 채우기 위해이 코드를 사용합니다. 또한 속어 "죽은 고기"의 말장난입니다. 프로그래머는 DEADBEEF가 그의 조언을 듣는다면 죽은 고기입니다. DEADBEEF라는 가치를 처음으로 생각한 사람을 축하합니다. 그것은 여러면에서 영리합니다.

실용적인 이유는 첫째, 16 진수 메모리 덤프에서 더 두드러집니다. 실제로 임의의 16 진수 값과 반대되는 단어의 철자이기 때문입니다.

둘째, 포인터에서 값이 벗어날 경우 메모리 초과 오류가 발생할 가능성이 높습니다.시스템의 엔디안에 관계없이 DEADBEEF의 주소는 시스템의 주소 범위를 벗어났습니다 (우리는 지난 세기의 시스템을 지금 말하고 있습니다).

세 번째로, 16/32/64 비트 데이터에 액세스하기 위해 짝수 경계 포인터 값을 필요로하는 시스템에서 오류를 유발할 가능성이 더 큽니다. 이 값은 두 개의 16 비트 값 (DEAD, BEEF)이 모두 홀수이기 때문에 오류가 발생할 가능성이 더 큽니다.

+0

이것은 내가 읽은 가장 재미있는 답변 중 하나입니다. 감사합니다 @ BSD! –

11

IPv6 주소가 16 진수 표기법으로 작성되었으므로 Adress에서 "Hexspeak"(숫자 0-9 및 문자 a-f)를 사용할 수 있습니다.

더 나은 모멘 테이션을 위해 유효한 주소로 사용할 수있는 단어가 많이 있습니다.

ping6 www.facebook.com -n "2a03 : 2880 : f01c : 601 : 얼굴 : b00c : 0 : 1"과 같은 것을 얻을 수 있습니다. 여기

은 몇 가지 예입니다 :

  • : 원숭이 : (원숭이 - 독일어 원숭이 - 관리 보드에 대한 VLAN에서 본)
  • : 1bad : 아기 :: (한 나쁜 자기 -에서 볼 SMTP-허니팟)
  • : badc : ab1e : (나쁜 케이블 - 안전하지 못한 VLAN을위한 서브넷으로 간주)
  • : da7a : (데이터 - 파일 서버에 대한 본)
  • : d1a1는 :: (다이얼 - VPN Dial-In 용)