
Apple's OS X: How Does it Fit on the iPhone?
Thursday, January 25, 2007
애플은 도대체 어떻게 아이폰에 오에스텐을 집어 넣을 수 있었을까? 맥에서는 아무리 최소 설치를 해 보았자 10GB가 필요하다. 게다가 오에스텐은 RAM도 보는대로 잡아 먹는다. 아이폰에는 하드드라이브 자체가 없다.
본 글에서는 아이폰의 시스템이 어떻게 구성될지, 이런 제한적인 환경에서 오에스텐이 어떻게 돌아갈지를 알아본다.
Where Stuff is in Mac OS X
맥오에스텐의 컴퍼넌트는 세 가지 도메인으로 나뉜다.
- 시스템. /System에 속한다. 파인더와 백그라운드 서비스, 카본과 코코아 라이브러리 등, 운영체제의 핵심 소프트웨어가 여기에 들어있다.
- 사용자. /Users에 속한다. 특정 사용자 계정을 위한 소프트웨어 설정이 들어간다.
- 로컬. 나머지 대부분이다. 대부분의 애플리케이션과 함께 써드파티 툴, 프레임웍, 설정, 지원 파일 등이 속한다.
네트워크망을 사용한다면,
네트워크 도메인도 사용할 것이다. 여기에는 원격서버상의 공유 파일과 애플리케이션이 들어간다. 추가해서
BSD 유닉스 유저랜드와
마흐 커널도 있다. 이들은 보통 파인더에서 볼 수 없는 형태이다.
How Big is Mac OS X?
보통 맥 상에서
사용자 도메인의 파일, 즉, 영상이나 노래, 사진 라이브러리, 문서 등은 디스크 공간 대부분을 차지한다. 아이포드도 마찬가지이다. 기가바이트 급의 디스크 대부분은 사용자 파일의 몫이다. 아이포드를 돌리는 작은 애플리케이션과 운영체제의 몫이 아니다.
그 다음으로 공간을 많이 차지하는 것은
애플리케이션이다. 보통의 맥 사용자라면, 애플리케이션 폴더만 25GB가 넘어갈 것이다. 각 애플리케이션 자체도 크다. 가령, Pages와 Keynote는 둘 다 1기가씩 차지한다! 물론 그 자체가 1기가라기에는 무리가 좀 있다. 사실 이 iWork 안에 들어가는 애플리케이션 용량 90%는 프로그램의 코드가 아닌, 그래픽과 각 외국어판 파일, 도움말, 그 외 다른 리소스가 차지한다.
Diet Code
맥오에스텐의 전체
시스템 디렉토리는 iWork보다도 적은 용량을 차지하지만, 시스템 소프트웨어조차도 그래픽과 다른 리소스가 많다. 물론 다수는 아이폰에 꼭 필요하진 않은 코드이다.
가령, 0.5 기가바이트 정도 차지하는 맥오에스텐의 프레임웍을 들 수 있다. 그 중 1/4은 선 자바 가상머신 지원 파일이다. 아이폰에서 제일 밑바닥까지 훑고 들어간다면 간편한 전화기능이 나오겠지만, 아이폰에 들어갈 프레임웍은 대부분 애플 자신의 코코아 프레임웍 복제판일 것이다.
Macworld: Scorecard and Secrets of the iPhone에서 필자는 아이폰에 불필요한 코드의 사례를 제시해 보았다. 그런데 필자가 예로 든 사례가 좀 형편 없었다.
그 글은 음운 결합(합자: ligature)과 같은 사치스러운 서체기술이 아이폰에 쓸모 없다고 주장했었다. 그런데 영어에서야 합자가 장식에만 쓰이지만, 여러 외국어에서 없어서는 안 될 기능이라고 지적한 독자들이 많았다. 즉, 오에스텐에 들어가 있는 세련된 글자처리가 아이폰을 외국 시장에서도 돋보이게 만들 수 있다는 주장이다. 가령, 필자는
Flash Lite에서 한국어 문자를 어떻게 칠지 상상이 안 간다.
필자는 또한 윈도우 겹치기나 출력 지원도 불필요하리라 말했었다. 물론 아이폰과 같은 형태에서 그런 특정 기능이 나타나지는 않았지만, 맥오에스텐에서 동 기능을 실제로 맡은 이는 Quartz 드로잉 엔진이다. Core Animation과 함께, 대시보드 비슷한 창은 물론 아이폰의 모든 그래픽을 다 맡아서 처리한다. 즉, 필요하다는 얘기다.
실제 코드 크기에 대해 생각을 좀 해보니, 필자는 필자 자신이 잘못된 판단을 내렸다는 결론을 내렸다. Apple Type Services와 Quartz 드로잉 프레임웍은 분명 100MB 이내 밖에 차지 안 한다. 전체 크기를 말함이다.
아이폰이 맥오에스텐 코드의 많은 부분을 털어낼 필요까지는 없을 것이다. 그래도 데스크톱용 환경에서 쓰이는 팻 리소스 라이브러리를 사용할 필요 또한 없을 것이다.
Cutting the Fat
맥오에스텐을 설치하면 보통 프린터 지원 파일만 2000MB 정도 된다. 개러지밴드 또한 3000MB의 악기와 루프를 설치하고, iDVD는 거의 2000MB의 탬플릿 파일을 설치한다. 서체 또한 수 백 메가바이트를 소모하며, 마이크로소프트 오피스나 어도비 제품들 또한 자신들의 서체를 따로 설치한다.
비교해 보자. 마흐 커널 자체는 4.6 메가바이트이다. 나머지, 안 보이는 유닉스 유저랜드와 해당 파일 전체를 합쳐도 1GB 안쪽이다. 여기에는 완전한 아파치서버와 윈도 파일공유를 위한 SAMBA 지원, 완전한 X 윈도 그래픽 환경, 개발툴, 수많은 로그파일과 그 전에 설치했던 수많은 쓰레기 파일들까지 모두 합친 양이 그 정도다.
아이폰에는 웹 애플리케이션 서버가 필요 없다. 불필요한 서비스나 그래픽을 좀 없애고 나면, 맥오에스텐을 어떻게 줄여서 아이폰에 넣을 수 있을지 추정할 수 있을 것이다.
Memories...
맥오에스텐을 얼마나 줄일 수 있을까? 불행히도, 애플은 아이폰의 정확한 사양을 모두 공개하지 않았다. 그저 4GB, 아니면 8GB의 메모리가 있다는 것 뿐이다. 하지만 이 메모리 자체가 플래시 용량을 정확이 가리키는지도 아직은 모른다. 어느정도는 그럴 것이다. 아이폰은 운용을 위해 별도의 RAM이나 ROM을 필요로할지도 모른다.
- System RAM PC의 RAM처럼, 애플리케이션이 돌아갈 초고속의 메모리이다. 전력이 꺼지면 정보도 잃는다. DRAM, 혹은 SRAM으로 알려져 있다.
- Flash RAM 좀 느린 RAM이다. 이 RAM에서 돌아가는 애플리케이션은 매우 느리다. 저장용으로 쓰이긴 하지만 이 때에는 매우 빠른 하드디스크처럼 작동한다. NVRAM이라고도 불리며, 전력이 꺼져도 정보가 남는다.
- ROM 펌웨어 메모리이다. 주로 부트용으로 쓰이며, 전력을 필요로하지는 않지만, 보통은 재작성이 불가능하다. 현재 ROM 이미지는 보통 Flash RAM에 들어간다.
80GB의 아이포드는 1MB의 ROM과 64MB의 RAM을 지니지만, 애플은 기술 사양 페이지에 이점을 밝히지 않고 있다. 사실 이 수치가 사용자에게는 별 상관이 없기도 하다. 아이포드 내장 메모리는 전용 OS 부팅과 음악 재생용 캐시로만 쓰이기 때문이다. (이 캐시가 있어야 항상 하드드라이브에 접근시키지 않아도 된다.) 아이포드에 RAM이 더 많이 들어간다고 해서, 아이포드가 "더 나아지지"는 않는다.
비교해 보자. 최근 스마트폰들은 돌리게 될 애플리케이션이 더 많아지는데도 불구하고, 128 MB나 64 MB의 Flash RAM만을 갖고 있다.
그렇다면 아이폰은 기존의 4나 8 GB Flash RAM 말고도, 추가적으로 256 MB의 RAM을 가질 것이다. 오에스텐이나 관련 애플리케이션은 Flash RAM에 들어갈 텐데, 아마도 500 MB는 소요하게 된다. 그렇다면 아이폰이 기본 사양일 때, 음악과 이메일, 그 외 다른 용도로 3.5 GB가 남는다. 그래도 보통의 PocketPC나 Treo보다 28 배 더 많은 용량의 Flash RAM이다. 애플은 분명 아이폰을 소비자들이 실제로 활용하기 바랄 것이다.
리뷰는 보통 전체 RAM 수치만을 갖고 직접 비교에 들어가지만, 그렇게 할 경우 오해를 불러 일으킬 수 있다. 특히, 다른 아키텍쳐와 다른 종류의 메모리를 비교할 때 그러하다. 제한적인 내부 시스템 RAM을 SD 메모리카드로 쓸 수 있다는 주장을 봐도 그러하다. 그 주장은 사실이 아니다.
Flash RAM 카드 삽입(Compact Flash, SD, 메모리스틱 등)은 시스템 RAM이 아닌, 파일 저장용 RAM을 올릴 따름이다. Flash RAM이 더 많다고 해서 데스크톱 컴퓨터처럼 더 큰 하드디스크와 동일한 의미가 아니다. 애플리케이션을 돌리기 위한 메모리 용량은 아무런 차이가 없다. 그저 사진과 데이터 파일 저장 공간이 늘어났을 뿐이다.
Palm OS와 WinCE를 비교해 보자. 이들은 RAM을 어떻게 쓸까?
Palm RAM use
Palm 기기는 원래 최소한의 RAM으로 돌아가는 디자인이었다. 오리지날 뉴튼의 시대에 나온 Palm Pilot은(10년 전이다) 0.5, 혹은 1 MB의 RAM만을 탑재했었다.
Newton MessagePad 2000은 8 MB의 RAM과 8 MB의 ROM을 갖고 있었다.
Palm에서는 모든 것을 메모리에서 직접 읽어들였다. 실제로는 전혀 꺼지지가 않았고, 사실상 슬립만이 가동하였다.
2003년에 나온 Palm Treo 600은 32 MB의 RAM으로 성장하였지만, 사용자가 실제로 쓸 수 있는 용량은 24 MB에 불과했다. 나머지는 Palm OS용이었다. 도큐멘트나 고 오피스와 같은 애플리케이션 설치가 또 5 MB 정도를 차지하니, 이런 애플리케이션을 설치한다면 19 MB만 남게 된다. 하지만 이런 용량이 큰 문제가 된 적은 없었다. 한 번에 애플리케이션 하나만을 돌리기 때문이다.
그런데 Treo 650은 RAM 작동방식이 바뀐다. Flash RAM 32 MB와 시스템 RAM 32 MB로 바뀐 것이다. Flash RAM은 저장용으로서 하드드라이브 개념과 동일하다. 여기에 Palm OS용으로 9 MB의 ROM이 장착되고, 사용자가 쓸 수 있는 공간은 23 MB였다. 그런데 이렇게 될 경우 Treo 600보다 사용자가 쓸 수 있는 공간이 오히려 줄어든 셈이 된다. 똑같은 파일이 예전보다 더 큰 용량을 차지하는 문제도 있었다.
실질적으로 운영체제와 애플리케이션을 돌리는 32 MB의 시스템 RAM은 실제 컴퓨터의 RAM과 동일하다. 시작을 하게 되면 Palm OS는 Flash ROM에서 풀려나와 시스템 RAM의 15 MB 정도를 사용한다. 나머지 애플맄이션과 캐시, 카메라 캡쳐 등이 18 MB를 사용한다. 최신 Palm 700p는 128 MB의 Flash RAM을 갖췄는데, 사용자 몫은 60 MB이다. 나머지 64는 시스템 RAM이다.
제아무리 SD 카드를 넣는다고 하여 Palm Treo가 고속의 멀티태스킹 머신이 되지는 못한다. 메모리 용량은 인위적으로 제한을 받고 있으며, 이 때문에 요새 Palm은 윈도모바일에게 밀리고 있다.
Windows Mobile RAM Use
윈도모바일, WinCE는 모든 것을 커다란 RAM 디스크처럼 시스템 메모리에 저장한다. 단, 전력을 끄면 컴퓨터처럼 모든 정보가 사라진다.
윈도모바일 5에서 마이크로소프트는 Palm과 같은 방식을 소개한다. Flash RAM에 파일을 모두 저장시키되, 일부를 시동중 시스템 RAM으로 돌리는 방식이다. 단, 기기를 끄게 될 경우에도 Flash RAM에 복사된 정보는 그대로 남는다.
윈도모바일 2003용 기기는 보통 아예 Flash RAM이 없거나, 있어도 매우 적은 용량 뿐이었다. 이 때문에 2003용 기기는 윈도모바일 5로의 업그레이드가 힘들다. 어느 정도 Flash RAM이 필요하기 때문이다.
Palm의 윈도모바일 버전 Treo 700은 128 MB의 Flash RAM을 갖는다. (PalmOS용 버전은 64 MB이다.) 윈도모바일 5용 기기는 60 MB 정도의 Flash RAM을 사용자 몫으로 남겨 놓는다.
HTC TyTN이나, 모토로라 Q, 삼성 Blackjack 등 윈도모바일 5 스마트폰과 PocketPC는 모두 64 MB의 RAM, 혹은 128 MB의 Flash RAM을 갖는다. 아이폰의 4096 MB나 8192 MB보다는 상당히 적은 양이다. 다시 말해서, 애플은 아이폰을 소비자들이 실제로 활용하기 바란다.
WinCE = OSXCE?
아이폰의 거대한 디스크 용량은 과연 오에스텐과 WinCE 간에 어떤 차이를 낳을까? 다음 기사에서 알아보도록 하겠다.
What do you think? I really like to hear from readers. Leave a comment or email me with your ideas.
http://www.roughlydrafted.com/RD/RDM...F0D67F740.html