Myths of Snow Leopard 2: 32-bit Support
June 17th, 2008 | History, Journal, Software, Tech, the Media
Daniel Eran Dilger
약 1년 뒤에 나올 차세대 맥오에스텐, 스노 레퍼드에 대한 코멘트가 별로 없는 가운데 추측이 넘쳐나고 있다. 스노 레퍼드를 둘러싼 미신에 대해 알아보자. 두 번째 미신이다.
스노 레퍼드가 64비트가 될 것이기 때문에 32-비트 인텔맥 지원을 애플이 포기할 것이다.
이 미신은 좀 바보스럽지만, 애플 게시판에 뜬 다음, 소수 언론이 이를 심각하게 보도까지 하였다. 사실 이 미신의 기반은 윈도 32/64비트가 수렁에 빠졌다는 점 때문이다. 애플이 겪지 않을 문제이기도 하다. 마이크로소프트는 윈도 XP와 비스타, 서버를 다중 아키텍쳐용으로 각기 출시해야 했다.
- IA-32: 32비트 인텔 x86 아키텍쳐. PC 대부분에 해당되며, 초기 인텔맥도 해당된다.
- IA-64: 64비트 인텔 EPIC 아키텍쳐, Itanium용 아키텍쳐이지만 거의 아무도 사용하지 않는다.(현재 윈도 서버만 나와 있다.)
- x64 (AMD64): 64비트 x86 아키텍쳐로서, AMD가 개발하였고, IA-64가 실패한 뒤 인텔이 이를 복제하였다. 현재 이 x64가 주류 64-비트 PC 아키텍쳐로서, 최신 Core 2 Duo 인텔맥도 사용중이다.
이런 상황때문에 윈도 열광론자들마저 혼란스러워한다. 이들은 마이크로소프트가 뭔가 하면, 으레 그럴 만한 사유가 있을 것이며, 그것만이 유일한 방법이리라 여기는 경향이 있다. 매리 조 폴리(Mary Jo Foley)는 이렇게 썼다. "레퍼드는 첫 번째 64-비트 전용 데스크톱 클라이언트용 OS이며, 비스타는 32비트와 64비트용이 같이 나온다. 윈도 세븐도 32비트로 나오리라 기대하는 이들이 대부분이다. 32비트 머신이 사라지지 않는 한, 32비트 운영체제를 제공하는 것이 좋아 보인다." 그녀는 뭔가 심각하게 말하려하지만, 실제로는 레퍼드를 비스타처럼 보이게 하려고 노력하고 있다.
Ten Myths of Leopard: 10 Leopard is a Vista Knockoff!
The Windows 32/64-bit Conundrum..
마이크로소프트의 문제는 IA-64와 x64 버전의 윈도가 실제로는 별다른 코드기반이며, 기존의 수 많은 32-비트 소프트웨어와의 호환성이 허술하다는 데에 있다. 64비트 버전의 윈도가 32비트 PC에 안깔린다는 사실때문에 더 불거졌다. 즉, 64-비트 버전의 윈도용 애플리케이션과 드라이버 개발 시장이 너무나 작으며, 더 커질 수도 없다는 의미다. 64비트 PC 채택에 있어서 소프트웨어 장벽이 존재하기 때문이다. 이것은 계란이 먼저냐 닭이 먼저냐와 같다. 해결책이 없다. 두 코드를 합치는 방법 외에는 없으나, 마이크로소프트로서는 그럴 시간도, 의도도 전문성도 갖고 있지 않다.
마이크로소프트는 사용자들이 자기 컴퓨터를 64-비트로 업그레이드하고, 계속 32비트 윈도를 돌리리라 생각한다. 마이크로소프트가 64-비트 EFI 버전의 윈도를 대량으로 풀 수 있을 때까지 말이다. 하지만 2010년 윈도 7이 나와도 그런 일은 일어날 것 같지 않다. 2013년에 윈도 8이나 되어야 2007년의 레퍼드를 따라갈지 모르겠다.
애플은 기존 하드웨어에 적절하도록 무슨 바이너리이건 우아하게 돌릴 수 있다. 이 때문에 2006년 이해 2천~2천 7백만 맥오에스텐 사용자들의 PowerPC와 인텔 하드웨어를 모두 지원해 왔다. 마이크로소프트는 훨씬 더 거대한 사용자 기반과 자원, 독점적인 지위까지 가졌는데도 불구하고, 윈도 NT 4.0을 PowerPC와 인텔 모두 지원할 수 없었다.
완전히 별다른 프로세서 아키텍쳐를 지원하는 것 외에, 애플은 또한 32비트와 64비트 코드를 모두 돌리도록 조치해 놓았다. 1세대 Core Duo 머신처럼 32-비트 맥인 경우 레퍼드는 32비트 바이너리를 돌린다. 최신예 Core 2 Duo처럼 64비트 하드웨어인 경우 64비트 바이너리를 실행시킨다. 즉, 64-비트 소프트웨어를 못돌린다고 하여 불이익은 없다. 매리 조 폴리는 그저 마이크로소프트를 칭송하기 위해 알아볼 것도 알아보지 않은 셈이다.
Windows Vista와 7, Singularity: 코플랜드와 거쉰, 탈리전트
BIOS PC를 뛰어넘은 애플 펌웨어
32 + 64 = Universal Binary.
맥오에스텐은 한 가지 종류의 하드웨어만 돌아가고 한 가지 종류의 바이너리만 실행시킬 수 있는 운영체제가 아니다. 애플의 유니버설 바이너리는 레퍼드와 스노 레퍼드 공히 돌아간다. 64-비트 프로세서 기능의 장점을 누리기 위해서는유니버설 바이너리에 64-비트 실행코드만 같이 패키지화시켜 놓으면 된다.
지금까지 애플이 제공하는 레퍼드 시스템 애플리케이션의 절대 다수는 32비트이다.사실 오에스 텐에 기본으로 들어 있는 애플리케이션 중에 64비트 프로그램은 단 두 가지 뿐이다. 엑스코드와 체스다. 64-비트 이주로 혜택을 누리려면 거대한 파일이나 데이터 셋을 다루는, 즉, 거대한 메모리 공간이 필요한 애플리케이션이어야 한다. 오히려 64-비트로 이주할 경우 더 느려지는 경우도 있는데, 관리해야 할 메모리가 더 늘어나서인 경우이다. 하지만 애플은 전체적으로 모든 OS를 64-비트로 이주할 경우 시스템 전반적인 퍼포먼스가 15% 더 늘어난다는 사실을 발견했다. 재컴파일만 해서 15% 개선된다면 상당히 좋은 소식이다.
이 때문에 스노 레퍼드의 모든 시스템 애플리케이션은 32+64 유니버설 바이너리가 될 것이다. 현댖거인 64-비트 맥에서 막혀 있던 속도가 뚫린다는 얘기이다. 이들 애플리케이션을 64-비트 G5 PowerPC 맥에서도 동일하게 속도를 늘리려면 얻는 것에 비해 비용이 너무 클 것이다. 훨씬 더 빠른 64-비트 인텔 프로세서로 최적화시킬 수 있는데 G5로 그렇게 하려는 사용자는 상대적으로 소수이다. 이 때문에 스노 레퍼드가 PowerPC 지원을 끊을 수 있다.
이와 동시에, 스노 레퍼드는 RAM 32GB 이상을 지원하기 위한 핵심 단계로서, 64-비트 커널로 이주를 거행한 것이다. 즉, 디바이스 드라이버와 커널 익스텐션 개발자들은 모두 32+64 비트 버전을 만들어야 한다. 플러그인도 모두 64-비트 지원을 해야 한다. 프린터 드라이버도 마찬가지이다.
1년이 지나면 애플은 또 다시 800만 대 정도의 맥을 판매할 텐데, 이들 대부분이 스노 레퍼드의 64-비트화의 덕을 볼 것이다. 이미 1,500만 대의 맥이 팔려나간 이 때, 약 2,300만 대의 인텔 맥이 스노 레퍼드를 돌릴 수 있게 된다.
타이거가 나왔을 때 맥의 시장 기반은 약 1,600만 대 정도 뿐이었다. 레퍼드가 나올 때는 2,200만 대였다. 오늘날 맥 시장 기반은 2,700만 대 정도 된다. 그 중 1,200만 대가 PowerPC이다. 64-비트 맥의 비율이 빠르게 새 시스템을 사야 할 정도의 PowerPC 모델 수를 넘어가고 있는 중이다. Omni Software는 자사 소프트웨어 업데이트가 인텔 맥에서 83.5%, PowerPC 맥에서 16.5%라 밝혔다. 64-비트 최적화를 위해 PowerPC 지원을 포기하는 이유를 알아보기 쉽다. 애플은 내년 여름의 상황을 보고 개발을 하지, 현재의 상황을 두고 준비를 하는 것이 아니다.
Apple - Mac OS X Leopard - Snow Leopard
WWDC 2008: Mac OS X 10.6은 PowerPC의 죽음일까?
Snow Leopard의 미신: 1. PowerPC 포기에 대해
Omni Software Update Statistics
Getting it Right the First Time Around: LLP64 vs LP64.
애플은 64-비트로 부드러운 이주를 개발해 놓았을뿐 아니라, 널리 호환성 있는 64-비트 모델을 선택하였고, 임시변통이 아닌, 강력한 64-비트를 만들어 놓았다. 반면 마이크로소프트의 64-비트는 제한적이다. 윈도의 64-비트 개발모델은 LLP64 기반인데, 이 LLP64는 64-비트 어드레스를 사용하는 32-비트 모델일 뿐이다. 마이크로소프트는 자사가 어째서 LLP64를 선택했는지 밝혀 놓았다.
The Old New Thing : Why did the Win64 team choose the LLP64 model?
본질적으로 마이크로소프트는 애플리케이션이 보다 많은 RAM에 접근하도록 해 주기 위해 64-비트 포인터를 추가하기를 희망한다. 그러면서 32-비트 코드의 윈도에서 옛날 운영체제 구조 모두와 호환성을 지키려 한다. 64-비트 컴퓨팅이 실제로는 10년 전, NT를 64-비트 Alpha용으로 포팅시키고, Itanium IA-64로 포팅시킬 때 이미 이루어졌다는 사실은 마이크로소프트도 알고 있을 것이다. 부분적인 64-비트 지원을 어째서 해야 할까? 어쩌다 이런 양보를 하게 되었나?
64-비트 리눅스와의 상호 운용성을 의도적으로 무너뜨리기 위해, 일부러 제한적이고 이상한 형태의 64-비트 컴퓨팅을 사용한다는 주장도 있다. 마이크로소프트의 의도가 실제로 그런 악의에서 비롯된 것인지, 아니면 단순한 역량 부족 탓인지와 상관 없이, 애플은 정 반대의 64-비트 전략을 채택하였다. 레퍼드와 스노 레퍼드는 64-비트 리눅스, SGI IRIX, 그 외 다른 상용 유닉스와 마찬가지의 LP64 모델을 사용한다. 즉, 이미 널리 입수 가능한 64-비트 애플리케이션과 라이브러리 간에 호환성을 넓힌다는 의미다.
Dgital이나 휼렛팩커드, IBM, 인텔, 노벨, NCR, 오리지날 Santa Cruz Operation, Sunsoft, X/Open처럼 64-비트 컴퓨팅 전문 그룹의 대표들은 LP64가 어째서
64-BIT PROGRAMMING MODELS로서 마이크로소프트 모델보다 더 나은지, 미래 컴퓨팅에 어째서 더 어울리는지를 같이 설명한 바 있다. 간단한 답변은 이러하다. LP64는 기존 코드 포팅이 더 쉽고, 32와 64비트 컴퓨팅 환경 간 상호운용성이 더 나으며, 크로스-플랫폼 상호운용성에 있어서 산업 표준을 사용하고, 퍼포먼스가 더 좋으며, 기존 시스템에서의 이주가 더 부드럽다.
따라서 마이크로소프트가 64-비트로의 이주를 노력하고 있지만, 고도로 상호운용이 가능한 주류 64-비트 컴퓨팅으로 보자면 애플이 마이크로소프트를 선도할 것이다. 기존의 32-비트 하드웨어를 하위 호환성으로 받쳐줘야 할 타협을 할 이유가 없기 때문이다. 최종 사용자에게 있어서 스노 레퍼드는 최신 64-비트 하드웨어 상에서 모든 것을 더 빠르게 만들어 줄 것이다.
이렇게 미래 데스크톱에 신경을 쓰는데도, 아이폰이 있으니 애플이 맥을 포기하리라는 미신도 있다. 세 번째 미신이다. 다음 기사에서 알아본다.
[Update: Warren Gish가 스노 레퍼드의 PowerPC와 64-비트에 대해 다음의 코멘트를 전달하였다.
스노 레퍼드가 PowerPC를 포기한 이유는 64비트로 이주할 때, PowerPC의 퍼포먼스 개선이 x86에서 x64로 이주할 때보다 훨씬 못하기 때문입니다. X64/AMD64는 x86의 일반적인 목적의 레지스터 수의 두 배이며, 여기서 모든 퍼포먼스 속도 증가가 이뤄집니다. 더 거대해진 데이터 때문에 발생하는 퍼포먼스 손실을 퍼포먼스 증가로 이어지는데, 보통 15% 정도입니다만 심심치 않게 25%인 경우도 있습니다.
그런데 PowerPC와는 별 관련이 없어요. 일반적인 목적의 레지스터는 32-비트 PPC와 64-비트 PPC가 동일합니다. 따라서 64-비트 모드로 이주할 경우 데이터 크기만 커지기에 퍼포먼스는 오히려 떨어지죠. 그 결과 PowerPC는 보통 64-비트 모드가 32-비트 모드보다 약간 더 느립니다.
]
I really like to hear from readers. Comment in the Forum or email me with your ideas.
Like reading RoughlyDrafted? Share articles with your friends, link from your blog, and subscribe to my podcast! Submit to Reddit or Slashdot, or consider making a small donation supporting this site. Thanks!
Myths of Snow Leopard 2: 32-bit Support