setup.S 살짝 훑어 보던중에 의문점이 생겨서 질문드립니다.
저희가 분석하기로 한 아키텍쳐가 EM64T인데 리눅스 커널소스에는 EM64T에 대한
소스가 안보이더군요..(제가 못찾는것인지;;) 비슷한 걸로는 ia64, x86-64가 있는데
소스를 훑어보니 x86-64는 AMD계열이더군요. 그리고 ia64또한 다른 계열로 보이는데
무지한 탓인지 어느걸 분석해야 할지ㅡㅡ;; x86-64계열이 EM64T와 비슷하다해도 분명히 아키텍쳐상의 차이가 있을텐데 그걸로 분석하는 것도 조금 아닌것 같고
헷갈리네요...
저희가 분석하기로 한 아키텍쳐가 EM64T인데 리눅스 커널소스에는 EM64T에 대한
소스가 안보이더군요..(제가 못찾는것인지;;) 비슷한 걸로는 ia64, x86-64가 있는데
소스를 훑어보니 x86-64는 AMD계열이더군요. 그리고 ia64또한 다른 계열로 보이는데
무지한 탓인지 어느걸 분석해야 할지ㅡㅡ;; x86-64계열이 EM64T와 비슷하다해도 분명히 아키텍쳐상의 차이가 있을텐데 그걸로 분석하는 것도 조금 아닌것 같고
헷갈리네요...
댓글 2
.
인텔에는 두 종류의 64비트를 지원하는 프로세서가 있는 것 같네요.
Itanium(아이테니움) 계열과 EM64T 계열이 있습니다.
- Itanium 계열은 IA-64 프로세서 구조를 구현한 아키텍처로서, 인텔과 HP가 공동 개발했습니다. 기존의 x86과는 전혀 다른 아키텍처로 구성되어 있으며, 기존의 32비트 애플리케이션을 실행하기 위해서는 소프트웨어 에뮬레이션이 필요하다구 하네요.
출처 : http://en.wikipedia.org/wiki/Ia64
이에 반해
EM64T 계열은 AMD에서 개발한 기존의 x86아키텍처에서 64비트 어드레싱을 지원하게끔 확장한 x86-64 구조를 인텔이 구현한 것입니다. 지난 스터디에서 알 수 있었듯이, 32비트 호환 모드와 Legacy 모드를 통해 기존 32비트 응용프로그램과의 호환이 가능하죠.
출처 : http://en.wikipedia.org/wiki/AMD64
http://www.dal.co.kr/blog/archives/000810.html
따라서 원래 x86-64는 AMD에서 디자인 된 것이었습니다. 따라서 EM64T는 인텔이 AMD 64를 따라한 구조이므로, 아키텍처상의 차이는 거의 없다고 보면 될 듯 싶은데요.
리눅스의 창시자인 리누스도 인텔이 EM64T 매뉴얼에서 조차 x86-64를 개발한 AMD에 대한 어떠한 기술적인 언급도 하지 않은 것이 정말 역겹다며, 리눅스 커널의 x86-64의 모든 부분을 AMD64로 이름을 바꿔버렸다고 하네요.. 그래서 리눅스 소스에서 EM64T 에 대한 부분을 찾기 어려운게 아닌지 ^^
출처 : http://kerneltrap.org/node/2466