페이지

2004년 7월 22일 목요일

little endian & big endian ...

low level 프로그래밍을 하다 보면 맞닷게 되는 녀석이다.
나 같은 애플리케이션 개발자에게는 한 번 보면 이해는 가지만 사용하려면 웬지 낯선 그런 존재...

momory나 disk상에 데이터를 저장할 때 byte order를 나타내는 말이다.

CPU가 만들어질 때 byte를 읽어오는 방식을 서로 다르게 했나보다.
하여간 2byte이상의 데이터를 읽어올때면 이 녀석을 신경써줘야 한다.

IBM PC 계열에서는 높은 자리 숫자가 뒤로간다. Power PC같은 RISC에서는 사람이 글자를 표현하듯이 높은 자리 숫자를 맨처음 읽게 된다. 나름대로 장단점이 있다 한다...

원래 이 말은 원래 조나단 스위프트(Jonathan Swift)의 걸리버여행기에서 나온다. 스위프트는 당시 카톨릭 교도와 신교도들이 각자의 주장만을 하고 있는 것을 패러디해서, 소설에 소인국 사람들이 달걀을 깰 때 뭉특한 쪽(big endian)으로 깨야하느지, 뾰족한 쪽(little endian)으로 깨야하는지 논쟁하는 부분을 넣았다[1]. 소설 내용만 보면 별로 중요하지 않는 것을 보고 서로 싸운다라고 생각할 수 있는데, 컴퓨터에서는 정말 중요한 부분이다.
하여간 컴퓨터 하는 사람들은 재밌다. 이런 말을 소설에서 가져다 쓰고.. :)

참고문헌

[1] Randall Hyde저(전동환외 역), Great Code (하드웨어의 이해), p145.

댓글 2개:

  1. 트랙백이 실패해서 수동으로 주소 남깁니다 :)

    http://occam.n4gate.com/zboard/view.php?id=column&no=45

    답글삭제
  2. 걸리버의 소인국 여행기였던가요 사람들이 계란을 깰 때 큰 쪽(둥근 쪽)을 깨느냐 작은 쪽(뾰족한 쪽)을 깨느냐를 가지고 패가 갈려서 싸웠다죠. 큰 쪽이 big end, 작은 쪽이 little end, 큰 쪽을 깨는 사람들을 big endian, 그 반대쪽을 깨는 사람들을 little endian이라고 부른 것이 엔디안의 기원이라고 합니다.


    류광님의 글 인용

    답글삭제