[LINUX] 리눅스 운영체제의 종류


❋ 운영체제의 종류

1. 유닉스

  • 1969년 미국의 AT&T사의 벨(Bell) 연구소에서 연구원을 근무하고 잇떤 켐 톤슨 및 데니스 리치에 의해 만들어졌다.
  • 다중사용자 및 다중작업을 지원, 강력한 네트워크, 뛰어난 이식성 및 확정성, 계층적 파일 구조, 가상메모리 및 공유 라이브러리 지원
  • 켐 톰슨은 DEC사에서 만든 PDP-7이라는 컴퓨터에서 프로그램을 개발하는 데 편리한 운영체제를 새로이 개발하면서 Multics라는 OS를 참고로 하였기 때문에 유닉스(UNIX)라는 이름이 붙음.
  • 대표적으로 System V계열과 BSD계열이 있다.
    • System V 계열 : 주로 상업적인 목적을 가진 업체들인 IBM, HP, Sun Microsystems, SGI 등이 있다.
    • BSD 계열 : NetBSD, Free BSD, OpenBSD, SunOS, NextStep, Mac OS X, GNU/LINUX 등이 속한다.

2. 윈도우 (Window)

  • 1975년 빌 게이츠(Bill Gates)와 폴 앨런(Paul Allen)이 설립한 마이크로소프트사는 베이직(Basic) 프로그래밍 관련 개발 회사로 시작하였다.
  • 키보드 대신에 마우스로 아이콘 및 메뉴 등을 클릭하여 작업을 수행하고 멀티태스킹을 지원하는 그래픽 사용자 인터페이스(GUI) 기반의 운영체제 개발에 착수.
  • 1993년 MS는 기업을 주요 대상으로 네트워크 기능, 보안성, 안정성을 강화한 32비트 운영체제인 '윈도 NT 3.1' 을 출시하였고, 이 후 PC의 성능이 전반적으로 향상되어 개인용으로 사용하는 Windows2000, Windows20003, Windows2008, WindowsXP 등이 출시되었고, 현재는 Windows10이 사용되고 있다.

3. Mac OS X

  • 1974년 대학을 중퇴하고 컴퓨터 게임 회사인 아타리(ATARI)사에 근무하던 스티브 잡스와 대형 컴퓨터 업체에서 근무하던 스티브 워즈니악은 직접 컴퓨터를 만들 계획을 세우고, 1976년 '애플 I(Apple I)를 출시하게 된다.
  • 스티브 잡스는 제록스(Xerox)사에서 처음 개발한 마우스를 사용하는 GUI 방식에 관심을 가지게 되고, 리사(Lisa) 프로젝트를 진행하여 1983년 개인용 컴퓨터 중에서 최초로 GUI 방식의 운영체제가 탑재된 '애플 리사가' 출시된다.
  • 1985년 실적부진으로 애플에서 물러난 스티브 잡스는 '넥스트'라는 회사를 설립하여 '넥스트스텝(NeXTSTEP)'이라는 운영체제를 개발하였고, 1997년 넥스트사 인수를 통해 잡스를 다시 경영 일선으로 복귀 시켰다.
  • 1998년 '아이맥 G3'를 출시하면서 애플을 흑자로 전환시켰으며, 2000년 새로운 운영체제인 'Mac OS X'를 출시하게 된다.




4. 모바일 운영체제

  • 모바일 환경을 고려하여 설계된 모바일 장치나 정보기기에 탑재되는 운영체제를 말한다.
  • 기본적으로 윈도우,맥,리눅스와 같은 운영체제와 비슷하나 모바일 장치 및 환경적 특성에 적합하도록 설계되었다. 특히, 배터리 사용, PC에 비해 상대적으로 낮은 사양, 무선 기반으로 광대역 및 지역 연결, 다양한 멀티미디어 지원 등의 환경적 특성은 휴대폰, 개인정보 단말기(PDA: Personal Digital Assistant), 태블릿 뿐만 아니라 TV나 자동차 영역까지 확대되고 있다.

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

  • 구글의 안드로이드 
    • C/C++라이브러리 포함, 개발자들이 자바 언어로 프로그램을 작성할 수 있게 하였고, 자바 가상머신이 아닌 달빅 가상머신을 통해 자바로 작성된 응용 프로그램을 별도의 프로세스로 실행하는 구조.
    • 달빅은 호환성이 좋은 장점이 있지만, CPU 사용량이 증가하고 배터리 사용에도 영향을 미치는 단점이 존재하여 안드로이드 4.4 킷캣 버전부터는 ART(Android RunTime)이라는 AOT(Ahead Of Time)컴파일러를 사용하는 새로운 런타임을 제공하였다.
    • 안드로이드의 단점으로는 오픈 소스로 인한 보안상의 취약점이 가장 큰 약점으로 지적되고 있으며, 아이폰과 달리 다수의 하드웨어 제조사에 의해 탑재되므로 통일성이 떨어지고 그에 따른 개발상의 어려움과 안정성 확보도 단점으로 지적되고 있다.
  • 바다 OS
    • 삼성전자는 멘토 그래픽스사의 Nucleus RTOS를 기반으로 바다 플랫폼을 발표하였지만, 적은 앱이 약점으로 지적되어 현재 미고(MeeGo)와 리모(LiMo)가 통합된 타이젠(Tizen)과 통합할 예정이다.
  • 마에모(Maemo)
    • 노키아가 스마트폰 및 인터넷 태블릿용으로 만든 리눅스 기반 소프트웨어 플랫폼이고, 인텔의 모블린과 합병하여 미고(Meego)라는 프로젝트로 변경 되었다.
    • 모블린(Moblin)
      • 모바일 리눅스의 약어로 임베디드 모바일 기기를 위해 인텔과 리눅스 재단이 리눅스 기반으로 개발한 오픈 소스 운영체제이다. 2010년 2월에 인텔은 모블린 프로젝트를 노키아의 마에모와 합병하고 미고(MeeGo)라는 새로운 프로젝트를 진행하기로 결정하였다.
    • 미고(MeeGo)
      • 인텔의 모블린과 노키아의 마에모가 합병하여 만든 모바일 운영체제 프로젝트로 넷북 및 모바일용 등 2가지 버전이 있으며 리눅스 재단이 주관하고 있다.
    • 리모(Limo)
      • Linux Mobile의 약자로 삼성전자, NEC, 파나소닉, 보다폰 등이 참여하여 시작한 프로젝트이다. 2011년 9월에 프로젝트를 종료하여 MeeGo로 대체 되었고, 인텔과 삼성전자를 주축으로하여 HTML 5와 웹 표준에 기반한 Tizen 프로젝트를 시작하였다.
    • 타이젠(Tizen)
      • 인텔과 삼성을 주축으로 리눅스 재단, MeeGo 개발자 등이 합류하여 만든 리눅스 기반의 무료 공개형 모바일 운영체제이다.

    6. 스마트 TV

    • 정의 : 운영체제를 탑재하고, TV 본연의 기능을인 실시간 방송 시청뿐 아니라 인터넷 접속 기능을 기반으로 웹 검색, VOD, 게임, SNS 앱스토어 등의 기능이 가능한 TV.
    • 주요 스마트 TV의 운영체제
      • Mac OS 기반의 애플 TV
      • 구글의 리눅스 기반의 구글 TV
      • 삼성전자는 리눅스 기반 바다OS를 탑재하고 있으나, 인텔, 리눅스 재단, MeeGo 개발자 등과 협력하여 개발하고 있는 타이젠으로 변화를 꾀하고 있다.
      • LG전자의 리눅스 기반 넷캐스트 OS를 탑재한 TV

    7. IVI(In-Vehicle Infotainment)

    • 정의 : IVI란 자동차 내에서 CD 및 DVD등의 재생을 비롯한 오디오와 비디오 콘텐츠 재생,TV 기능, 서라운드 사운드 시스템, 자동차 내비게이션 시스템 등을 제공하는 하드웨어 장치의 모음.
    • 주요 IVI의 종류와 특징
      • MS의 Windows Embedded Automotive : Windows CE기반으로 만든 것으로 자동차에 내장되는 컴퓨터 시스템을 위한 운영체제이다.
      • QNX : 유닉스 형태의 RTOS으로 임베디드 시스템에 내장되는 운영체제, 표준 웹환경에 적합하기 위해 HTML 5 기반의 플랫폼
      • GENIVI : 리눅스 운영체제 기반
      • 안드로이드 : 리눅스 기반의 오픈소스, 확장성과 유연성, 친근감 있는 UI, 막강한 안드로이드 앱 마켓, 에코시스템등의 장점을 가지고있음.
      • MeeGo/Tizen IVI : 노키아의 마에모와 인텔의 모블린 등 2개의 모바일 운영체제 프로젝트가 통합하여 생성된 프로젝트인 MeeGo는 IVI용도 출시하였고, Tizen은 웹 표준과 HTML 5를 지원하며 태블릿, 넷북, 스마트폰, 스마트TV, IVI 등을 다양한 기기를 지원하는 프로젝트이다


    8. 웹 운영체제

    • 2000년대 초반의 Web OS는 "인터넷 기반의 운영체제로 인터넷 접속이 가능한 곳이라면 언제 어디서나 자신의 데스크톱을 사용하는 것과 같은 환경을 제공하는 서비스"를 의미하였다. 
    • 최근 Web OS는 " 웹 브라우저를 기반으로 동작하는 가상의 운영체제"의 개념으로 진화하였다. 사용자는 별도의 OS 설치과정 없이 경량화된 초소 크기의 커널 위에서 동작하는 웹 브라우저를 통해 서비스 제공자 웹 사이트에 접속하여 다양한 서비스를 이용하는 형태이다.
    • 기존의 OS가 다양한 하드웨어를 구성하고, 기기간의 호환성을 위해 부팅 시 불필요한 프로세스를 처리하는 반면에 Web OS는 이러한 요소들을 배제하여 빠른 부팅 시간을 보장하는 방식이다.
    • 또한 인터넷 자원을 자신의 하드디스크에 저장하여 사용하는 것처럼 프로그램과 데이터를 관리하고 이용할 수 있도록 하고 있다. 이러한 특성으로 인해 개인용 웹 기반 데스크톱이라는 표현을 쓰기도 한다. 대표적인 OS로는 구글의 크롬OS을 들 수 있다.

    9. 리눅스의 특징

    • 다중 사용자 및 다중 처리 시스템
      • 하나의 시스템에 다수의 사용자들이 동시에 접속하여 사용할 수 있고, 각 접속자들은 다수의 응용 프로그램을 실행할 수 있다.
    • 완전히 공개된 시스템
      • 운영체제의 핵심인 커널 뿐만 아니라, 같이 내장되어 배포되는 대부분의 응용프로그램이 소스가 공개된 프로그램이다.
    • 뛰어난 네트워크 환경
      • 이더넷(Ethernet), SLIP, PPP, ATM 등의 다양한 네트워크 환경을 지원하며, TCP/IP, IPX, AppleTalk 등 대부분의 네트워크 프로토콜을 지원한다.
    • 다양한 파일 시스템 지원
      • 리눅스 고유의 파일 시스템인 ext2, ext3, ext4등을 사용한다.
      • FAT, FAT32, NTFS, ISO 9660 등과 같은 다양한 파일 시스템을 지원
    • 뛰어난 이식성
      • 리눅스는 약간의 어셈블리와 대부분의 C언어로 작성되어 있어 C를 컴파일 할 수 있으면 어셈블리 부분만 새롭게 만들고 C부분을 다시 컴파일함으로써 쉽게 다른 시스템에 이식할 수 있다.
    • 유연성과 확장성
      • 리눅스는 상업용 유닉스(UNIX)의 모든 특성을 가지고 있으며, 유닉스의 표준인 포직스(POSIX)를 준수하고 있다. 따라서 공개용 유닉스 프로그램들은 큰 문제 없이 컴파일해서 사용할 수 있고, 커널, 장치 드라이버, 라이브러리, 응용 프로그램, 개발도구 등 리눅스의 원시코드를 쉽게 접할 수 있다.
    • 뛰어난 안정성과 보안성
      • 리눅스는 커널 소스가 공개되어 있어 Windows와 같은 폐쇄형 운영체제에 비해 보안상의 취약점이 쉽게 노출된 가능성은 있으나, 공개용 소프트웨어를 지지하는 수많은 전문 프로그래머들이 상용 운영체제보다 빠르게 오류 수정과 보안 관련된 패치를 발표하고 있다.
    • 우수한 가격대 성능비
      • 기업환경에서 서버로 사용되는 유닉스를 x86 시스템에 최적화시켜 효율적인 방식으로 설계하였기 때문에 PC급 서버에서도 엔터프라이즈 급의 성능을 발휘할 수 있다.
    • 다양한 응용 프로그램의 제공
      • 리눅스에는 운영체제의 핵심인 커널을 비롯하여 다양한 응용 프로그램을 제공한다. 셸과 기본 명령어, X Window 시스템, 편집기(vi, emacs 등), 서버 및 클라이언트 프로그램, 개발도구(C, C++, Java, Python등) 등을 포함하여 배포하고 있다.
    • 다양한 배포판의 존재 
      • 리눅스는 서버, 개발용, PC용 등 다양한 목적으로 사용 가능하고, 이에 따른 다양한 배포판이 존재한다. 국외에는 레드햇, 데비안, 우분투, 수세 등이 있고, 국내에는 한컴리눅스, SULinux등이 있다.

    10. 리눅스의 단점

    • 기술지원의 부족
      • 리눅스에서 사용되는 대부분의 응용 프로그램들이 비상업적인 제품이다. 따라서 전 세계에 흩어져 있는 개발자들이 일일이 기술지원을 하는 것이 불가능하다.
    • 특정 하드웨어에 대한 지원이 부족
      • 리눅스가 다른 운영체제에 비해 이식성, 확장성 등이 뛰어나지만, 여전히 특정한 하드웨어에 설치가 어렵고 모든 플랫폼에서 작동하지는 않는다.
    • 사용자의 숙련된 기술이 요구
      • 현재 리눅스에서는 X-Window 기반환경이 보편화되면서 초기 텍스트 기반의 명령어를 입력하는 환경에 비해 쉬워졌지만, 아직도 중요한 설정은 명령어를 입력하거나 관련 환경 설정 파일을 편집기를 사용해서 수정해야 한다.

      11. 리눅스의 기술적인 특징

      • 계층적인 파일 구조
        • 리눅스의 파일 구조는 /root를 기준으로 그 하위 디렉토리에 usr, var, bin 등이 존재하는 계층적 파일 구조로 이루어져 있고 트리구조라고도 한다.
      • 장치의 파일화
        • 리눅스는 하드웨어적 자원들이 모두 파일화하여 사용한다. 따라서 특정 하드웨어에게 명령을 수행하려면 해당하는 장치 파일에 명령을 내리면 된다.
      • 가상 메모리 사용
        • 가상메모리란 하드디스크의 일부를 메모리처럼 사용되는 것을 말한다. 프로그램을 실행시키면 작업공간에 해당하는 메모리로 공간이 이동되는 데, 메모리의 공간이 작으면 큰 프로그램은 실행시킬 수 없게 된다. 이러한 문제점을 극복하기 위해 사용되는 것이 가상 메모리이고, 리눅스에서는 이 영역을 스왑(SWAP)이라고 부른다.
      • 동적 라이브러리 지원
        • 프로그램에서 특정한 기능을 하는 루틴들을 모아 놓은 것을 라이브러리라하여, 프로그램 개발 시 라이브러리 중에서 필요한 루틴들을 받아서 링크(Link)시킨다. 이러한 경우 같은 기능을 하는 루틴들이 실행 실행 파일마다 들어가므로 실행파일의 크기도 커지고 메모리도 남게된다. 그래서 같은 루틴들을 공유하는 것이 공유 라이브러리라 한다.
      • 가상 콘솔
        • 가상 콘솔은 하나의 모니터를 장착한 시스템에 여러 개의 가상 화면을 제공해서 사용하게 하는 기능이다. 리눅스는 기본적으로 6개의 가상 콘솔을 제공한다.
        • [CTRL]+[ALT]+[F1]을 기본 시작 창으로 해서 [CTRL]+[ALT]+[F6]까지 총 6개의 텍스트 기반의 로그인 창을 제공한다.
        • X-Window 사용 시에는 [CTRL]+[ALT]+[F7]을 통하여 표시된다.
      • 파이프
        • 프로세스의 통신을 위해 도입한 것으로 어떤 프로세스의 표준 출력이 다른 프로세스의 표준 입력으로 쓰이게 하는 것을 말한다. 리눅스에서 파이프는 ' | ' 기호를 사용한다.
      • 리다이렉션
        • 리다이렉션은 어떤 프로세스의 입/출력을 표준 입출력이 아닌 다른 입출력으로 변경할 때 사용한다.

      0 댓글