Windows XP on Mac solution posted 맥에서 윈도우즈를, PC에서 맥OS를 구동하려는 시도는 오래전 부터 사람들의 관심을 받아왔다. 드디어 맥에서 윈도우즈XP가 구동되는 것이 성공을 했다. 물론 완벽하게 동작을 하고 모든 드라이버가 작동을 하는것은 아닐테지만…
같은 컴퓨터인데 ‘왜 맥에선 윈도우즈를 사용하지 못하고, PC에선 맥OS를 사용하지 못했느냐?’라는 의문점을 가질 수 있을텐데 그것이 바로 CPU의 차이이다.
최근에 들어서야 맥계열에 인텔의 CPU가 사용되기로 결정되어 일부 인텔CPU를 탑재한 제품이 등장하긴 했지만 그 전까지는 맥과 PC는 사용되는 CPU방식이 전혀 달랐다.
목차
RISC와 CISC의 차이
주변에서 흔히 사용되는 PC의 CPU인 인텔의 x86계열 CPU와 AMD의 인텔 호환 CPU는 CISC 방식으로, 애플의 PowerPC는 RISC방식으로 되어 있습니다. 간단하게 설명 드리면 이런 CPU방식의 차이로 애플과 IBM호환 PC는 서로간의 운영체제를 적용 할 수가 없었습니다.
RISC방식
대표적인 RISC방식인 PowerPC는 애플과 IBM 그리고 모토로라가 합작해서 만든 CPU입니다. 이 방식의 장점은 CISC방식의 x86 CPU와 비교해 같은 클럭에서 수배 이상의 처리속도를 보인다는 것입니다. RISC방식은 CPU내의 명령어 수를 줄이는 대신 CPU내부의 캐쉬, 수퍼스칼라, 파이프라이닝, 비순차 명령 실행, 레지스터 개수 증가 등 CPU의 근본적인 기능을 향상시켜 CISC에 비해 월등히 높은 처히 속도를 가질 수 있게 되었습니다.
CISC방식
일반적으로 우리가 사용하는 IBM호환기종의 PC의 CPU는 CISC방식이 대부분입니다. CISC방식은 연산에 처리되는 복잡한 명령어들을 수백개 이상 탑재하고 있고 있는 마이크로 프로세서 입니다. 하지만 명령어 개수의 증가에 따라 프로세서 내부 구조가 복잡하게 되고 고속으로 작동되는 프로세서를 만들기가 힘든 편입니다. 비슷한 수준의 RISC방식 CPU에 비해 트렌지스터 수가 수배이상 많아지게 되고 높은 집적도 기술이 필요하게되어 성능 향상에 여러가지 제약이 따르게 됩니다.
하지만 RISC방식에 비해 많은 수의 명령어들로 인해 프로그램을 짜기가 보다 편리하고 CPU를 좀 더 복잡하고 세밀하게 다룰 수 있다는 장점이 있습니다. RISC방식에 비해 하위호환성이 좋다는 장점도 있습니다.
CPU에 따른 내부 메모리 사용 차이
서로 다른 CPU의 방식으로 인해 나타난 또 하나의 차이가 바로 메모리 내부에 바이트를 저장하는 순서가 다른 것이다. endian의 차이이다.
컴퓨터에서 데이터를 저장할 때 byte단위로 저장을 하게 되는데 CPU의 차이로 인해 저장되는 순서의 차이가 생겼다. 인텔 계열의 프로세서는 little endian, RISC방식의 프로세서는 big endian방식을 사용하게 된다. 간단한 예로 big endian컴퓨터는 16진수 “FD32″를 메모리에 저장을 할때 “FD32″를 순서대로 저장하게 되나, little endian컴퓨터는 “32FD”로 저장을 하게 된다.(endian의 차이로 생기는 차이점에 대해 자세한 설명은 생략.)
IBM호환기종의 PC나 매킨토시 모두 ‘컴퓨터’라는 이름으로 불리우고는 있으나 CPU의 차이로 인해 전혀 다른 기종에다 서로간의 호환성이라는 것은 찾아 볼 수가 없게 되었는다. CPU내부의 명령어 갯수나 방식도 틀리고, 메모리에 데이터가 기록되는 방식도 정 반대이니 서로간의 운영체제를 설치하기 위해선 원칙적으론 운영체제를 CPU셋트에 맞게 새로 프로그래밍을 했어야 했다.
하지만 그동안 IBM으로 부터 RISC방식 PowerPC CPU를 받아 사용해오던 애플에서 인텔과 CPU공급협상을 함으로써 애플의 컴퓨터도 CISC방식의 CPU를 사용하게 되었다. 그로 인해 윈도우라는 OS를 새로 작성하지 않아도 애플의 PC에서 구동이 가능 할 것이라는 가능성이 생겼던 것이다. 그리곤 그 결과물이 나타나게 되었는데, 글의 첫 부분에 링크해 놓은 곳이다.
관련기사 : ZDNet Korea “맥 콘테스트 우승자 결정 [인텔 맥에서 윈도우 움직인다]”
*태어나서 여지껏 x86계열 이외에 다른 CPU를 채용한 컴퓨터를 사용해 본적이 없기 때문에 사실 그쪽으로 많은 것을 알고있진 않습니다. 행여 글 중 틀린부분이 있다면 댓글로 알려주시면 수정하도록 하겠습니다.
원래 PPC chip 은 Big Endian 과 Little Endian 두 가지 를 모두 사용할 수 있습니다. 실제로 Endian 을 결정하는 것은 Chip 이 아니라 Board 쪽인거죠. 단, G5 이후의 PPC chip 에는 이런 기능이 사라져서 Big Endian 으로 고정되었습니다.
그렇군요. 당연히 Big Endian을 사용 할 것이라고 생각하고 있었는데, 가짜집시님의 댓글을 읽고 검색을 해 보았는데
“PowerPC 메모리 모델은 빅-엔디안과 리틀-엔디안 메모리 모델을 모두 지원한다. 소프트웨어로 조절하는 모드에 따라 달라질 수 있다. 즉, PowerPC 프로세서 시스템은 디자인에 따라 빅-엔디안 애플리케이션과 리틀-엔디안 애플리케이션 양자를 모두 돌릴 수도 있다.”
라는 내용을 찾았습니다.
애플에서 윈도우즈가 구동되게 된 것은 이번에 와서야 가능하게 되었지만 인텔PC에서 ‘OS X’가 구동된 것은 조금 시간이 지난것으로 알고 있습니다.(문제가 약간 존재했지만)
맥의 ‘OS X’는 자체 내에서 Little Endian과 Big Endian을 이미 지원하고 있었기에 인텔CPU에서의 구동이 예전부터 가능성을 가지고 있었다는 제 추측이 맞는건가요??
안녕하세요 미디어몹입니다. 싸인펜님의 상기 포스트가 미디어몹에 링크가 되었습니다. 링크가 불편하시면 아래 리플로 의사를 표시해주세요. 해제하도록 하겠습니다. 즐거운 포스팅되시기를 바랍니다.
감사합니다^^