ideal insane

Resistance ∙ Pioneer ∙ 생산자

System Hacking

Endianness(엔디언) - Byte order

Idealinsane 2024. 7. 24. 10:28
728x90

<<불완전한 글>>

엔디언이란?

바이트가 메모리에서 배열되는 순서를 말한다.
영어는 왼쪽에서 오른쪽으로 읽는다. 반면에 아랍어는 오른쪽에서 왼쪽으로 읽는다.
엔디언도 비슷하게 작동한다. 어떤 컴퓨터는 바이트를 왼쪽에서 오른쪽으로 읽고, 또 다른 컴퓨터는 오른쪽에서 왼쪽으로 읽는다.
독립적인 컴퓨터에서는 문제가 없을 것이다. 문제는 다른 방식을 사용하는 컴퓨터 사이에 통신을 할 때 발생한다.
그렇다면 왜 두 가지 방식이 있는 것일까? 그냥 통일하면 안 될까? 두 방식에 장단점이 있는 것일까? 에 대해 알아보고자 한다.

엔디언 용어의 유래

빅 엔디언과 리틀 엔디언이라는 용어는 1980년 대니 코언(Danny Cohen)이 "On Holy Wars and a Plea for Peace"이라는 제목의 인터넷 엔지니어링 노트 137에서 소개했으며, 이후 IEEE Computer 14(10).48-57 (1981)에 인쇄물로 출판되었습니다. 그는 조너선 스위프트의 걸리버 여행기(1726)에서 릴리퍼트 국가 내, 큰 쪽에서 삶은 달걀을 깨는 빅-엔디언과 작은 쪽에서 삶은 달걀을 깨는 리틀-엔디언이라고 묘사하는 것을 차용했습니다. 이 비유는 Byte order에 대한 논쟁과 상황을 잘 반영하였기 때문에 사용되었습니다.

빅 엔디언

MSB가 왼쪽에 오도록 바이트를 배열하는 순서입니다.

리틀 엔디언

LSB가 왼쪽에 오도록 바이트를 배열하는 순서입니다.

엔디언이 문제가 되는 이유

앞서 말했든 서로 다른 엔디언 체계를 사용하는 두 컴퓨터가 통신을 하는 경우 문제가 발생한다.
예로, 모든 x86-64 컴퓨터는 리틀 엔디언 방식이지만, TCP/IP는 빅 엔디언 방식을 사용하여, 이 컴퓨터가 통신하려면 엔디언을 알아야 한다.

장단점

빅엔디언은 사용자가 이해하기 쉽다.
리틀 엔디언은 컴퓨터가 이해하기 쉽다.

결론

엔디언 자체는 메모리에 바이트가 저장될 때 의미 있다. 바이트가 CPU  내에서 어떻게 처리될 것인지는 논외이다.
대니 코언의 글에 따르면 이건 사소한 것이다. 두 방식 중 하나로 "합의"되는 것 자체가 중요한 것이지, 어떤 "방식"으로 합의되는지가 중요한 게 아니다.

Reference

 

What is Endianness? Big-Endian & Little-Endian - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

What Is Little-Endian And Big-Endian Byte Ordering?

Computers store data in memory in binary. One thing that is often overlooked is the formatting at the byte level of this data. This is…

captainlink.medium.com

 

엔디언 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. Big-Endian Little-Endian 엔디언(Endianness)은 컴퓨터의 메모리와 같은 1차원의 공간에 여러 개의 연속된 대상을 배열하는 방법을 뜻하며, 바이트를 배열하는 방법을 특

ko.wikipedia.org

 

반응형