트위터로 MBC의 김병헌 기자(@syonsyon)님이 스마트폰에서 OS와 플랫폼의 차이를 질문해 오셨다. 이미 12시간 전의 질문인데 트위터 푸시서비스를 받지 않아서 이 질문을 이제야 봤다. 급질문에 대한 답으로는 많이 늦었지만 스마트폰에 대한 이야기가 나오면서 이런 용어에 대한 이해가 필요할 것 같아서 간단하게 정리해 본다.

초 간단 정리(과연orz).

OS는 컴퓨터와 사용자 사이에서 컴퓨터를 동작시키고 컴퓨터의 연산 결과를 사용자가 알 수 있게 해 주는 인터페이스이다. OS는 OS 위에서 올라가는 응용프로그램들이 하드웨어 자원을 효과적으로 적절하게 사용할 수 있게 스케쥴을 조정하고 하드웨어 자원의 활용과 공유를 관리하여 전체 시스템이 원활하게 돌아가도록 한다. 응용프로그램은 OS에서 제공하는 API(Application Programming Interface 응용 프로그래밍 인터페이스)라는 것을 사용하여 만들어지며, OS에서 제공하는 인터페이스에 의해 할 수 있는 일이 제약된다.

플랫폼은 소프트웨어를 실행시키기 위한 (일관된) 구조이다. 의미면에서 OS도 플랫폼의 하나로 볼 수 있다. 소프트웨어를 실행시키기 위한 모든 구성, 구조, 기반이 플랫폼이기 때문이다. 흔히 플랫폼은 프로그램 실행을 위한 하드웨어 구조 또는 소프트웨어 프레임워크를 의미한다. 소프트웨어 개발을 위해 제공되는 일관된 방법을 제공하면 플랫폼이라고 부를 수 있겠다. 일반적인 플랫폼이라면 컴퓨터 구조, OS, 프로그래밍 언어, 런타임 라이브러리와 GUI까지 광범위하게 이야기한다.



위의 정리를 읽고 이해가 영 안 된다 싶으신 분들을 위해 아래에 적당히 정리했으니 참고하시기 바란다.

 

OS, 운영체제, 운영체계

OS는 Operating System의 약자로 흔히 운영체계, 혹은 운영체제로 번역한다. 심하게 일본식 번역스러운 이 말은 컴퓨터를 공부할 때 언급되어 단순 사용자에게 상당한 진입장벽이 되기도 한다.

OS에 대한 이야기는 책 한 권을 꼼꼼히 읽어도 이해가 갈락말락할 정도로 상당히 방대한 이야기이다. OS에 대한 책을 보면 항상 컴퓨터의 역사부터 외계어로 진을 빼 놓는데, 일반인 수준에서는 어렵게 생각할 것이 없겠다.

OS는 인터페이스이다.

인터페이스란 말이 또 걸리적 거리는데, 뭔 말인지 모르겠는 분들은 일종의 통역사 정도로 보자.

컴퓨터는 하드웨어(Hardware, H/W)와 소프트웨어(Software, S/W)의 협력으로 동작한다. 하드웨어가 물리적 연산장치, 즉 손에 잡히는 무엇이라면 소프트웨어는 일반적으로 디지털 형식으로 저장된 데이터나 컴퓨터에 의해 읽고 쓸 수 있는 정보들을 의미한다. 흔히 얘기하는 '프로그램'이라는 것이 소프트웨어고, 이 소프트웨어를 동작시키는 물리적인 장치가 하드웨어라고 보면 되겠다.

OS는 하드웨어와 사용자 사이에서 통역을 담당하는 소프트웨어라고 보면 된다. 컴퓨터는 기계어라고 불리는 사람이 알아먹기 매우 까다로운 말을 쓴다. 이 기계어는 사용하는 프로세서(흔히 얘기하는 CPU나 코어)에 따라 다르다. 사용자가 이 언어를 이해해서 컴퓨터를 동작시키는 것은 매우 어려운 일이다. 그래서 OS는 사람이 비교적 이해하기 쉬운 언어, 프로그램 작성자가 쉽게 이해하고 사용할 수 있는 인터페이스를 통해 OS 위에서 동작하는 프로그램을 작성할 수 있도록 지원하고, 시스템 전체의 효율을 높히고 사용자가 사용하기 편한 다양한 기술을 접목하여 제공한다.

전체적인 그림으로 보면 다음과 같다.


사용자는 컴퓨터 하드웨어를 동작시켜 그 결과를 얻으려고 한다. 위의 그림에서 녹색 점선으로 둘러싸인 것이 우리가 흔히 얘기하는 컴퓨터이다.

사용자는 응용프로그램을 실행시켜 다양한 입력장치를 통해 컴퓨터에게 명령을 내린다. 응용프로그램은 OS에서 제공하는 인터페이스(API1 )만 사용하여 작성되는데 직접 하드웨어를 동작시키지 못하고 운영체제에 하고자 하는 일을 요청한다. OS는 하드웨어 드라이버(혹은 펌웨어라고 부르는 것)을 통해 각 장치의 상태나 사용 가능 여부를 확인하고, 요청한 응용프로그램이 사용 가능할 경우 역시 API를 통해 사용할 수 있게 해 준다. OS는 여러 프로그램이 요청하는 일을 잘 관리하여 시스템이 효율적으로 돌아갈 수 있도록 하고, 사용자가 원하는 결과를 얻을 수 있도록 조율하는 역할을 한다.

하드웨어는 하드웨어 드라이버를 통해 요청된 일을 처리한다. 그리고 처리된 결과를 OS에게 알려준다. 그러면 OS는 역시 API에 정의된 대로 응용프로그램에게 하드웨어에서 처리한 결과를 알려주고 응용프로그램은 이것을 사용자가 알기 편한 형태로 바꿔서 보여준다. 우리가 흔히 UX(사용자 경험)이라고 하는 것은 사용자와 응용프로그램 사이에서 일어나지만, 좋은 UX를 위해서는 각 단계별로 소홀할 수 없다.


Platform(플랫폼)

플랫폼은 소프트웨어가 돌아갈 수 있게 해 주는 일관된 환경이라고 봐도 무리가 없을 것 같다. OS도 플랫폼의 일종이라고 볼 수 있으며, Java나 .NET 프레임워크 같은 소프트웨어도 플랫폼이라고 부른다. 응용프로그램 개발자 입장에서 일관된 방식으로 소프트웨어를 만들 수 있으면 플랫폼이라고 부를 수 있겠다.

이를테면 애플의 아이팟 터치, 아이폰, 새로 나온 아이패드의 경우 같은 플랫폼이라고 본다. 맥OS에서 애플에서 제공하는 SDK2 와 개발 도구(IDE3 와 컴파일러4 )를 통해 앱을 개발하고 이것이 아이팟터치, 아이폰, 아이패드에 일관되게 적용되기 때문이다. 구글의 안드로이드도 OS이면서 플랫폼이라고 할 수 있으며, 삼성의 바다(Bada)의 경우는 OS는 아니지만 일종의 미들웨어5 로 삼성에서 제조하는 모든 핸드폰에서 실행 가능한 응용프로그램 개발의 일관된 방법을 제공하므로 바다 플랫폼이라고 부를 수 있겠다. 마찬가지로 노키아의 심비안6 이라던지 퀄컴의 BREW7 , 심지어 소니의 플레이스테이션 같은 게임기도 하나의 플랫폼으로 볼 수 있다.

즉 플랫폼은 OS를 포함하는 보다 넓은 개념으로
개발자 입장에서 보면 일관된 응용프로그램 개발/실행 환경을 제공하는 모든 하드웨어, 소프트웨어 구성을 의미하고
사용자 입장에서는 일관되고 익숙한 방식으로 설치하고 사용할 수 있는 프로그램을 제공하는 하드웨어, 소프트웨어 구성을 의미한다고 봐도 큰 무리는 없을 것 같다.

최근에 삼성에서 프로모션하는 바다 플랫폼의 경우 OS로 잘못 알고 있는 경우가 많은데 구조상 바다는 OS가 아니고 소프트웨어 플랫폼의 일종으로 볼 수 있다. 컨셉은 대단하고 잘 만들었을 경우에 파급력도 상당하겠지만 관련 개발자의 말을 종합해보면 중장기적인 안목으로 차근차근 준비되고 있는 것 같지는 않다(사공이 너무 많고 이해 관계자가 너무 많다고 해야할까). 중장기적인 안목이 없다는 것은 바다가 지향하고자 하는 바가 담긴 다이어그램 하나 구하기 힘들다는 것에서도 쉽게 알 수 있다. 상당히 뜬구름 잡는 이야기를 하고 있다. 삼성의 수억 대의 피쳐폰 위에 올라가는 프로그램을 만들 수 있는 플랫폼처럼 소개하더니 어느 순간에 스마트폰을 위한 플랫폼으로 둔갑하고, 이번 S8500 Wave폰의 경우 바다 플랫폼은 어디로 가고 핸드폰 하드웨어 소개만 열심히 하고 있다. 급할수록 차근차근 준비할 필요가 있는데...


본 내용은 마하반야의 기본 전공 지식을 바탕으로 보다 신뢰도 높은 정보 제공을 위해 위키피디아와 구글링을 바탕으로 정보를 가다듬었음을 밝힙니다. 영어에 익숙하신 분들은 영문 위키피디아에서 보다 자세한 정보를 얻을 수 있을 것이고, 조금만 깊이 들어가도 외계어가 난무하기 때문에 그나마 복잡한 이야기는 많이 덜어내었습니다. 그리고 깊이있는 내용은 저도 다시 책 들여다봐야 하고-_- 그 내용을 쉽게 설명할 자신도 없고...


ps1. 잘못된 정보나 추가 정보 언급은 언제나 환영.
ps2. 얘기하다보면 깊게 들어가서 중간에 적당히 자르고 적당히 대충 설명한 부분도 있음.
ps3. 문외한에게 얼마만큼 설명이 될지 잘 모르겠음. 잘 이해가 안 되면 댓글로 질문하면 아는 한도에서 답변 or 본문 보충 하겠음.

2010년 2월 16일 작성.
2010년 6월 1일. 이미지 엑박 뜬다고 독스에서 링크한걸 직접 업로드로 바꿈.

  1. API는 OS 설계/제공 업체에서 일부 API를 응용프로그램 개발자에게 공개하지 않는 경우도 있다. 대부분은 보안, 안정성을 이유로 제한하는 경우거나 기능이 미비해서 아얘 사용하지 못하도록 숨겨놓는 경우도 있다. [본문으로]
  2. Software Development Kit 으로 소프트웨어 개발 키트라고 한다. 응용프로그램 개발을 위해 OS에서 API를 제공하듯 플랫폼에서는 쉬운 개발을 위해 SDK를 제공하는 경우가 흔하다. SDK는 OS의 경우 API일수도 있고 API를 조합해 만든 더 편리한 무엇일 수도 있다. [본문으로]
  3. Integrated Development Environment로 통합 개발 환경 정도로 번역되어 사용된다. 프로그램 개발을 위한 프로그램, 플러그인, 프로그램 수정을 위한 장치나 프로그램을 포함한다. [본문으로]
  4. 하나의 프로그램 언어를 다른 언어로 번역하는 프로그램. [본문으로]
  5. 서로 다른 종류의 장치, 시스템, OS, 서비스를 일관된 방식으로 처리할 수 있도록 프로그램 계층, 즉 인터페이스를 하나 더 만들어 놓은 것. [본문으로]
  6. 노키아에서 만든 핸드폰 OS의 일종 [본문으로]
  7. 퀄컴에서 만든 CDMA폰을 위한 응용프로그램 개발 플랫폼. 현재 GSM에도 확대 적용되어 있음. [본문으로]
버즈에서 소식 받기
profile image

거창한 글은 안 씁, 아니 못 씁니다. 읽고 '이런 생각하는 놈도 있구나. 뭔가 좀 이상하지만 그럴듯해' 정도가 원하는 바입니다. 우호댓글 환영. 비판댓글 환영. 비난댓글 삭제. 관련 트랙백 환영(답방 100%). 추천은 땡큐. 링크 권장. 저작권은 지키려고 '매우' 노력함. UCC/CCL 콘텐츠 포함하지만 인용 및 유머 수준으로 사용. 뒷통수치는 고소고발 재수없음. 본 글은 마하반야에게 저작권 있습니다만 비영리를 전제로 상식적인 인용/발췌는 OK입니다

  1. 띠용 2010/02/16 21:00 답글수정삭제

    오에스는 지구라는 세계를 말하는것 같구요, 플랫폼은 각 대륙을 연결해주는 정류장 정도라고 이해하면 되나요?^^;

    • mahabanya 2010/02/16 21:24 수정삭제

      음, 그보다는 각국의 정부가 OS가 된다고 보면 될 것 같네요. 시민이 사용자고 정부가 OS이고 토지를 비롯한 각종 자원이 하드웨어가 되는 것이죠.

      각국 정부를 OS로 비유하면 여러 '주의'라는지 이념 같은 것은 플랫폼이라고 볼 수도 있겠네요. 우리 나라는 대통령 중심제와 3권 분립을 기본으로 하는 민주주의와 수정 자본주의가 합쳐진 플랫폼을 갖고 있는 것이죠.

      조금 엄밀하게 얘기하면 이 비유도 매우 제한적이지만... 지구적 규모에서 비유를 하자면...

  2. 키다링 2010/02/17 00:52 답글수정삭제

    아하 이제



    ...잘 모르는건 여전하니 또 읽어볼게요! 컴퓨터 무지 잘 아시네요!

  3. 아이지 2010/02/17 15:19 답글수정삭제

    OS = Interface

    !! 아, 이 엄청난 공식 !!

    제 블로그는 OS연구소 인겁니다 ~!~!

    음 다시 읽어보니, 이거 이거 반야님이 직접 작성하셨네요!? 일반적인(교과서적인) 운영체제의 설명과는 많이 다른데요? 아 내용이 그르다는게 아니고, UX라는 내용도 그렇고 원래 여느 전공 책을 봐도 그런 내용 안나오는데 말입니다 ㅋㅋ 무슨 커널이니 그런 말도 없는 것이 분명~!~! ㅎㅎ

    ps 추천버튼 없나욥 추천하고파요 ㅜㅜ

    • mahabanya 2010/02/17 20:39 수정삭제

      OS는 인터페이스지만 인터페이스가 OS는 아니라^^

      원서에도 OS is an interface ... 라고 설명되어 있는 곳이 많죠.

      커널따위 일반인에게는 외계어. 문과인 동생은 이 글에서 OS만 보고 스킵했다고 하더군요orz


      ps. 메타 추천버튼은 다 떼어버렸습니다. 평균 방문자 2000, 실방문자 1000 넘으면 자생 가능하다고 보고 떼어버릴 생각이긴 했는데 스킨 엎으면서 떼어버렸지욤. 최근 방문자수 증가는 '셀스키' 덕분이지만;ㅂ;

  4. 블랙체링 2010/02/17 14:46 답글수정삭제

    구분없이 그냥 써오던 말들인데 이렇게 자세하게 차이를 설명해 주시니 지식 하나가 더 늘어나는군요 ^^*

    • mahabanya 2010/02/17 20:34 수정삭제

      사실 IT 긱들이나 이런 용어 정의에 집착하지 일반인에게는 그냥 '마케팅 용어'일 뿐이죠;ㅂ;

      그래도 기자들은 좀 인식하고 보도를 해야하지 않을까 싶어서 대충 적어봤습니다.

  5. zeide 2010/02/19 17:35 답글수정삭제

    왠지 모르게 속이 후련한(?) 글이네요. 잘 읽었습니다.^^

  6. 전명훈 2010/03/22 11:00 답글수정삭제

    고맙습니다..뭔가 정리되는듯..

  7. 경제우 2010/03/27 18:51 답글수정삭제

    항상 헛갈려 했던 개념이었는데 이제좀 정리가 되는듯한 느낌입니다 ^^
    글 잘보고 갑니다~

  8. 재수강자 2010/05/02 21:02 답글수정삭제

    잘보고 갑니다

  9. 이재광 2010/05/17 15:40 답글수정삭제

    좋은 내용 감사합니다. 오랫동안 궁금했는데.. 속이 다 후련합니다.

  10. 안진아 2010/06/01 02:28 답글수정삭제

    중간에 그림 엑박뜨는데..ㅠㅠ 저만 그런건가요? 요즘 스마트폰때문에 OS와 플랫폼의 차이에 대해 궁금해하고있었는데 잘 써주셔서 감사히 읽고 제 블로그로 퍼가겠습니다.

    • mahabanya 2010/06/01 14:34 수정삭제

      액박은 직접 업로드 방식으로 수정하여 문제 없을 것입니다. 블로그로 퍼가는 것은 사이드바에 공지사항이 있으니 참고해 주세요.

트랙백 주소 :: http://mahabanya.com/690/trackback/
옵션
댓글 달기