본문 바로가기
IT

[운영체제 OS] 발전과정 · 폐쇄형 IOS · 개방형 안드로이드 · 애플 · 구글 · MS

by 성공의문 2018. 3. 21.

이미지: sheseiro

1. 운영제체(OS)의 필요성과 발전과정

운영체제는 컴퓨터의 역사와 함께 시작되었다고 할 수 있다. 계산을 한다는 점에서는 같아도 주판이나 기계식 계산기라면 별다른 운영체제가 필요없다. 전기를 쓰지 않으며 계산방식 자체가 하나만 존재하기 때문이다. 그러나 컴퓨터는 다르다. 초기 컴퓨터부터 전기 회로는 다양한 계산을 하기 위해 유연한 준비를 하고 있으며 회로를 필요한 계산에 맞춰 정렬하고 입력을 넣으면 출력을 내놓는 다소 복잡한 방식이다.

운영 체제(Operating System)는 이런 복잡한 작동을 하는 컴퓨터를 사용자가 쉽게 다룰 수 있게 해주는 인터페이스이다. 일반적으로 하드웨어와 소프트웨어를 관리하는 소프트웨어 전체를 통합해서 운영체제라고 부른다. 초기 8비트 컴퓨터로 예를 들면 CPU, 메모리, 저장장치를 관리하고 키보드, 모니터 등 외부연결 장치를 제어하기 위한 기본적인 약속이 모두 포함된 소프트웨어가 운영체제이다. 

따라서 사용자는 컴퓨터를 다룰 때마다 난해한 기계어를 직접 쓸 필요가 없어졌다. 일반 언어에 보다 가깝게 약속된 고급 명령어 등으로 컴퓨터를 제어할 뿐만 아니라 같은 운영체제를 쓴 컴퓨터에서는 소프트웨어가 서로 호환되는 이점도 얻을 수 있다.

요즘은 대부분의 전자기기가 기본적으로 컴퓨터와 비슷하게 구성되어 있다. 마이크로프로세서와 메모리, 운영체제에 해당하는 펌웨어로 이뤄진다. 따라서 운영체제는 다양한 형태로 들어 있다. 예를 들어 유무선공유기를 켜도 전원이 들어와 장치를 깨우면 펌웨어에 담긴 운영체제가 주기판에 있는 CPU를 거쳐 메모리에 담겨 전체 네트워크 신호를 제어한다. 펌웨어는 네트워크 등을 통해 업그레이드 할 수 있으며 기능과 보안을 담당한다는 면에서 컴퓨터와 동일하다. 다만 펌웨어는 일반 컴퓨터 운영체제처럼 다양한 기능을 즉석에서 추가하며 작동하지 않으며 엄격하게 정해진 작동만을 한다는 면이 다르다.

운영체제의 구조는 보통 하드웨어 위에 기초 입출력을 맡은 커널(kernel)이 올라가고 그 위에 사용자 인터페이스를 담당하는 셸(shell)이 결합되는 형태이다. 여기에 기본 애플리케이션(앱)이 포함되기도 하며 사용자가 앱을 이후 추가해서 활용성을 높인다. 사용자는 기본적으로 커널에 바로 접근하지 못하며 셸을 통해 앱을 실행하는 것으로 운영체제를 다룬다. 약간 더 자세하게 말하면 커널은 드라이버를 이용해서 CPU, 메모리, 그래픽칩 같은 하드웨어를 제어한다. 또한 앱으로 대표되는 응용프로그램이 다른 하드웨어 위에도 같은 작동을 하도록 호환성을 보장하기 위해 API를 제공한다. 

그런데 이런 운영체제를 다루는 방법이 기술발전에 따라 달라졌다 극초기에는 멍을 뚫은 종이카드 등을 이용했지만 모니터와 키보드가 보급된 후에는 커맨드라인 명령어 방식을 많이 썼다. DOS처럼 키보드로 간단한 알파벳을 입력해 작동시키는 방식이다.

이 방식은 매우 간결하고 시스템 자원을 거의 소모하지 않는다는 이점이 있으며 정밀한 제어도 가능하다는 장점이 있다. 그래서 지금도 각종 영화 등에서 해커들이 즐겨쓰는 조작방법으로 표현되고 있다.

그렇지만 전문가가 아닌 일반인에게는 배우기도 어렵고 시간도 많이 걸리는 어려운 방법이었다. 이후 맥과 윈도우로 대표되는 그래픽유저인터페이스(GUI)가 보급되면서 범용 운영체제 안에는 쉬운 조작을 위한 인터페이스가 필수적으로 들어가기 시작했다. 마우스와 아이콘을 이용한 아주 편한 GUI까지는 아니더라도 커서 키와 스페이스바 등 몇가지 키만 이용해 제어하는 풀다운 메뉴 방식까지는 거의 모든 운영체제가 제공하는 기본적인 셸이 되었다.

운영체제가 일반화되면서 경쟁이 시작되었다. 초기에는 하드웨어 회사가 운영체제도 같이 만들거나 전용 운영체제를 지정해서 기본 탑재했기에 경쟁이 없었다. 하지만 나중에는 같은 하드웨어에 로딩과정을 거쳐 여러가지 운영체제를 쓸 수 있게 되었다. 특정 하드웨어를 벗어나 범용으로 쓸 수 있는 운영체제가 나오며 사용자에게 선택권이 생긴 것이다. 8비트 컴퓨터의 대명사인 애플2는 애플에서 제공하는 기본 운영체제 외에도 CP/M을 쓸 수 있었다. IBM 호환 PC 역시 MS-DOS 말고도 유닉스 계열, CP/M 계열을 사용하는 것이 가능했다. 이렇게 되자 하드웨어와 별도로 더 빠르고 편리하고 안정적인 운영체제를 만들어 경쟁에서 이기려는 움직임이 가속되었다.

PC가 대중화되며 운영체제 시장은 치열한 경쟁을 치렀다. 일반 소비자 시장에서는 MSDOS와 윈도우가 절대다수를 점유했고 맥 운영체제가 경쟁 운영체제로 남았다. 서버 시장에서는 중대형 컴퓨터에서 기반을 다진 유닉스계열(리눅스 포함)이 점유율 1위를 차지했다. 여기서 운영체제는 근본적인 사상에 따라 개방형 운영체제와 폐쇄형 운영체제라는 계열로 나뉘게 되었다. 제작회사에 따른 차이점만 아니라 이런 특성에 따라 장단점이 크게 생기게 되었다.


2. 폐쇄형 vs 개방형, 누가 더 우수한가?

애플 아이폰이 개척한 스마트폰 시대를 맞아 운영체제 시장은 다시 큰 변화를 맞았다.

스마트폰은 PC보다 화면크기가 작고 성능도 떨어지며 저장용량도 작다. 또한 키보드와 마우스라는 입력장치에서 크게 벗어나지 못한 PC 운영체제와 달리 터치스크린을 주로 쓴다. 특히 멀티터치 입력 방식을 쓰는 운영체제가 크게 각광받았다. 가지고 다니며 편리하게 쓸 수 있다는 점에 열광한 사용자에 의해 PC가 밀려나고 커뮤니케이션과 콘텐츠 소비 등에서 모바일 기기가 떠올랐다.

이 과정에서 운영체제는 누가 더 모바일 기기에 최적화되면서도 우수한 성능과 다양한 기능을 제공할 수 있는가를 놓고 경쟁하기 시작했다. 초기에는 애플 iOS가 독주했지만 구글 안드로이드, MS 윈도모바일, 웹OS, 바다(웨이브) 등이 경쟁에 참여했다. 이들 대부분은 스마트폰 시장이 성숙기를 맞으며 경쟁에서 도태되었다. 현재는 2017년 1분기 기준으로 스마트폰 OS 점유율에서 안드로이드 86%, iOS 14%, 윈도우 0.1% 정도의 점유을 나타내고 있다.

문제는 모바일 시대를 맞아서도 운영체제에서 근본적인 대립양식인 개방형과 폐쇄형의 갈등이 더 심해졌다는 것이다. 단순히 어떤 스마트폰 제품이 채택한 운영체제가 더 좋은가? 라는 질문을 넘어서 미래형 운영체제로서는 어떤 방식이 더 우수하며 발전에 적합한지에 대한 의문이 제기되었기 때문이다.

폐쇄형은 8비트 PC 때부터 애플이 고수하던 운영체제 전략이다. 자사 하드웨어에 최적화된 운영체제를 만들어 외부업체에 사용을 허락하지 않는 형태이다. 예를 들어 맥 운영체제는 오로지 맥 컴퓨터에서만 돌아가며 iOS는 아이폰에서만 실행된다. 다른 하드웨어를 지원하지 않기에 신경쓸 필요가 없다. 또한 소스코드를 공개하지 않고 운영체제 안에서 필요한 커널이나 UI등 핵심요소도 자사에서만 제작한다. 제한된 하드웨어에서 최고 수준의 성능을 뽑아낼 수 있고, 안정성이 높고, 초기 보안성이 뛰어나다는 장점이 있다. 반면에 발전이 늦어질 수 있고 대중화 이후 점유율이 높아지면 그에 따라 보안성이 떨어질 수 있다는 단점이 있다.

개방형은 반대로 소스가 공개되어 있으며 여러 하드웨어에 탑재 가능하다. PC에서는 리눅스가 대표적이며 MS 윈도우 역시 다양한 하드웨어에 포팅하고 일부 소스를 공개하는 등 제한적인 개방성을 가지고 있다. 모바일에서는 구글의 개방형 OS인 안드로이드가 대표적으로 삼성, LG, 소니, 화웨이 등 거의 모든 모바일 업체들이 안드로이드를 주력제품에 탑재했다. 이 운영체제는 성능 발전이 빠르고 커널 수준에서의 안정성이 뛰어난 편이며 다양한 앱이 나올 수 있는 장점이 있다. 다만 파편화로 인해 호환성이 저하되기 쉽고 운영체제 만으로는 적절한 수익모델을 찾기 어렵다.

현재 애플은 사용자의 만족도를 바탕으로 운영체제의 방향을 선도하고 있다. 따라서 미래형 운영체제를 꼽을 때 가장 먼저 떠올릴 수 있다. 그렇지만 철저히 자사 제품 위주로만 지원하는 기능과 최근 보도된 치명적인 보안결함, 너무 빠른 버전업으로 인한 안정성 저하 등이 겹치며 폐쇄형 운영체제의 한계를 드러내고 있다. 

팀쿡 체제 이후 애플이 하드웨어와 소프트웨어 양쪽에 걸쳐 혁신성이 낮아지는 것도 문제점이다. 다만 하드웨어와 소프트웨어가 잘 결합된 상태로 나오기에 운영체제의 호환성을 비롯한 기본 작동성이 매우 좋다.

안드로이드는 개방된 리눅스 커널을 바탕으로 구글이 운영체제의 핵심을 책임지고 있다. 다만 구글은 특정 하드웨어에 맞춰서 운영체제를 만들지 않는다. 레퍼런스 폰이란 표준이 있긴 하지만 소스가 공개된 안드로이드는 각 하드웨어 회사가 자유롭게 수정해서 기능을 추가할 수 있다. 따라서 이론적으로는 독자적으로 보안을 강화할 수도 있다. 

개방형은 가장 큰 이점으로 최신기술을 즉시 적용시켜 내놓을 수도 있다. 하드웨어에 따라서 운영체제의 크기를 줄이고 기능을 삭제한 변종도 만들 수 있기에 사물인터넷까지도 아우른 미래형 운영체제에 근접해 있다. 그렇지만 특정 하드웨어의 성능을 최대한 뽑아내기 어렵고 각 회사의 기술력에 따라 사용자경험의 차이가 크다는 단점도 있다.

때문에 폐쇄형과 개방형은 아직 우열이 드러나지 않았다. 다만 현재까지의 보급률이나 여러 상황으로 봐서는 개방형이 조금 유리하다고 예측할 수 있다.

-출처: Digieco