[운영체제] 운영체제의 개요

운영체제(OS)는 컴퓨터 하드웨어와 컴퓨터 사용자 간의 매개체 역할을 하는 시스템 소프트웨어로 사용자가 프로그램을 수행할 수 있는 환경을 제공한다.
운영체제의 좁은 의미로는 하드웨어와 응용 프로그램간의 다리 역할을 하는 커널(Kernel)을 의미하며, 넓은 의미에서는 커널, 미들웨어, 응용 프로그램 실행 환경과 사용자 인터페이스 프레임워크를 모두 포괄하여 정의한다.

컴퓨터 하드웨어의 편리한 이용과 효율적 관리를 위해서는 하드웨어 자원에 대한 파악과 관리가 필수이다.
초기의 운영체제는 컴퓨터 하드웨어 자원에 접근하여 이용, 제어, 프로세스 관리, 자원할당 등 전문적인 목적으로 개발되었으나 점점 컴퓨터를 사용하는 일반인들이 많아지게 되었고, 일반인 사용자들에게 편리하고 친금함을 줄 수 있도록 변화되어 나온 것이 windows 같은 GUI 기반의 운영체제이다.

최근에는 스마트폰, 태블릿의 등장으로 모바일 운영체제도 탄생하게 되었고, 웹 브라우저만 있으면 사용 가능한 웹 OS도 사용되고 있다.

운영체제의 역할 및 특징

  • 컴퓨터 하드웨어를 제어한다.
  • 입출력을 쉽게하고 연산을 제어한다.
  • 응용 프로그램의 실행을 제어하며 작성을 편리하게 한다.
  • 데이터와 파일의 저장을 관리한다.
  • 사용자들의 간의 하드웨어 자원을 공유할 수 있도록 한다.
  • 시스템 자원을 스케줄링하여 효율적으로 활용할 수 있게 한다.
  • 오류의 발생을 막고 복구를 지원한다.
  • 데이터의 조직화, 네트워크 통신 처리 기능을 수행한다.
  • 편리한 사용자 인터페이스를 제공한다.

운영체제의 종류

주요 서버 및 데스크톱 운영체제

  • 유닉스(Unix)

    • 1969년 미국의 AT&T사의 벨 연구소의 켄 톰슨 및 데니스 리치에 의해 만들어졌다.
    • Multics라는 OS를 참고하여 개발하였다.
    • 그 후 무료로 여러 연구소 및 대학교에 OS를 소스와 함꼐 보급하여 여러 버전의 유닉스가 개발되었고, 대표적인 것으로는 System V계열과 BSD 계열이 있다.
    • 유닉스의 특징으로는 다중 사용자 및 다중 작업 지원, 강력한 네트워크 지원, 뛰어난 이식성 및 확장성, 계층적 파일 구조, 가상 메모리 및 공유 라이브러리 지원 등이 있다.
  • 윈도우(Windows)

    • 빌 게이츠와 폴 앨런이 설립한 마이크로소프트 사는 베이직 프로그래밍 관련 개발 회사로 시작하였는데, IBM의 프로그래밍 관련 제품을 개발하던 중 운영체제 개발 의뢰를 받으면서 운영체제 개발에 착수하게 된다.
    • 86-DOS(시애틀 컴퓨터 시스템사)를 사들여서 IBM PC용으로 수정하고 PC-DOS를 출시, 이후 MS-DOS라는 CLI 방식의 운영체제를 출시하였지만 일반적인 사용자들에게는 접근이 쉽지 않아 GUI 방식의 운영체제를 개발하기 시작하였다.
  • 맥 (Mac OS X)

    • 스티브 잡스와 스티브 워즈니악의 의해 만들어졌다.
    • 개인용 컴퓨터(PC) 중에서 최초로 GUI 방식의 운영체제가 탑재된 애플 리사를 출시하였지만, 그 때의 CPU로는 속도가 매우 느려 큰 손실을 입게된다.
    • 이후 제프 라스킨이 주도하는 매킨토시 프로젝트에 참여하게된 스티브 잡스는 제프 라스킨과의 대립 끝에 제프 라스킨은 퇴사하고, 출시된 매킨토시는 큰 성공을 거두지 못한다.
    • 애플에서 퇴사한 스티브 잡스는 NeXT라는 회사를 설립하여 NeXTSTEP이라는 운영체제를 개발하였고, 이를 주목한 애플은 NeXT를 인수하여 잡스를 다시 애플로 복귀시켰다.
    • Mac OS X는 BSD 유닉스 기반으로 만든 NeXTSTEP을 확장하여 만든(다윈, Darwin) Mac OS의 10번째 버전이라는 의미인데, OS X가 하나의 상품명으로 자리잡게 되었다.

리눅스 기반 모바일 운영체제

  • 구글 안드로이드

    • 안드로이드는 휴대 전화를 비롯한 모바일 기기를 위한 운영체제, 미들웨어, 사용자 인터페이스, 응용 프로그램을 포함하고 있는 소프트웨어 스택이자 모바일 운영체제이다.
    • 안드로이드는 개발자들이 자바 언어로 응용 프로그램을 작성할 수 있게 하였으며, 기존의 자바 가상 머신과는 다른 달빅 가상 머신을 통해 자바로 작성된 응용 프로그램을 별도의 프로세스로 실행하는 구조로 되어있다. 달빅은 Oracle의 Java 표준 컴파일러를 사용하고 있는 가상 머신이기 때문에 JIT(Just In Time) 컴파일러를 사용하여 실시간 컴파일을 통해 앱이 동작한다. 호환성은 좋지만 CPU 사용량이 증가하고 배터리 사용에도 영향을 미치는 단점이 존재했다.
    • 안드로이드 4.4 킷캣 버전부터는 달빅을 대체할 수 있는 ART(Android RunTime)이라는 새로운 런타임을 제공하고, 5.0 롤리팝부터는 완전히 대체했다. ART는 컴퓨터가 바로 해독 가능한 기계언어를 포함되어 있어 AOT(Ahead Of Time) 컴파일러를 사용한다. 기계언어가 포함되어있어 실행은 빠르지만, 설치가 느리고 용량을 많이 차지한다.
    • 안드로이드 7.0 누가 이후에서는 JIT와 AOT를 모두 탑재함으로써 유연하게 적용하도록 하였다.
    • 안드로이드의 장점으로는 높은 편의성, 빠른 반응속도를 제공한다. 또한 구글 검색 엔진, 구글 맵, G-mail 등 막강한 구글의 서비스들이 기본으로 탑재되어 있다는 큰 장점이 있다. iOS에 비해 개발진입 장벽이 낮아 다양한 애플리케이션이 쉽게 개발되어 사용자들에게 제공된다. 4.1 버전인 젤리 빈부터 스마트폰과 태블릿용 버전을 통합하면서 범용 OS로써의 형태를 갖추고 있다.
    • 단점으로는 오픈 소스로 인한 보안상의 취약점이 가장 큰 약점으로 지적되고 있으며, 아이폰과 달리 다양한 하드웨어 제조사에 의해 탑재되므로 통일성이 떨어지고 그에 따른 개발상의 어려움과 안정성 확보도 단점으로 지적되고 있다.]
  • Bada OS

    • 삼성전자가 멘토 그래픽스사의 Nucleus RTOS를 기반으로 바다 플랫폼을 발표하였다.
    • 중저가 스마트폰 시장을 주요 타겟으로 하여 피쳐폰의 스마트폰화를 주도하였으나 적은 앱이 가장 큰 약점으로 지적되고 있다. 현재 바다는 미고와 리모가 통합된 타이젠과 통합할 예정이다.
  • 마에모(Maemo)

    • 노키아가 스마트폰 및 인터넷 태블릿용으로 만든 리눅스 기반 소프트웨어 플랫폼이다.
    • 인텔의 모블린과 합병하여 미고라는 프로젝트로 변경되었다.
  • 모블린(Moblin)

    • 모블린은 모바일 리눅스의 약어로 MID(Mobile Internet Device), 넷북 등 임베디드 모바일 기기를 위해 인텔과 리눅스 재단이 리눅스 기반으로 개발한 오픈 소스 운영체제이다.
    • 마에모와 합병하고 미고라는 프로젝트를 진행하였다.
  • 미고(MeeGo)

    • 모블린과 마에모가 합병하여 만든 모바일 운영체제 프로젝트로 넷북 및 모바일용 등 2가지 버전이 있으며 리눅스 재단이 주관하고 있다.
    • 이후 노키아와 인텔이 빠졌으나 프로젝트는 계속 운영하고 있고, IVI(In-Vehicle Information), 차량용 네비게이션, 스마트 TV 버전도 개발 예정이다.
  • 리모(LiMo)

    • 리모는 리눅스 모바일의 약자로 삼성전자, NEC, 파나소닉, 보다폰 등이 참여하여 시작한 프로젝트이다.
    • 2011년 9월에 프로젝트를 종료하고 미고로 대체되었고, 2012년 인텔과 삼성전자를 주축으로 리모 재단, 미고 개발자 등과 협력하여 HTML 5와 웹 표준에 기반한 Tizen 프로젝트를 시작하였다.
  • 타이젠(Tizen)

    • 인텔과 삼성전자를 주축으로 리눅스 재단, 미고 개발자 등이 합류하여 만든 리눅스 기반의 오픈 소스 모바일 운영체제이다.
    • HTML 5를 진원하며 태블릿, 넷북, 스마트폰, 스마트 TV, IVI지원이 목표이다.



참조


Written by@EHX
Software Developer, Back-End Engineer

GitHubFacebook