레이블이 Universal Binary인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Universal Binary인 게시물을 표시합니다. 모든 게시물 표시

2020년 3월 27일 금요일

애플의 유니버셜 앱 개발 환경, 결국 그들은 하나의 나무에 열린 사과들이니

애플 컴퓨터 혹은 애플 기기의 사용자라면 누구나 예상했던 바일 것이다. 컴퓨터만을 생산하고 있던 시절 마이크로프로세서가 이른바 68K 시리즈에서 PowerPC 시리즈로 전환될 때 그리고 다시 PowerPC에서 X86으로 전환할 때 이전 환경과 새로운 환경에서 공통적으로 구동되는 어플리케이션을 유니버셜 포맷이라고 불렀다.

기술적인 측면에서 보자면 이런 유니버셜 포맷은 어쩔 수 없는 혹은 쓸데 없는, 결국 임시적이고 사라질 것이 분명한 대상이었다. 하지만 애플처럼 전체 산업에서 일부분을-비록 확보한 부분이지만-차지하고 있는 입장에서는 기존 시장 환경을 새로운 환경으로 이전하는 것은 상당한 부담을 느낄 수 밖에 없기 때문에 선택할 수 밖에 없는 결정이다. 애플을 제외한 모든 PC 산업은 마이크로소프트에 의해 DOS에서 Windows로, Windows XP에서 Windows 7로 시간이 걸리기는 하지만 자연스러운 환경의 변화를 기다리기만 하면 되는 상황과는 달랐다.

어쨌든 애플로서는 선택의 여지가 없었던 이런 유니버셜 포맷에 의해 맥킨토시 시장을 유지되었고, 아이폰의 등장으로 스마트 모바일 컴퓨팅 시대가 되면서 애플의 모험은 결국 성공했다고 볼 수 있다.

애플은 아이폰에 이어 아이패드 그리고 애플TV를 출시하고, 맥과 함께 새로운 애플의 생태계를 구축했다. 최근 애플워치가 합류함에 따라 애플은 전에 없어 새로운 세상을 만들고 확장하고 있다.

G6lDAUI.jpg

전에 없던 이러한 축제와 같은 분위기에 살짝 고민스러운 것이 전통적인 애플 환경에서의 어플리케이션 개발자들이라고 볼 수 있다. 맥킨토시가 유일했던 시절과 달리 애플의 기기들이 연동되는 환경이 일반화됨에 따라 많은 어플리케이션들이 맥의 Mac OS은 물론 iOS에서도 구동되는 어플리케이션을 개발하고자 할때 개별적으로 개발하는 부담이 증가되었다. 사실 예전 생각을 하면 행복한 고민이 아닐 수 없다.

하지만 애플은 분명 이런 상황을 그대로 두고 볼 일이 없다고 생각했다. 결국에는 하나의 어플리케이션을 기본으로 맥과 아이폰 그리고 아이패드에서 모두 구동되는 다시금 이른바 유니버셜 앱을 위한 개발 환경을 제공할 것으로 예상되었다.

그리고 Mac OS X 10.15 Catalina와 함께 유니버셜 앱 개발 기능이 선보였다. 애플 워치는 유니버셜 앱 개발 기능에서 제외되었다.새로운 Xcode 11.4부터 지원되는 이 기능으로 개발자는 핵심 소스코드를 공유하면서 각각의 환경에 맞는 앱을 동일한 프로젝트 단위로 개발할 수 있다고 한다.

물론 서로 다른 하드웨어 구성과 사양을 가진 환경을 모두 수용하는 유니버셜 앱 개발 환경의 효용성에 대해서는 의구심도 있다. 기술적으로 가능하겠지만 내부적으로 일이 많아질 것은 분명하고, 애플이 얼마나 신경썼을까 싶기도 하다. 그러나 어쩌겠는가 Xcode 외에 딱히 다른 대안이 없으니 애플을 믿도 만들어 볼 수 밖에. 비록 당장 불편하더라도 곧 개선되지 않겠는가.

그런데.. 이러한 유니버셜 앱에 이어 느닷없이(?) 유니버셜 앱 구매 또는 결제 기능이 등장했다. 어떤 앱을 구입하더라도 같은 내용의 다른 플랫폼 기반 앱, 맥이나 아이폰, 아이패드 그리고 애플TV 버전의 앱을 함께 사용할 수 있는 기능이다.

하나의 앱 가격으로 이런 기능을 제공한다면 반기지 않을 이가 없겠지만, 분명 개별적으로 구입하는 것에 비해서는 싸더라도 하나 혹은 둘 이상의 가격으로 책정될 것이 분명하니 결과적으로 가격 인상이다. 또한 사용하지도 않은 앱에 대한 가격을 지불하는 것과 같은 상황을 어떻게 현명하게 구성할 지 의문이다. 개발사에게 맡길 지 혹은 애플이 관여할 지 모르겠다.

그리고 또 하나, 만일 모든 어플리케이션의 하나의 기반을 작성될 수 있다면 결국 이를 수용하는 하나의 하드웨어 요소, 특히 마이크로프로세서의 전환에도 매우 용이하게 대응할 수 있다. 그러므로 향후 애플이 새로운 마이크로프로세서, 알려진 바에 따른 ARM에 기반한 CPU를 사용한다면 어플리케이션 운용에 따른 문제를 사전에 해소할 수도 있는 방안의 하나로 생각할 수도 있다.

어떤 경우라도 애플은 지난 수십 년의 역사에 비춰 가장 행복한 시절을 보내고 있을 것이다. 물론 그 행복이 사용자들에게도 고스란히 전달되고 있는 지는 모르겠다. 분명한 것은 애플이 더 이상 애플 컴퓨터가 아니니 지금의 새로운 환경에서 맥의 역할이나 비중은 점점 줄어들 것이라는 것이다.

2019년 11월 15일 금요일

Mac VirtualBox 기반 PowerPC/Rosetta 지원 가상 OS X 환경 구축

Mac OS X 10.6 Snow Leopard가 주요한 이유는, 바로 로제타(Rosetta) 때문이다. 로제타는 애플이 Mac 시스템의 마이크로프로세서, CPU를 인텔 X86 계열로 이전하기 전 사용했던 PowerPC 마이크로프로세서 기반으로 작성된 어플리케이션을 Mac OS X 환경에서 구동이 가능하도록 해주는 프로그램이다. 여러 문제가 있을 수 있지만 대부분의 어플리케이션 운용에 별다른 문제가 없었기 때문에 어플리케이션 운용 제약에 따른 문제 해소에 확실한 해결책이라고 할 수 있었다.

OShckuh.png

물론 애플의 이러한 조치는 어플리케이션 개발사가 빨리 인텔 X86 계열에 최적화된 어플리케이션을 출시할 수 있는 시간적 여유를 주기 위함이었다. 애플은 이러한 조치와 함께 기존 PowerPC 기반 Mac 시스템에서도 새로운 어플리케이션 구동이 가능하도록 이른바 PowerPC 및 X86 마이크로프로세서에서 모두 운용이 가능한 유니버셜(Universal) 포맷 어플리케이션으로 개발할 수 있도록 했다.

9HO3wNA.png

결국 시간이 지나면서 대부분의 개발사들도 X86 전용 보다는 PowerPC/X86 호환 유니버셜 포맷을 개발하게 되자, 애플은 재빠르게 다음 운영체제 Mac OS X 10.7 Lion에서 로제타 기능을 삭제했다. 이렇게 되자, 문제가 된 것은 기존 PowerPC 전용 어플리케이션으로 판매를 지속하고 있던-애플 입장에서는 게으른 개발사의-어플리케이션이 운용이었다.

개발사 혹은 어플리케이션 자체의 여러 이유로 유니버셜 포맷으로 변환 혹은 재개발이 어려운 어플리케이션은 여전히 PowerPC 환경에서 지속될 수 밖에 없었다. 특히 개인적으로 애용하는 몇 개의 게임 어플리케이션이 그런 상황에 놓이게 되었다.

물론 로제타 혹은 유니버셜 포맷이 모든 어플리케이션은 인텔 X86 기반 Mac OS X에서의 운용을 보장하지는 않았다. 몇몇 덩치 큰 그리고 시장에서 주요한 위치를 점하는 경우의 어플리케이션은 새로운 CPU에 맞춘 버전이 나올 때까지 기존 하드웨어 혹은 운영체제를 유지해야 하기도 했다.

이러한 이유에서 가상 머신의 주요한 사용 목적 가운데 하나가 바로 로제타를 지원하는 Mac OS X 10.6 Snow Leopard를 구동하는 것이다. 때문에 VirtualBox 6의 Mac OS X 지원 목록에는 10.6 버전이 공식적으로 지원된다는 점에서 매우 환영하지 않을 수 없었다.

[ Virtual Box 기반 가상 Mac 머신 구축 ]

물론 설치 과정은 지극히 단순하다. macOS High Sierra나 Mojave 등의 최신 운영체제에 비해-물론 동일한 방식이지만-보다 쉽게 VirtualBox에서 설치가 된다.

7qLg22e.png

하지만 더 이상 애플의 공식 사이트나 맥 앱 스토어에서 Mac OS X 10.6 Snow Leopard를 다운로드할 수 없기 때문에 이를 확보하는 것이 또 다른 문제일 수 있다. 다만 Mac OS X 10.6 버전이 설치될 수 있다면 이후 업데이트는 여전히 가능하다.

만일 정식으로 Mac OS X 10.6 Snow Leopard의 설치판을 구입하고자 한다면, 인터넷의 중고 쇼핑 사이트에서 어렵지 않게 특히 비싸지 않은 금액으로 구입할 수도 있으며, 일부 판매 사이트에서도 공식적으로 예전 제품을 판매했던 것으로 기억한다.

그외 여러 방법이 있겠지만 이 포스팅과 관련 포스팅의 취지가 힘들이지 않고 Mac 가상 머신의 구축을 가장 단순하면서도 안전한 방법으로 진행한다는 철칙에서-갖은 패치 등을 동원한 세련된 방법은-굳이 언급할 필요는 없을 것이다.

2019년 10월 22일 화요일

VirtualBox 6의 가상 Mac OS X 공식 지원 범위

VirtualBox 6에서 Mac OS X에 대한 게스트 지원이 공식화되면서 이전에 비해 가상화 Mac 시스템의 구성이 훨씬 간편해졌고 안정성도-특별한 걱정할 필요가 없을 정도로-개선되었다. 더 이상 Mac OS X 가상화 시스템을 구축을 위해 VirtualBox를 패치하거나 터미널에서 VBoxManager 등의 유틸리티를 직접 사용하지 않아도 되도록 개선되었다. 다만 일부 세부적인 기능 변경에는 터미널을 이용해야 한다.

하지만 VirtualBox 6에서 최신 그리고 모든 Mac OS X와 macOS에 대한 지원이 제공되고 있는 것이 아니다. 현재 VirtualBox 6의 가상 머신 생성 기능에서 지원하는 Mac OS X의 범위는 다음과 같다.

ciSim0N.png

최근 새로 업그레이드된 macOS 10.15 Catalina와 macOS 10.14 Mojave는 아직 지원 목록에 올라와 있지는 않다. macOS 10.13 설정을 이용하여 최신 버전에 대한 설치 진행이 가능하겠지만, 아직까지는 이전 만큼 단순한 설정으로 진행되지 않는 문제가 발생할 수도 있다.

  • Mac OS X 10.6(32-bit & 64-bit) - Rosetta(PowerPC) 지원
  • Mac OS X 10.7(64-bit) - Rosetta 지원 종료
  • Mac OS X 10.8(64-bit)
  • Mac OS X 10.9(64-bit)
  • Mac OS X 10.10(64-bit)
  • Mac OS X 10.11(64-bit)
  • macOS 10.12(64-bit)
  • macOS 10.13(64-bit)

최신 macOS의 경우는 향후 업데이트에서 지원이 되는 것이 당연하겠지만, 문제는 이전 구형 Mac OS X는 언제 지원 항목에서 사라질 지 모른다는 것이다. 특히 Mac OS X 10.6의 경우 Rosetta가 지원 되는 마지막 버전이라는 점에서 공식 항목으로 올려져 있다는 것이 중요하다. Mac OS X 10.7 이후로는 PowerPC 기반의 어플리케이션을 구동할 수 없다.

다행히 어플리케이션이 유니버설 바이너리(Universal Binary)라면 Rosetta가 지원되지 않은 Mac OS X 10.7 이후에서도 구동이 가능하다. 이 경우는 예전 MC680X0 마이크로프로세서를 사용한 시절의 어플리케이션을 PowerPC로 이전할 때와 비슷하다고도 볼 수 있다.

하지만 현재 PowerPC 전용으로 유니버설 바이너리 등 다른 대안이 없는 상태에서 물리적 하드웨어 시스템이 없는 경우라면 별도의 가상화 환경을 도움을 구할 수 밖에 없을 것이다. 물론 아직도 적지 않은-일부 영역에 국한 되었다고 보지만-PowerPC 기반의 Power Mac 시스템 상당수가 현직에서 구동되고 있다는 점에서 현실적으로 하드웨어 구입이 상대적으로 효율적일 수 있다.

VirtualBox 6에서 공식 지원 목록 이전의 Mac OS X에 대한 운용은 불확실하다. 불확실하다는 의미는 구동 자체가 불가능하다기 보다는 공식 지원 대상에 비해 구동에 시간과 노력이 많이 들며, 성공 여부도 현재의 VirtualBox 6 버전에서는 장담할 수 없다. 이를 위해-Mac OS X에 대한 공식적 지원이 없었던-이전 버전의 VirtualBox에서 BSD 기반 환경으로 Mac OS X를 구동하는 경우도 있다.

그리고 비슷하면서도 다른 문제가 최근의 macOS 10.15 Catalina의 32-비트 어플리케이션 지원 중단이라고 볼 수 있다. 대부분의 사용자에게는 큰 문제가 되지 않을 수 있으나, 경우에 따라 32-비트 지원 문제로 Catalina 업그레이드를 무작정 미루고 있는 경우도 적지 않을 것이다.

구형 컴퓨터 사용자를 위한 추억의 가치

누구나 내 책상 가운데 하나 위에 놓여진 커다랗고 시끄러운 금속 상자와 그 옆 낯선 화면을 보면서 과연 이게 뭔지 의아스러워 한다. 그리고 그 옆에 커다랗게 그리고 화려하게 새겨진 HP 로고를 보고 나면, 별나 컴퓨터 시스템이라고 생각한다. 그리고 ...