아이폰 앱은 왜 다른 스마트폰에서 쓰지 못할까?
지난번에 안드로이드폰과 아이폰의 철학적 차이에 대해 글을 올린 적이 있다.
그 글에서 조금 확장해서 이번에는 그런 철학이 실제로 소비자에게 어떤 영향을 끼쳤는지 이야기해보자.
어떤 일을 서술할 때는 주제를 잡는 두 가지 방법이 있다. 하나는 작은 사건을 크게 확대해서 커다란 철학적 담론을 만드는 방법이다. 예를 들어 한 아이가 교통신호를 위반 하고 무단횡단을 한다고 치자. 어째서 그 아이가 교통신호를 위반했는지 원인을 분석하고 우리 사회의 모든 규제와 연관지어서 생각하는 것이다. 그러면 규제는 어떤 관점에서 해야하는지를 제시할 수 있다.
또하나는 어떤 크고 묵직한 주제를 말하기 위해 될 수 있도록 작게 범위를 줄인다. 실생활에서 흔히 접하는 사건 하나로 압축해서 제시하는 방법이다. 예컨대 비타민과 우리 몸의 관계라는 거창한 주제를 말하려고 한다. 그러면 '하루에 사과 하나씩만 먹으면 얼마나 건강해지는가?' 라고 제시한다.
쓰다보니 어쩐지 내가 블로그에 부정기적으로 연재하는 플랫폼 개론처럼 되어버렸다. 사실 이 글의 주제는 플랫폼 개론이 아니다. 운영체제의 개방성과 호환성 허용이란 커다란 담론이다.
그런데 이런 크고 묵직한 주제로 말하려면 무슨 대학교수의 논문이나 세미나 자료처럼 딱딱한 느낌이 든다. 그래서 아주 실생활에 밀접한 사례를 들어서 이야기해보고자 한다.
아이폰 앱은 왜 다른 스마트폰에서 쓰지 못할까?
아이폰 앱은 깔끔하고도 유용한 종류가 많다. 요즘은 아이폰과 안드로이드폰으로 동시에 같은 앱이 나오는 경우가 많긴 하다. 그래도 때로는 아이폰에서만 쓸 수 있는 앱이 있다. 이럴 때 이런 생각은 들지 않는가? 아이폰 앱을 다른 안드로이드 스마트폰에서는 왜 쓰지 못할까? 나아가서 아이폰앱을 윈도우PC에서는 어째서 쓸 수 없을까?
반대로 생각해보자. 그러면 안드로이드 앱은 왜 아이폰에서 쓸 수 없을까? 그리고 안드로이드앱은 어째서 제한적이지만 태블릿인 킨들 파이어에서 쓸 수 있을까?
이 문제를 설명하기위해서는 운영체제의 개념적 구조를 알 필요가 있다. 모든 운영체제는 크게 이런 구조를 가진다.
1. 커널 : 하드웨어의 기본적 입출력을 담당하는 기초코드. 이 커널이 유사하면 일단 호환성이 생길 수 있다. 사람의 언어로 비유하면 커널은 기초적인 사고방식이다.
2. 프레임워크, UX : 커널 위에서 여러 명령어를 묶어서 고급처리과정으로 만들어놓는 중간 단계의 코드. 언어로 비유하면 각 사람이 쓰는 단어의 형태이다.
3. 유저 인터페이스 : 프레임워크 위에서 사용자를 직접 대하는 입출력 방식을 규정한 코드. 사람의 언어로 비유하면 단어의 배치 순서라고 할 수 있다.
이런 세 가지 단계를 거쳐서 운영체제는 사람과 소통하며 실행된다.
기본적으로 아이폰의 호환성 문제는 커널에서 시작된다. 아이폰의 운영체제는 매킨토시의 OS X의 축약판이다. 또한 매킨토시의 OS X는 예전 넥스트 컴퓨터의 발전판이다. 넥스트 컴퓨터는 운영체제의 커널을 유닉스의 한 갈래인 BSD에서 가져왔다. 마흐 커널에서 발전한 맥의 커널은 재미있게도 소스가 공개된 오픈소스 커널로서 '다윈' 이란 이름이 붙어있다. 진화론의 아버지 이름에서 따온 듯 하다.
지금은 아니지만 애플은 윈도우에 비해 열세에 있을 때 리눅스를 비롯한 공개 소프트웨어 진영과 같은 편이었다. 윈도우를 독점을 공격하면서 상대적으로 오픈되어 있다는 인상을 주어서 개발자를 끌어들여야 했다. 그래서 커널을 공개했다. 하지만 다윈 커널 외에 그 위에서 실행되는 '코코아' 란 이름의 프레임워크는 공개하지 않았다.
공개된 다윈 커널을 이용하면 맥과 아이폰의 앱을 실행할 호환 운영체제를 만들 가능성은 있다. 하지만 프레임워크가 공개되지 않았기에 아주 기초적인 도스수준의 기능을 제외한 모든 고급기능은 호환성을 가지게 만들 수 없다. 따라서 맥의 운영체제와 호환되는 어떤 유사 운영체제나 제한적 운영체제도 나오지 못하고 있는 것이다.
반대로 안드로이드는 처음부터 커널과 프레임워크, 유저 인터페이스까지 전부 공개된 오픈소스 프로젝트이다. 안드로이드는 리눅스란 완전개방형 운영체제의 커널을 이용하고 그 위에 달빅이란 가상머신이 프레임워크 역할을 하며 앱을 실행시킨다.
따라서 킨들 파이어 같이 안드로이드와 호환성을 유지하면서 일부를 자의로 뜯어고치는 것이 가능하다. 호환 운영체제가 나올 수 있는 가능성이 열려있는 셈이다.
또다른 예로서 리눅스 위에 '와인'이란 프로그램을 이용하면 제한적으로 윈도우의 소프트웨어를 실행하는 것이 가능하다. 윈도우의 개방된 소스부분을 이용해서 만든 것이다.
스마트폰이 무섭게 발전하던 2년전에 아이폰, 안드로이드를 포함한 모든 앱이 한 가지 스마트폰에서 실행되게 하려는 움직임이 있었다. 사용자들이 특정 앱을 쓰기 위해 스마트폰을 여러 개 사는 것을 막아보려는 시도였을 것이다. 하지만 이런 운영체제의 개방성과 호환 허용 정책에 따라 현재는 더이상 언급되지 않는다.
아이폰 앱을 다른 스마트폰에서 쓸 수 있을까? 굳이 하려고 한다면 아마도 몇 년 뒤에는 가상머신 방식으로 가능할 수도 있다. 요즘 우리가 게임기를 PC에서 에뮬을 이용해서 즐기는 것과 같은 원리로 말이다. 하지만 현재로서는 무리다. 운영체제의 구조와 호환성은 이처럼 관심없는 일반 소비자의 이용형태까지 제한한다는 것을 잘 알아두자.
(원문참조: 한겨레 오피니언 훅 - 안병도의 IT뒤집어보기)
'꿈이 있는 디지털 세상(한국IT)' 카테고리의 다른 글
온라인 음원 가격, 누구를 위한 인상인가? (6639) | 2012.12.26 |
---|---|
IT기술이 투표방법을 바꿀 수 있을까? (507) | 2012.12.18 |
IT기술의 혁신, 어떤 사람이 만드는가? (2949) | 2012.12.13 |
모토로라의 한국철수, 아쉬움보다 중요한 것은? (3197) | 2012.12.12 |
카카오톡에 맞서는 이통사, 무엇이 필요한가? (9) | 2012.12.09 |
최신 댓글