EMBEDDED BASICS

[테크월드=정환용 기자] 2016년 기준 국내 컴퓨터 보급률은 85.7%로, 10명 중 8명 이상이 컴퓨터를 사용하고 있다. 같은 기간 스마트폰의 보급률은 PC보다 훨씬 빠른 속도로 성장하며 88.5%를 기록했다. 모바일 기기의 빠른 확산으로 PC의 보급률은 조금씩 떨어지고 있고, 데스크톱을 대체하는 노트북의 보급률 역시 2014년 처음 30%를 넘은 이후 계속해서 하락세다. 스마트폰과 태블릿PC가 점점 컴퓨터의 자리를 넘겨받고 있는 추세다.

데스크톱이나 노트북, 스마트폰 등의 전자기기를 ‘컴퓨터’로 통칭할 때, 어떤 컴퓨터든 공통으로 적용되는 것이 있다. 중요 하드웨어와 함께 없어서는 안 될 소프트웨어, 운영체제(Operating System)다. 아무리 좋은 프로세서와 부품들이 조합돼도 운영체제가 없으면 별무소용이다. 운영체제는 제조사가 만든 컴퓨터의 뛰어난 성능을 100%에 가깝게 사용자에게 전달해 주는 매개체다.

CPU, 메인보드, 메모리, 그래픽카드, 저장장치 등 컴퓨터를 구성하는 요소들은 그 자체만으로는 아무런 일을 하지 못한다. 운영체제를 통해 각 하드웨어가 어떤 작업을 수행할지 명령을 내려야 비로소 우리가 워드프로세서로 일도 하고 월드 오브 워크래프트도 즐길 수 있는 것이다. 운영체제가 어떤 구조로 동작하는지 알아보자.

 

운영체제의 역할, 말 그대로 ‘운영’
사실 컴퓨터가 아닌 기기에도 필요한 경우 운영체제가 적용된다. 추억의 아이템이 된 MP3 플레이어의 경우, 2000년대 초반에는 음악을 재생하는 것이 전부였지만 스마트폰이 나오기 전에는 자체 운영체제를 가진 제품이 많았다. 애플의 아이팟이 그랬고, 코원의 MP3 플레이어 대부분이 그랬다. 전원을 켜면 플레이어 모델명이나 브랜드 로고가 뜨고, 제품에 맞는 인터페이스가 실행돼 그 자체로 제품의 특징이 되기도 했다.

이처럼 기기의 작동을 처음부터 끝까지 책임지는 것이 소프트웨어인 운영체제의 역할이다. 전원이 공급되는 것을 인식하는 순간부터 전원을 끄는 명령을 받아 전원 공급을 차단하는 것까지 운영체제가 해야 할 일이다. 이것이 없다면 구형 제품들처럼 아날로그 방식으로 전원을 직접 넣거나 차단해야 하고, 기기 운용을 위한 명령도 기계식으로 하나의 입력으로는 하나의 기능밖에 수행할 수 없다. 거의 대부분 전자식으로 바뀐 지금의 전자기기들도 볼륨, 전원 버튼 등이 이와 비슷한 형태를 유지하고 있다.

개인용 컴퓨터는 키보드와 마우스 등의 전용 입력장치가 있기 때문에, 사용자가 운영체제를 사용하기 수월했다. 휴대용 전자기기를 모바일 기기로 통칭할 때, 앞서 언급한 MP3 플레이어에 다양한 기능을 적용하기 어려웠던 이유 중 하나도 입력 방식의 차이 때문이었다. 2000년대 초 터치 디스플레이가 적용된 휴대폰이 보급되며 모바일 기기에 다양한 부가기능이 수록될 수 있게 됐고, 비로소 휴대폰에도 운영체제가 삽입되기 시작했다. 모바일 기기의 디스플레이 터치 방식이 감압식에서 정전식으로 발전하며 정확도가 높아졌고, 화면 전체를 더 세밀하게 활용할 수 있게 되면서 활용도가 더욱 높아졌다. 컴퓨터 한 대를 하나의 기업으로 대치하고 사용자를 대표이사라 칭하면, 각 하드웨어가 부서장, 운영체제는 총괄부사장 정도로 볼 수 있다.

 

전원 스위치부터 밤샘 게임까지
전 세계적으로 가장 많이 사용되고 있는 운영체제는, 아직까지는 구글 안드로이드보다 마이크로소프트 윈도우가 많다. 이 비중은 스마트폰의 보급률 증가와 PC의 비중 감소로 뒤바뀔 수도 있지만, PC와 모바일 기기를 함께 사용하는 경우가 많기 때문에 한동안은 윈도우가 현재의 왕좌를 지킬 것이다.

PC를 켜고 전원공급장치에서 하드웨어에 필요한 전력을 공급해 주면, CPU가 프로그램 카운터(Program Counter)를 초기화시키며 작동을 시작한다. 눈을 뜬 CPU가 가장 먼저 수행하는 작업은, 컴퓨터를 구성하는 하드웨어의 이상 유무를 점검(Power On Self Test, POST)하는 일이다.

사용자는 모니터에 뜬 메인보드 메이커의 로고를 바라보게 되는데, CPU는 메인보드 로고가 뜨기 전에 이미 시스템 버스, 시스템 시계, 비디오 메모리 등의 테스트를 마친다. 이 과정은 꺼져 있던 PC가 아니라 작동 중인 PC를 재부팅하는 경우에는 건너뛰기도 한다. 만약 전원을 켰는데 모니터에 로고가 뜨지 않고 멈춰 있다면 위 과정 중에 문제가 생긴 것이다.

로고가 뜬 뒤에는 RAM, 입력장치, 각종 드라이브를 테스트한다. 지금은 대부분 메인보드로고를 보이게 설정해두는데, 예전에는 부팅을 시작하면 RAM의 용량이 카운트업되는 모습을 봤을 것이다. 이는 CPU가 RAM을 테스트하는 과정으로, 용량만큼 숫자를 세 이상이 없는지 확인하는 과정이다. 현재 작동 중인 PC의 구성이 직전의 동작 상태와 같은지 체크하고, 만약 C: 를 비롯해 구성이 달라졌다면 운영체제가 설치된 드라이브를 찾아 다시 CMOS를 구성한다. PC를 끈 상태에서 HDD를 추가로 장착하거나 SATA 포트의 위치를 교체했다면 이를 인식하는 데 좀 더 시간이 걸린다.

이 과정을 마치면 비로소 CPU는 컴퓨터의 제어 권한을 저장장치에 기록돼 있는 운영체제로 넘겨준다. 제어권을 넘겨받은 운영체제의 부팅 프로그램은 저장장치의 부팅 영역에 기록된 정보를 불러오고, 운영체제를 구동하기 위한 각종 예하 프로그램들을 실행한다. 작업 관리자를 실행해 백그라운드 프로세스를 보면, 100개가 넘는 백그라운드 프로그램과 윈도우 프로세스가 돌아가고 있는 걸 볼 수 있다. 현재 사용 중인 프로그램을 비롯해 운영체제가 제 역할을 하기 위한 요소들이 실행되고 있는 것이다. 모니터에 화면을 띄우기 위해 비디오 드라이버가 실행돼야 하고, 소리를 출력하기 위한 사운드 드라이버, 인터넷 연결을 위한 네트워크 드라이버, 보안을 위한 방화벽 등 다양한 프로그램들이 실시간으로 구동되고 있다.

부팅에 필요한 프로그램의 로드가 완료되면, 개인화 로그인 화면을 거쳐 비로소 익숙한 GUI(Graphic User Interface)가 나타난다. 사용자가 컴퓨터를 사용할 준비가 됐다는 뜻이다. 화면이 구동되고 나서도 필수 실행 프로그램이 계속 구동되는데, 필요 메모리가 높은(속칭 ‘무거운’) 프로그램의 경우 운영체제 구동이 완료된 뒤에도 필수 프로세싱을 계속한다. 그래도 사용자가 비디오 플레이어를 실행해 못 다 본 예능 프로그램을 재생하는 작업에는 무리가 없다.

여기까지가 운영체제가 일을 시작하는 과정이다. PC에 전원이 들어와 있는 동안 운영체제는 끊임없이 하드웨어와 소통하며 명령을 받아들이고 수행한다. 백신 프로그램의 정기 검사를 예약한 시간이 되면 검사 프로그램을 구동하고, 시스템에 악성코드나 바이러스의 침입을 감지하면, 운영체제는 재빨리 보안 프로그램에 침입의 차단을 명령해 피해를 방지한다. 대부분의 운영체제는 기본 보안 프로그램을 내장하고 있어, 맥아피나 카스퍼스키 등 별도의 보안 프로그램이 없다 해도 일반적인 감염을 방지할 수 있다.

▲다양한 프로세스 중에서는 은행 보안 프로그램이나 업데이트 드라이버 등 당장 필요치 않은 프로그램도 있다. 하지만 대부분은 현재 사용 중인 컴퓨터가 제 역할을 수행하기 위해 꼭 필요한 프로그램들이다. 이것이 적을수록 PC의 성능 대비 운영 속도가 빨라질 순 있으나, 필수 구동 프로그램을 종료하면 PC가 제 할 일을 못 할 수도 있다. 운영 속도 향상을 위해선 윈도우 시작 시 구동되는 프로그램 중 필수 유틸리티를 제외하고 모두 ‘사용 안 함’으로 해놓으면 된다.

운영체제가 수행하는 중요한 작업 중 하나는 배분이다. 무거운 프로그램의 구동 명령이 떨어지면 CPU와 RAM, 비디오 메모리에서 필요한 만큼 자원을 끌어와 배분한다. 간헐적이 아니라 지속적으로 자원 공급이 필요한 작업이라면 하드웨어에서 감당할 수 있는 선에서 최대한의 자원을 공급해 준다. 동영상 인코딩 프로그램에서 고해상도 영상 파일을 보관용으로 인코딩할 때면, 운영체제는 가용할 수 있는 가상 코어를 최대한 활용하는 것을 허가해 준다.

만약 과도하게 작업이 지속돼 자원 공급에 문제가 생기거나 시스템 오버로드 현상이 예측되면, 프로그램의 구동 성능을 낮추거나 불가피한 경우 시스템 구동을 멈추기도 한다. 고성능 시스템이 요구되는 게임을 즐기다가 컴퓨터가 멈춘 것은, 프로그램 구동에 있어 하드웨어가 감당할 수 있는 한계를 넘어선 것이다. 만약 운영체제가 시스템을 멈추지 않는다면 CPU나 그래픽카드가 과열돼 손상이 발생할 수도 있다. 순간적인 과전압으로 PC가 멈추는 것은 파워서플라이의 안전장치가 가동되는 것이지만, 이런 경우에도 갑작스런 작동 정지로 프로그램이나 데이터에 최대한 손상이 가지 않게끔 하는 것도 운영체제가 하는 일이다.

 

다양한 컴퓨터 운영체제
데스크톱 - 윈도우·리눅스·맥OS

지나가는 사람을 붙잡고 ‘윈도우’에 대해 물으면, 상당수는 마이크로소프트의 운영체제를 얘기할 것이다. 건물의 환기와 조광(調光)을 책임지는 유리창에게는 조금 미안하지만, 그만큼 마이크로소프트(Microsoft, 이하 MS)의 범용 운영체제 ‘윈도우’(Windows)의 완성도와 보급률은 압도적이다. 각각 다른 버전의 윈도우 PC 점유율이 95% 이상이고, 오픈소스 기반의 리눅스와 애플 맥OS의 PC 점유율은 둘을 합쳐도 3%가 못 된다. 사실상 마이크로소프트의 독점이라 봐도 무방하다.

성능의 제한에서 비교적 자유로운 데스크톱 운영체제는 운영 자체에 필요한 자원의 상한선이 높은 편이다. 저렴하고 가벼운 성능부터 고가의 고성능 시스템까지 폭넓게 커버할 수 있다. CPU를 비롯한 PC 하드웨어의 성능은 꾸준히 상향평준화돼 왔고, 현재 최신 버전의 데스크톱 운영체제를 문제 없이 구동할 만한 성능의 하한선은 꽤 낮다. 운영체제 자체의 구동이 시스템에 미치는 영향이 점점 적어지고 있어, 현재의 PC 운영체제의 발전 방향은 기능의 다양화와 사용 환경의 간소화 쪽으로 가고 있다.

 

모바일 - 안드로이드, iOS

국내에서는 90% 이상, 전 세계에서도 40% 이상의 휴대폰이 스마트폰이다. 전화와 메시지를 기본으로 다양한 작업을 수행할 수 있는 스마트폰은 전용 운영체제가 필수다. 다양한 모바일 운영체제가 상용화된 현재, 구글 안드로이드와 애플 iOS가 차지하는 비중이 90%에 가깝다. 노키아의 심비안이나 윈도우 모바일 등 다른 모바일 운영체제도 있지만 점유율 1%가 채 못 돼, 사실상 구글과 애플 두 기업의 운영체제가 약 7:3 정도로 세계 모바일 기기 시장을 차지하고 있다고 봐도 좋을 정도다.

모바일 기기는 아직도 하드웨어의 성능에 대한 명확한 한계 때문에 프로그램의 제한이 큰 편이다. 무조건 작아야 만족스러워했던 추세는 지났지만, 휴대성이 첫 번째 요구조건인 모바일 기기의 특성상 스마트폰의 발전에 대한 한계는 생각보다 경계가 선명한 편이다. 게다가 배터리 기술이 답보상태에 있는 현재로선 성능에 중점을 두기에도 어렵다. 모바일 운영체제의 발전은 늘 그렇듯 휴대용 배터리 기술의 발전에 달려 있다.


임베디드 - 임베디드 OS, RTOS

기기 고유의 기능만을 수행하기 위한 임베디드 OS나 실시간 운영체제(Real Time OS, RTOS)는 범용성이 필요치 않은 전자기기를 위한 운영체제다. PC의 프로그램이나 모바일 기기의 애플리케이션은 같은 종류의 기기에서 공통적으로 구동돼야 하는 범용성이 필수지만, 공장의 기계 관리 솔루션이나 POS(Point Of Sales)는 해당 기기가 구동되는 목적이 상당히 좁고 전문적이기 때문에 범용적일 필요가 없다. 특히 기계 관리 솔루션의 경우 해당 기계에 대한 명령과 관리만 이뤄진다면 복잡한 운영체제의 구성도 필요치 않을 수 있다.

결제 시스템으로 사용되는 최근의 POS기들은 기본적인 금전출납 기능과 더불어 재고, 재무, 잔금 등 다양한 관리를 할 수 있기 때문에 제한적 범용 운영체제를 사용한다. 대부분의 POS기는 윈도우 임베디드 POSReady를 사용하고 있지만, 윈도우 XP나 윈도우 7 등 구 버전을 사용하는 기기도 많아 정확한 집계가 어렵다고 한다. 게다가 POSReady는 2019년 서비스가 종료되기 때문에 POS기 관련업체들은 윈도우 7 등 차선책을 마련해야 할 처지다.

이 기사를 공유합니다
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지