본문 바로가기
IT

운영체제의 종류

by Redking

운영체제(Operating System)는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임입니다. 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공해 줍니다.

운영체제는 다양한 종류가 있는데 종류별로 운영체제의 특징에 대해 알아보도록 하겠습니다.

 

윈도우 운영체제

윈도우는 마이크로소프트사가 개발한 운영체제로 애플이 개인용 컴퓨터에 처음으로 도입한 그래픽 사용자 인터페이스(GUI) 운영 체제인 맥 IOS에 대항하여, 당시 널리 쓰이던 MS-DOS에서 멀티태스킹과 GUI 환경을 제공하기 위한 응용 프로그램으로 처음 출시되었습니다. 현재 대부분의 개인용 컴퓨터에서 쓰고 있으며, 서버용 운영체제로 점차 영역을 넓혀 나가고 있습니다. 윈도우 운영 체제의 경우 큰 시장 점유율을 차지하고 있는 까닭에 일반 사용자들에게 매우 익숙할 뿐 아니라 호환되는 유명한 응용 프로그램이 많다는 장점을 지니고 있지만, 그만큼 보안 문제에서는 취약한 부분이 많은 운영 체제로 인식되기도 합니다. 하지만 보안에서 취약한 부분이 다른 운영체제와 차이 날 정도로 독보적으로 많은 것은 아니기에 오늘날에 PC에서 가장 많이 사용하는 운영체제로 자리매김하고 있습니다. 주요 특징으로는 그래픽 기반(GUI), 멀티 태스킹, 메시지 구동 시스템, 장치 독립적, 일관성, 리소스 분리가 있다. 이중 가장 중요한 개념은 메시지 구동 시스템인데, 멀티 태스킹 환경에서는 프로그램 하나가 시스템의 자원을 독점할 수 없으며 키보드나 마우스 등의 입력 장치도 물론 독점의 대상이 아니다. 그래서 응용 프로그램은 입력 장치로부터 키나 마우스의 입력을 직접 읽을 수 없으며 운영체제가 대신 입력을 받아 전달해 주는 방식을 사용한다.

이때 입력 장치로부터의 입력 신호를 메시지라 하며 응용 프로그램은 메시지를 받아 동작한다.

이런 동작 방식을 메시지 구동 시스템  또는 이벤트 드리븐 시스템 이라고 한다. 모든 프로그램은 운영체제로부터 메시지를 받아 동작하며 프로그램 코드는 메시지를 받았을 때 어떤 처리를 할 것인가를 기술하는 형식이다. 프로그램의 실행순서는 프로그래머가 미리 의도한 대로가 아니라 실행중에 사용자가 프로그램을 조작하는 순서, 즉 발생하는 메시지의 순서를 따른다.

 

리눅스 운영체제

리눅스는 유닉스 기반 개인 컴퓨터용 공개 운영체제이다. 이는 소스 코드가 공개되어 있는 대표적인 오픈소스 소프트웨어이다. 리눅스는 오픈소스 프로그램이며 세계적으로 약 500만 명이 넘는 개발자 커뮤니티가 형성할 수 있었다. ‘오픈소스’가 리눅스의 운영 방침이기 때문에 수많은 개발자가 지속적으로 리눅스의 유지 보수에 참여하고 있으며 꾸준한 업그레이드가 이루어지고 있다.

리눅스는 다른 운영체제보다 보안이 안전하다는 장점이 있다. 배포자가 분산되어 있다는 특성과 컴퓨터에 대한 지식이 깊은 사람들이 주로 사용하는 운영체제라는 특성 때문이다. 이 때문에 악성코드는 주로 다른 운영체제를 주로 겨냥한다. 

그러나 리눅스의 보안을 무조건적으로 믿어서도 안 된다. 다른 운영체제보다 안전성이 높다고 해서 해킹 확률이 전혀 없다는 말은 아니다. 따라서 의심이 드는 프로그램은 되도록 피하고, 믿을 수 있는 저장소에서만 프로그램을 받도록 해야 한다. 

그래픽과 관련된 것에 강한 윈도와 달리 리눅스는 프로그래밍을 할 때 유용하다. 특히 리눅스에서 데스크톱 및 랩톱 용도로 많이 사용하는 '우분투(Ubuntu)'도 주목받고 있다. 우분투는 C언어를 사용할 때, 기본적인 코드만 입력하면 되는 비주얼 스튜디오와는 달리 명령어를 숙지한 다음 코딩을 해야 한다는 번거로움이 있다. 그러나 익숙해진다면, 명령어들을 사용하여 더 간편하게 코딩을 할 수 있다.

 

유닉스 운영체제

1969년 Bell 연구소에서 개발한 소프트웨어 개발용의 운영체제(OS, Operating System).초기의 유닉스 운영체제는 어셈블리(Assembly) 언어로 작성되었으나, 같은 연구소의 Dennis Ritchie가 C 언어를 개발한 뒤, 이 언어를 이용하여 유닉스를 다시 만들었다. 그리하여 1973년에 다른 운영체제와는 달리 유닉스는 C언어가 90% 이상이고 나머지가 어셈블리 언어로 작성되어, 고급언어로 작성된 최초의 운영체제가 되었다. 유닉스는 다른 컴퓨터의 시스템 프로그램과는 달리 일반인에게 공개함으로써 미국의 각 대학과 여러 기업체로 널리 퍼지게 되었다. 이렇게 유닉스가 널리 퍼지게 되면서 유닉스에 많은 기능들이 추가되었다. 그리하여 1978년에 UNIX V6(Version 6)라는 이름으로 일반인에게 공개되면서 IBM 370 컴퓨터에 이식하여 시험하였고 다른 많은 회사에서도 자사의 중대형 컴퓨터에 유닉스를 이식하기 시작하였다.유닉스는 크게 2개의 계보로 발전하였는데, AT&T의 상업용 유닉스로서 SYSTEMV 계열과 학문적 연구 목적인 버클리 대학의 BSD(Berkeley Software Distribution) 계열로 나뉘어 발전하였다. 요즘은 두 가지 계열의 장점들을 결합하여 통합된 형태로 각 회사의 유닉스 운영체제로 사용하고 있다. 유닉스의 주요 특징으로는 대화식 운영체제, 다중 작업 기능, 다중 사용자 기능, 이식성, 계층적 트리 구조 파일 시스템, 개발 도구, 통신, 가상 메모리 기능이 있습니다. 유닉스의 구조는 커널, 쉘, 유틸리티, 응용 프로그램으로 나뉘고 각각에 대해 설명하자면 커널은 유닉스 시스템이 부팅될 때 가장 먼저 읽혀지는 운영체제의 핵심 부분. 메모리 관리, 입출력 장치 관리 등 하드웨어와 관련된 작업을 수행하는 것으로 사용자들은 커널에 접근할 수 없고, 쉘은 명령을 해석하는 부분으로서 사용자와 유닉스 시스템을 연결시켜 준다. 즉, 사용자가 명령을 입력하면 이를 해석하여 커널이 이해할 수 있는 명령으로 번역하여 커널에게 넘겨준다. 유틸리티와 응용 프로그램은 유닉스는 많은 프로그래밍 언어를 지원하고, 파일 작성, 파일 출력, 파일 내용을 선택적으로 변경시키는 기능 등과 같은 여러 가지 유틸리티와 다른 컴퓨터와 통신을 가능하게 해주는 여러 가지 응용 프로그램으로 구성됩니다. 

 

안드로이드 운영체제

안드로이드는 구글에서 만든 스마트폰용 운영체제입니다. 현재 가장 많이 사용되는 스마트폰 운영체제중 하나이고 운영체제와 미들웨어, 사용자 인터페이스, 어플리케이션, MMS 서비스 등을 하나로 묶어 서비스를 제공하며 다양한 어플리케이션을 만들어 설치하면 실행될 수 있도록 구성된 어플리케이션 플랫폼이라고도 볼 수 있습니다. 그리고 리눅스와 같이 ‘오픈 소스’ 운영체제 이므로 개발자 커뮤니티가 잘 형성되어 있기 때문에 접근이 용이하고 꾸준한 개선이 되고 있습니다. 다만 

많은 부분이 오픈되어 있다는 점은 개발자의 관점에서 장점이지만 단점도 있습니다.

바로 기기의 파편화 문제입니다.

스마트폰 제조사들이 스마트폰을 제작할 때 구글에서 만든 안드로이드 플랫폼을 그대로 탑재하는 것이 아니라,

수정하거나 추가해서 제작하기때문입니다

그렇기 때문에 표준API로 개발된 코드가 특정 스마트폰에서 수행되지 않거나 에러가 발생할 수 있다는 단점이있습니다. 안드로이드는 많은 부분을 개발자가 구현할 수 있는데 대표적인 특징은 멀티태스킹(multitasking)이 있습니다. 안드로이드에서는 여러 프로세스가 동작할 수 있고, 어떤 프로세스가 화면을 점유하여 사용자가 이용하고 있어도 앱은 백그라운드에서 동작하여 계속 업무를 수행할 수 있습니다. 백그라운드에서 너무 많은 앱이 수행되면 배터리 소비, 네티워크 트래픽 증가, 메모리 부족등 여러가지 현상이 발생합니다. 이전에는 ios는 멀티 태스킹을 지원 안해서 안드로이드만의 장점 이었지만 ios 14부터는 지원이 가능하게 되어 안드로이드만의 장점이 하나 사라졌습니다. 

 

iOS 운영체제

iOS는 미국의 컴퓨터 기업인 애플사에서 자사의 모바일 기기인 아이팟,아이폰,아이패드에서 작동하기 위한 모바일 운영체제를 목적으로 애플의 컴퓨터용 운영체제인 맥 OS X를 응용해 만든 운영체제입니다. 안드로이드에 이어 스마트폰 OS시장 점유율 2위를 기록하고 있으며, 스마트 시대를 연 혁명적 OS로 여전히 높은 평가를 받고 있는 OS입니다. iOS도 여느 OS들과 다름없는 방식으로 작동됩니다. 하지만 안드로이드와는 분명 다른 방식입니다.우선 가장 아래에 있는 Core OS. 가장 핵심이 되는 부분으로 데이터를 처리한다던지, 파일을 규칙에 따라 저장한다던지, 네트워크에 연결한다던지 하는 가장 기본적인 기능을 수행합니다. 안드로이드의 리눅스 커널과 비슷한 부분입니다. 그리고 Core Services라는 계층이 존재합니다. 이 부분은 Core OS에서 제공하지 않는 부수적 기능들을 포함하고 있는데 위치정보를 확인한다던지, 주소록에서 주소를 불러온다던지, 센서들의 상태를 확인한다던지 하는 부분들입니다. 개발자들이 만드는 애플리케이션에 필요한 기능은 모두 이 서비스 부분에 담기는데, 이들 통해 OS단까지 앱이 정보를 교환하는 일 자체가 존재할 수 없게 됩니다. 이때문에 iOS는 보안상에서 많은 이점을 보게 된 것이라 할 수 있겠습니다.

그리고 Media 부분. 그래픽과 멀티미디어를 구현하는 부분입니다. 화려한 iOS 특유의 화면전환과 기본적인 에니메이션은 물론 음악, 팟케스트,비디오등을 재생하는 플레이어도 여기에 속합니다. 마지막으로 Cocoa Touch부분. 이 부분은 iOS의 GUI(그레픽 유저 인터페이스)부분이 되겠습니다. 우리가 눈으로 보는 거의 모든 부분이 구현되는 단입니다. 그런데,안드로이드에는 있지만 iOS에는 없는 부분이 있습니다. 바로 '가상 머신'입니다. 처음부터 특정 기기만을 타깃으로 개발하여 범용성은 없지만 이 부분을 거치지 않기 때문에 안드로이드에 비해 적은 성능으로도 충분히 구동이 가능하고, 적은 전력을 소모하고 적은 시스템 자원을 잡고 구동이 되며 ,상당히 가볍다는 느낌을 이용자가 받게 됩니다. 아이폰 제품의 지원이 상대적으로 오래가는 것도 이처럼 범용성을 고려하지 않고 만들어도 된다는 iOS특유의 특징 때문입니다.

 

'IT' 카테고리의 다른 글

배달앱  (0) 2022.08.13
디지털 IC  (0) 2022.08.13
Instruction Pipeline  (0) 2022.08.13
컴파일러  (0) 2022.08.13
OSI 7계층 모델  (0) 2022.08.13

댓글