ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 바다(bada)는 OS인가? 플랫폼인가? 개념정리
    OS 2011. 9. 18. 13:56



    안녕하세요.
    저는 삼성전자와 연계된 대학원(*** 학과)에서 석사과정중인 대학원생입니다.
    많은 분들이 bada의 개념을 혼동, 오해 하시는 것 같아서 글하나 적고 갑니다.
     
    bada가 os인가요?
    bada는 os가 아닙니다. 플랫폼이에요. 안드로이드도 엄밀히 말하면 os가 아닙니다. 리눅스 커널 위에다가 플랫폼을 얹은거죠. bada는 RTOS(real time OS) 일종인 Nucleus OS 위에 bada라는 플랫폼을 얹었습니다.
    RTOS는 굉장히 작은 OS라고 보시면 되요 이름에서 볼수 있듯이 당연히 실시간 처리를 하죠. 커널이 대부분이라고 생각하셔도 될정도로 작습니다. 실시간 처리를 위한 스케줄링, 메모리 관리하는 커널에다가 파일시스템, 통신을 위한 소켓(tcp/ip) 정도만을 얹은정도가 Nucleus전부입니다.
     
    이러한 OS위에다가 bada 플랫폼을 얹었습니다. 사용자 UI 및 휴대폰에 탑재되는 각종 센서나 카메라 등의 추가적인 컴포넌트를 포함하였습니다. 플랫폼을 얹음으로써 OS 및 드라이버등의 구조를 잘 알지 못하더라도 제공되는 SDK의 API호출을 통해 프로그램을 개발할 수 있게 합니다. 공통된 개발환경을 가지고 공통된 함수를 호출해서 프로그램이 돌아가기 때문에 프로그램간 호환성이 보장됩니다.
     
    리눅스 버전이 페도라 우분투 레드헷 등 여러가지 있죠? 리눅스 커널 위에 서로 다른 플랫폼을 얹어 서로 다른 기능을 제공합니다. 이런개념으로 보시면 될 것 같습니다.
     
    안드로이드 같은경우도 리눅스 커널위에 플랫폼을 얹은건데, 오픈소스이다 보니, 휴대폰 제조사에서 각종 수정 및 튜닝을 합니다. 그렇기때문에 같은 안드로이드라 할지라도 시리우스에서 돌아가는게 갤럭시에서 돌아가지 않을수 있고 넥서스원에서 또 호환이 되지 않을 수 있습니다. 이러한 문제점때문에 3.0버전에서는 소스를 수정하지 못하도록 한다고 하는것 같아요.
    하지만 바다는 그럴 걱정이 없습니다. 삼성에서만 제조되어 나오니깐요.
     
    바다플랫폼이 공략하는 것은 피쳐폰시장입니다. 피쳐폰의 스마트폰 화 , 이게 바다의 공략포인트이고 목표입니다.
     
    이정도로만 개념정리 하고 가시면 누가 bada가 뭐냐고 물어봤을때 대충 대답하실수는 있을것 같습니다.
    관련 전공이 아니라면 내용이 조금 이해가 어려울 것 같습니다.

     
    [출처] 바다 OS? 플랫폼? 개념잡기 (스마트폰[갤럭시폰/갤럭시A,S/HD2/X10/옴니아2/아이폰/디자이어]) |작성자 유아독존

    =====================================================================================================================
     
     
    이분의 말도 어느정도 일리가 있지만 더 전문적인 포스팅이 있어 이것도 첨부합니다.
     
     
    =====================================================================================================================
     
    http://minupark.tumblr.com/post/456200365/os
    삼성 바다는 OS인가? 플랫폼인가?

    며칠전에 작성한 바다폰 관련된 글에 대해서 200여분이 RT 또는 Mention을 주셨다. 사실 이정도로 많은 분들이 관심을 가져주실 줄은 몰랐던터라 좀 더 잘 정리해서 글을 썼어야 된다는 후회도 들지만, 이미 엎질러진 물이고…
    Reply 중에서 바다는 OS가 아니라 플랫폼(Platform)이라는 지적을 해 주신 분들이 많다. 그래서 이번 기회에 OS와 플랫폼에 대한 명확한 정리를 해 볼 필요가 있을 것 같아서 글을 써본다. 더불어 유사하게 많이 사용되는 프레임워크(Framework)에 대해서도…
    우선 OS에 대한 정의부터 다시 정리해보면… OS를 위키에서는 이렇게 정의하고 있다.
     
    “운영 체제(運營體制, 문화어: 조작체계) 또는 오퍼레이팅 시스템(OS, operating system)은 컴퓨터의 하드웨어를 직접적으로 제어하고 관리하는 일을 하는 시스템 소프트웨어이다.”
     
    OS는 하드웨어를 효율적으로 제어하고 어플리케이션들이 실행할 수 있는 환경을 제공하는 것이 주된 목적이다. 그 목적을 위해서 가장 핵심적인 역활을 수행하는 것이 커널(Kernel)이라고 할 수 있다. 따라서 OS라고 정의하기 위해서는 커널을 보유하고 있는가를 확인해야 한다.
     
    하지만 최근에 OS는 커널 뿐만이 아니라 다양한 라이브러리와 프레임워크를 함께 제공하고 있다. 그럼 프레임워크는 또 뭐란 말인가? 프레임워크는 라이브러리에 포함된 코드들을 재사용이 가능한 형태로 추상화한 형태로 제공하는 것으로 일반적으로 API를 통해서 제공된다. (아~ 복잡하다. 다시 학교로 돌아간 기분이다. ㅜㅜ)
     
    아무튼, 중요한 것은 OS는 커널과 라이브러리, 프레임워크 등으로 구성되어 있다는 사실이다.
    그렇다면 플랫폼은 OS와 어떻게 다른가? 마찬가지로 위키의 정의에 의하면…
     
    “컴퓨팅에서 플랫폼은 소프트웨어가 구동 가능한 하드웨어 아키텍쳐나 소프트웨어 프레임워크의 종류를 설명하는 단어이다. 일반적으로 플랫폼은 컴퓨터의 아키텍쳐, 운영체제(OS), 프로그램 언어, 그리고 관련 런타임 라이브러리 또는 GUI를 포함한다.”
     
    얼추봐도 플랫폼은 OS보다 큰 개념이다. 하지만 OS를 설명할 때 나왔던 용어들이 다시 언급되는걸 보니 그 구분이 쉬워보이지 않는다. 그래서 MS윈도를 OS라고 부르기도하고 플랫폼이라고 부르기도 한다.
     
    그런데 최근에 많이 대두되는 웹플랫폼이란 용어가 있는데, 웹플랫폼에서 OS는 무엇일까? OS의 핵심요소인 커널이 웹플랫폼에는 없으니 말이다. 웹플랫폼이 동작하기 위해서는 서버이든 PC이든 간에 HTML을 표현하기 위한 렌더링엔진이 존재해야한다. 그리고 랜더링엔진은 다시 고유의 OS위에서 동작한다. 그렇다면 고유의 OS를 보유하고있지 않는 웹플랫폼을 플랫폼이라고 말할 수 있는가?
     
    최근에 동향을 보면 플랫폼을 좀 더 포괄적으로 활용하는 것 같다. 오히려 추상적인 OS를 배제한 상태에서 (즉, 커널은 기존 하드웨어 종속적인 부분을 활용하고) 라이브러리 + 프레임워크 + 런타임 등을 포함하여 플랫폼이라고 지칭하는 경우가 많아졌다.
    정리하면 위키에 나와 있는 설명만 가지고는 OS와 플랫폼을 구분하기가 쉽지 않다. 하지만 현실적으로 사용되는 형태는 플랫폼은 보다 상위적인 개념에서, OS는 보다 하위적인 개념에서 자주 사용된다. 그래서 OS를 플랫폼이라고 부를 수는 있지만 플랫폼을 OS라고 부를 수는 없는 이유가 발생하는데 결국 OS의 핵심 요소인 커널의 존재여부라고 할 수 있다.
    그럼 본 글이 제목인 삼성 바다는 OS인가? 플랫폼인가?
     
    결론은 “두~다~(베컴 CF 패러디 ^^)” 왜냐하면 바다의 플랫폼 아키텍쳐를 보면 커널을 자체적으로 가지고 있기 때문이다. 바다 홈페이지에 있는 바다 아키텍쳐를 확인해 보시라.
     
    그런데 재미있는 사실은 바다는 RTOS를 사용하기도 하고 리눅스 커널을 사용하기도 한다. 이 부분은 핸드폰을 제작하는 단계에서 결정되어 지는데 바다는 이 두가지 커널을 모두 지원하고 있다. 안드로이드도 리눅스 커널을 이용하는 것은 마찬가지고… 또한 안드로이드도 OS라고 불리기도 하고 안드로이드 플랫폼이라고 불리기도 한다.
     
    사실 삼성은 RTOS에 관한 전문가집단이다. 그동안 만들어낸 거의 대부분의 휴대폰에 RTOS를 탑재했을테니깐… 하지만 왜 리눅스커널을 바다에 사용하는지는 의문이다. 아마도 기존 RTOS에서 플랫폼을 제공하기엔 커널 기능상의 한계와 응용프로그램 단에서 제공해 줄 수 있는 라이브러리의 한계 때문이 아닐까 생각해본다.
     
    결국 바다는 삼성이 그동안 열심히 만들어왔던 휴대폰 RTOS와 리눅스커널을 잘 조합해서 만든 OS이자 플랫폼인데 20년간 최적화된 커널을 가지고 있고, 대부분 자신들이 만든 디바이스 위에서만 동작할테니 안정성도 어느정도 보장이 될 것이다.
    하지만 이 부분이 결국 삼성에게 성공을 보장해주기는 하겠지만, 스스로 한계를 만드는 부분이기도하다. 안드로이드처럼 벤더들의 다양한 디바이스를 지원하기는 힘들 수 밖에 없다. 나중에 다시 한번 글로 정리를 하겠지만, 모바일 디바이스는 PC 같이 OS의 호환성을 보장해주지 않는다. 그래서 규모가 있는 모바일 단말기 회사(PMP나 네비게이션 기업들)에서는 OS 팀이 별도로 존재하며, 이 팀은 포팅과 안정성과 최적화를 전담하고 있다.
     
    안드로이드가 뛰어난 점은 이런 디바이스의 OS 호환이 보장되지 않는 환경에서 그리고 포팅과 최적화를 위해서 많은 시간과 노력을 뺏기는 개발자들에게 가상머신(VM)을 통해서 호환성을 보장해주고 있다. 달빅(Dalvik)이라고 불리는 가상머신은 개발자들이 하드웨어에 대한 이해가 없더라도 쉽고 빠르게 모바일 디바이스용 어플리케이션을 개발할 수 있도록 해주고 있다.
     
    일반적으로 가상머신은 속도가 느린 것이 문제라고 말한다. 하지만 달빅은 동일한 CPU와 하드웨어 스펙에서 윈도모바일보다 더 빠른 속도와 안정성을 제공해주고 있다. 바로 안드로이드 경쟁력의 핵심은 달빅이라고 보아도 무방할 것이다. 구글이 안드로이드를 인수할 때, 당시에 수많은 리눅스 커널을 기반으로 하는 모바일 플랫폼 기업들이 있었음에도 불구하고 안드로이드를 선택하게 된 배경에는 가상머신의 뛰어남 때문이 아닐까 생각한다.
     
    아무튼 아이폰과 안드로이드 덕분에 스마트폰이 대세가 된 점에 대해서는 애플과 구글에 고마움을 느낀다. ^^;;;
Designed by Tistory.