최신 기사 추천 기사 연재 기사 마빡 리스트

2014. 12. 09. 화요일

trexx





 







1. Operating System?


1.png

Apple 2013년 OS X을 공짜로 풀면서 자사의 모든 OS를 무료화하였다.



스마트폰이 IT의 중심에 떠오르자 Android니 iOS니 하는 스마트폰 OS 또한 뉴스거리가 되었다. 스마트폰 플랫폼 전쟁에서 가장 비교되는 것이 OS에 따른 차별성이기 때문이다. 현재 스마트폰의 OS 경쟁은 기간을 거슬러 PC시대에도 있어왔다. 90년대를 수놓았던 Windows, Linux, Macintosh 등...


컴퓨터 운영체제, OS(Operating System)는 근 30년 넘게 IT계에서 중심 역할을 했었고, 지금도 역시 그렇다. 다른 전자제품들과 달리 컴퓨터에만 운영체제가 들어가 있다. 물론 현재 운영체제는 컴퓨터에서만 있지 않고 스마트폰과 스마트 TV에 까지 세력 확산을 하고 있지만 근본적론 컴퓨터만이 운영체제를 가지고 있었다. 스마트폰, 스마트 TV의 경우 엄밀히 말해 컴퓨터의 범주에 들어온 전자기기라고 본다.


지금의 컴퓨터가 컴퓨터 다워진 것도 운영체제의 발전과 맥락을 같이 한다. 1950년대 ENIAC, EDVAC 컴퓨터에서는 운영체제가 존재했을까? 당시는 프로그램 입, 출력을 천공카드(Punch-Card)로 했었다. 이는 한번에 한번씩 연산하는 방식으로 운영체제와는 거리가 멀었다. 이용하는 사람이 운영체제 역할을 했던 것이다.



2.jpg

OS는 교통 시스템과 유사하다.



컴퓨터 운영체제와 현실세계에서 가장 비슷한 체계(SYSTEM)가 교통 시스템이다. 자동차(혹은 마차)가 있기 전까지 길은 상행, 하행 개념이 없이 등산로 처럼 가는 길이 오는 길이고, 오는 길이 가는 길로 사람이 가는 길이 곧 길이 되었다. 그러다 사람 걸음보다 훨씬 빠른 자동차가 나오자 자동차가 다닐 수 있는 길을 위한 교통 체계가 필요하게 된다.


컴퓨터 운영체제는 현실세계에서 도로와 신호등에 해당된다고 볼 수 있다. 정확하지는 않지만 운전자는 컴퓨터 사용자로 자동차는 소프트웨어로 비유 될 수 있다. 다른 점은 멀티태스킹 환경에서 컴퓨터 사용자는 다수의 소프트웨어를 다룬다는 것이다.


DOS의 경우 한번에 1 프로그램이 실행되는 싱글 태스킹(Single Tasking)이지만 GUI 혹은 UNIX의 경우 여러 프로그램을 동시에 실행하게 된다. 교통 체계에서 차선이 여럿 일 경우 차들이 동시에 다닐 수 있는 것과 같다. 또한 차를 멈추고 서게 만드는 교통 신호 역할 처럼 소프트웨어를 구동하고 멈추게하는 역할을 운영체계가 담당한다. 테잎을 삽입하면 플레이되는 비디오 레코더와 다른 점이다. 일반적인 전자제품, 초기의 컴퓨터의 경우 운영하기 위해서는 ‘사람’이 제어를 했다면 컴퓨터에서는 사람이 입력장치로 명령은 하지만 ‘제어’를 운영체계가 하게 되었다. 사람은 명령하고 컴퓨터는 실행한다. 컴퓨터에서 이 일체의 것을 하게 끔 하는 것이 운영체제이다.


컴퓨터에서 파일을 복사하는 경우, DOS 환경에서 ‘Copy’ 명령어를 키보드로 입력하는 것과 GUI 환경에서 마우스로 파일 아이콘을 다른 폴더에 ‘Drag & Drop’하는 행위를 할 수 있게 하는 기반이 바로 운영체제이다. UNIX 처럼 하나의 컴퓨터를 여러 사람이 사용한다든지(Multi-User), GUI 처럼 하나의 컴퓨터에 여러 프로그램을 실행시킨다든지(Multi-Task) 하는 것들이 다 운영체제의 역할이다. 사람은 컴퓨터에 명령을 하지만 여러 사람, 여러 프로그램을 제어할 수 있는 권한은 운영체제에 있는 것이다.



3.png

CP/M Plus 1983 버전





2. OS의 기능

 

 

보통 운영체제의 기본 기능은 아래와 같지만 지금의 스마트 폰 OS에서는 UI 등 보다 광범위하게 OS를 지칭한다.



(1) 일괄(Batch)처리 : 여러 명령을 메모리에 넣고 실행하게 한다. 하나의 작업(프로그램)이 끝나면 자동으로 다음 작업(프로그램)이 하도록 하고 모든 작업이 끝나면 자동으로 중단하는 기능이다.


(2) 멀티프로그래밍: 멀티태스킹과 비슷한 개념이지만 보다 원초적인 방식이다. 프로그램이 연산을 하고 그 결과를 프린터로 출력할 때 연산을 담당하는 CPU는 쉬게 된다. 이때 다른 프로그램이 CPU를 사용하도록 하는 기능이다.


(3) 멀티태스킹: 운영체제 기능의 핵심이라 할 수 있다. 보통 하나의 CPU는 1개의 작업을 1번 수행한다. 우리가 책과 영화를 한번에 볼 수 없는 것 처럼 CPU 또한 두개의 명령을 동시에 한꺼번에 처리하지 못한다. 물론 최근에는 멀티코어가 등장했지만 이를 원활히 사용하기 위해서는 별도의 ‘설계’가 필요하다. 그렇다면 컴퓨터는 어떻게 수십가지 프로그램을 동시에 열어놓고 수행할 수 있을까? 이는 무지 빠르게 프로그램을 돌아가면서 실행하기 때문이다. 1GHz CPU가 있으면 1초에 1,000,000,000 명령을 수행 할 수 있다. 이론적으로 1초안에 수행할 수 명령이 '10의 9승'이 된다. 운영체제는 작업(프로세스)를 자원에 따라 배분하는 스케줄링을 한다.



컴퓨터에서 현대 개념의 운영체제가 도입된 건 1960년대 이후라 할 수 있다. 하나의 독립적인 기능으로써 운영체제는 1960년대 이전까지 명확하지 않았다. IBM 메인프레임 같은 대형 컴퓨터에서는 컴퓨터를 그냥 하나의 기기, 한 덩어리로 생각했다. S/W, H/W, OS의 기능과 역할이 다 있었지만 그것을 기술적으로만 구분했지 컴퓨터와 따로 생각하지 않았다. 최초의 상용 가정용 컴퓨터 APPLE II의 경우도 마찬가지로 초기에는 OS 기능과 BASIC 같은 기본적인 프로그램 기능을 처음부터 아예 보드(ROM)에 심어 놓던가, 혹은 ROM이 들어있는 별도의 카드를 내놓는 방식으로 선보였다.





3. CP/M: 최초의 가정용 컴퓨터 OS


4.jpg

Commodore용 CP/M



컴퓨터 OS 역사에서 1960년대 UNIX의 등장은 혁명이었다. 다중 사용자(Multi-User), Multi-Tasking 등 현대적 운영체제의 완성판이 UNIX이다. (고로 UNIX에 대한 내용은 별도로 얘기해야 한다.) 하지만 가정용 컴퓨터가 등장하는 1970년대 중반까지 UNIX는 워크스테이션 혹은 미니 컴퓨터에 쓰는 일반인들이 구경하기는 어려운 운영체제였다.


77년에 등장한 Apple II의 경우 별도의 운영체제라고 불릴만한 게 없었다. 당시까지 사용된 보조저장장치는 테잎이었는데 속도도 느리고 사용하기 불편했다. 결국 애플은 미니컴퓨터에서 사용하는 플로피 디스크 드라이브를 적용하려고 했는데, 플로피 디스크 구동방식은 테잎과 상이했다. 플로피 디스크를 구동하기 위해서는 별도의 기술이 필요했는데 당시 스티브 워즈니악은 DOS(Disk Operating System)에 대한 경험과 지식이 없었다. 스티브 잡스는 DOS(Disk Operating System)의 기술을 가지고 있는 CP/M을 Apple II에 적용하는 것을 염두에 두었지만 워즈니악은 Apple II에 Shepardson Microsystems의 기술이 더 적용하기 쉽다고 생각했다. 스티브 잡스는 워즈니악의 의견을 받아들여 1978년 4월 10일, Shepardson Microsystems와 1만 3천 달러에 ‘로열티’ 없는 계약을 맺게 된다. Apple-DOS의 등장이다. 결국, Apple II에서 플로피디스크 도입은 1978년 Disk][ 등장 이후에나 가능했다.*




Sherpardson Microsystems와 DISK][


애플II가 처음 등장했을 때 보조기억장치는 카세트 테잎이었다. 이는 매우 느리고 신뢰성이 떨어졌고, 재부팅시 프로그램을 다시 실행하기 위해 다시 로딩해야 했다. 당시 MS가 만든 BASIC이 애플 것보다 훌륭하여 카세트 테잎으로 따로 판매했었지만 (애플과의 계약 등 사항은 下편에 다루겠다.) 속도가 매우 느려 사용자들이 불편을 호소하였고 Apple II+에는 BASIC을 메인보드(ROM)에 넣어 판매하였다. 당시 미니컴퓨터에서 사용중인 Floppy Disk의 경우 테잎에 비교하여 빠르고 간편하게 사용할 수 있었다. 


플로피 디스크는 테잎과 달리 읽고 쓰는 방식이 전혀 다르다. 테잎은 음악 듣는 것처럼 처음부터 기록하니 연속적인 기록 매체(linear)이지만 DISK는 순차적으로 기록하는 것이 아닌 무작위로 빈공간에 자료를 저장한다.(윈도우즈에서 디스크 조각모음을 하는 이유다.) 그러기에 파일을 읽고, 쓰고, 지우는 작업이 테잎하고 매우 다르게 된다. 그래서 그 기술을 집합해 놓은 것이 DOS(Disk Operating System)인 것이다. 당시, DOS는 가정용 컴퓨터에서 게리 킬달이 최초로 만들었다. 폴 렌턴이 만든 Sherpardson Microsystems사의 DOS를 애플은 1만 3천 달러에 로열티 없이 계약하고 Apple II에 적용하게 되었고, 그리하여 DISK][가 세상에 나오게 되었다.



그 보다 4년전 1974년 게리 킬달이라는 천재 개발자가 CP/M(Control Program for Microcomputers)라는 OS를 개발하였다. 게리 킬달은 해군대학원 복무시절 최초의 마이크로프로세서인 Intel 4004를 구입하여 프로그래밍을 하게 되었다. 인텔은 게리 킬달의 능력을 눈여겨보고 인텔사의 컨설턴트로 일해 줄 것을 부탁하였다. 1973년, 게리 킬달은 인텔과 일하면서 플로피 디스크의 가능성을 바라보고 8008과 8080 프로세서에서 사용 가능한 고수준 프로그래밍 언어(PL/M)을 개발하게 된다. 그 이듬해에 플로피디스크를 제어할 수 있는 디스크 운영체제를 개발했는데 그것이 바로 CP/M이다.



게리킬달.JPG

게리 킬달 Gary Kildall (1942. 5. 19 ~ 1994. 7. 11)



게리 킬달은 인텔에 CP/M을 PL/M과 함께 판매하려고 했지만 당시 인텔에게 돈을 벌어다 준 상품은 마이크로프로세서가 아닌 메모리였다. 당시 게리 킬달이 인텔에 CP/M에 요구한 금액은 지금보면 '껌'값인 2만 달러에 불과했다. 마이크로프로세서와 OS에 관심이 없었던 인텔은 PL/M만 구매를 하고 CP/M은 나몰라라 한 멍청한 결정을 하게 된다. 결국 '빡' 돌아버린 게리 킬달은 아내인 도로시와 함께 1974년 Intergalactic Digital Reseach라는 회사를 설립한다. 연구는 게리 킬달 자신이 하고 운영은 아내가 하였다. 게리 킬달은 자신이 만든 CP/M이 엄청난 물건임을 알고 있었다.





4. 최초의 멀티 플랫폼


1970년대 말 당시 가정용 컴퓨터는 애플과 비 애플로 나눌 수 있었는데 이는 CP/M을 사용하느냐 안하느냐 차이라 할 수 있다. (물론 Apple II에서도 별도의 하드웨어 Card를 장착하면 CP/M을 사용할 수 있었다.) 당시 수많은 가정용 컴퓨터 회사가 존재했는데 어떻게 애플을 제외한 모든 가정용 컴퓨터가 CP/M을 사용할 수 있었을까?


CP/M은 1960 년대 말에 나온 IBM의 VM의 OS인 CP/CMS과 벨의 UNIX에서 영향을 받은 OS였다. 많은 기능을 가져왔지만 차이는 CP/M이 천재 게리 킬달의 작품이라는 것이었다.


게리 킬달이 만든 CP/M은 다음과 같은 3가지 기능으로 요약 할 수 있다.





CP/M의 3가지 특징


1. Basic Input/Output System(BIOS)


5.gif

BIOS 역할


CP/M의 핵심기능은 BIOS에 있다. 게리 킬달이 현대 컴퓨터 역사를 바꾸게 된 것도 BIOS라는 기본 개념을 확립시켰기 때문이다. 당시 Apple II의 경우 보드에 프로그램을 ROM 형태로 처음부터 심어 놓던지(Apple II+ 경우 보드(ROM)에 Basic 프로그램을 아예 삽입), 소프트웨어 혹은 하드웨어를 확장하려면 콘솔 게임기의 게임 팩처럼 ROM 카드를 확장 슬롯에 삽입해야 했다. 가령 VisiCalc라는 프로그램을 사용하기 위해서는 VisiCalc 확장 카드를 사용해서 프로그램을 구동했어야 했다. DOS에서 한글 지원이 안되었을 때 도깨비 한글카드를 슬롯에 꽂고 사용하는 것과 같다.


게리 킬달은 인텔에서 8008과 8080 칩에 대한 연구를 하다가 서로 다른 기종의 하드웨어를 연결하는 방법을 개발하게 되었고 무엇보다 이를 소프트웨어적으로 해결하였다.


이 개념이 정립되자 BIOS 수정으로 CPU가 다르더라도 CP/M을 어느 컴퓨터에서나 포팅하여 실행 시킬 수 있게 되었다. 이로써 CP/M은 애플을 제외한 가정용 컴퓨터 영역에서 독주를 하게 되었고 게리 킬달은 돈방석에 앉게 되었다.


5.png

DOS에서 한글입력을 가능하게 한 추억의 <한도 도깨비 카드>

 


2. Basic Disk Operating System(BBOS)


키보드 입력, 화면 출력, 프린터 출력, 플로피디스크 제어, 메모리 관리 등 MS-DOS에서 수행하는 기능이다. Drive Letter(A:, C: 등) 등 IBM의 CP/CMS를 참조하여 만들었다. 추후 빌게이츠의 MS가 CP/M에서 가져오다시피 한 기능이 이 부분에 해당한다.



3. Console Command Processor(CCP)


GUI가 등장하기전 컴퓨터에 명령하기 위해서는 키보드로 명령어를 입력해야 한다. 'Command line interface'라고도 하며 UNIX의 Shell에 해당된다. CP/M의 CCP는 기존의 UNIX Shell에서 많은 기능을 차용하였다. 엄밀히 말해 당시 Command line Interface의 구동방식은 명령어 구성만 다를 뿐 차별화하기 매우 어려웠다.




여기서 주목해야 할 것은 CP/M은 OS 작동 방식 등 기능으로써가 아니라 여러 종류의 하드웨어에 어떻게 동일한 OS를 설치할 수 있었느냐에 있다. 빌 게이츠가 베낀 것은 CP/M이라는 OS 자체 뿐 아니라 게리 킬달이 세운 BIOS 개념이 아닐까 한다. 최신 스마트폰인 안드로이드 폰의 경우 또한 여러 회사에서 만든 하드웨어에서 동일한 안드로이드 OS를 설치할 수 있게 된 것도 게리 킬달이 세운 BIOS 개념 덕분이다. 


예를 들어, 가전의 경우 A사에서 만든 세탁기 운영 프로그램을 B사가 그대로 가져가서 자신의 세탁기에 사용하는 것은 불가능하다. 하드웨어 마다 작동하는 하드웨어 운영방법이 제각각이기 때문이다. (모든 하드웨어에 동일한 작동을 하게 끔 하는 자바의 기본 철학이 여기에서 나왔다.) 게리 킬달은 가정용 컴퓨터에서 BIOS 개념을 적용하여 애플을 제외한 모든 하드웨어에서 CP/M을 어렵지 않게 설치할 수 있게 만든 것이다. IBM은 PC를 만들고 나서(베끼고 나서) 게리킬달의 BIOS 개념은 받아 들이지 않고 폐쇠적이고 독자적인 BIOS를 만들고 남이 베낄 수 없도록 봉인했지만(결국 컴팩에 의해 뚫렸다. 상품가치전쟁 3편上참조 링크) 빌 게이츠는 이미 게리 킬달이 소프트웨어로 구축한 멀티플랫폼 시장을 읽고 있었다.(보다 자세한 사항은 下편에서 다루겠다.)





5. 최초의 개인용 컴퓨터 상용 소프트웨어


게리 킬달은 하드웨어가 아닌 소프트웨어를 카피당 판매하였다. 1975년 당시 시장도 제대로 형성되기 이전이었지만 게리 킬달의 예상은 적중했다. CP/M 한 카피당 75달러에 판매했는데 처음에는 몇천 달러의 수익에 불과했으나 여러 하드웨어 회사들이 컴퓨터를 제작하기 시작하면서 시장이 활성화 되자 수백만 달러를 벌게 되었다.


그 반면 Apple은 하드웨어를 판매하여 돈을 벌고 있었다. 한대당 1,000달러 정도로 판매하였고 당연히 OS를 따로 판매하지 않았다.(훗날 MS의 성공으로 애플 또한 OS를 따로 판매하게 된다.) 그러나 자체 OS가 없었던 코모도 PET 등 경쟁사들은 하드웨어를 저렴하게 판매하여 점유율을 올리고 있었다.


하드웨어와 소프트웨어의 이원화 상품 모델은 어찌되었든 게리 킬달이 만들었고, 게리 킬달은 순전히 소프트웨어 하나로 돈을 벌게 된 것이다. 게리 킬달은 소프트웨어 상품가치를 제대로 간파하였다. 그는 컴퓨터 하드웨어 제작사을 위해 CP/M을 포팅하여 판매하였고 새로운 시장을 만들게 되었다.



7.jpg

빌게이츠의 투정, 협박: 소프트웨어 돈주고 안사면 도둑!



물론 게리 킬달은 리차드 스톨먼처럼 소프트웨어에 철학을 담는 사람이 아니었다. 소프트웨어로 돈을 벌길 원했고 번 돈을 쓰길 원했다. 게리 킬달은 CP/M으로 갑부가 되자 비행기, 고속보트, 제트스키, 오토바이, 대형 리무진, 군선, 롤스로이스, 포뮬러 원 경주용 차, 캘리포니아 최초의 람보르기니 자동차, 포드 픽업 등 돈을 씐나게 쓰기 시작했다. 그렇다고 래리 앨리슨 처럼 완전한 속물은 아니었다. 사람에 대한 신뢰를 소중히 하여 주변 사람에게 자신의 지식을 여과없이 말하기를 즐겼다. 시애틀 고향 후배인 빌게이츠와는 빌 게이츠가 13살이던 시절부터 인연을 가지고 있었다. 1970년대 말, 게리 킬달과 빌 게이츠는 활동 근거지를 앨버커키에서 실리콘 밸리 혹은 워싱턴으로 옮기고 회사를 합치려고 했었다. 그 일은 없던 일로 되었지만 서로의 사업을 침범하지 않기로 약속을 했었다. 빌 게이츠의 MS가 프로그래밍 언어를 하고, 게리 킬달의 디지털 리서치는 OS를 하여 서로 관여하지 않기로 말이다. 그리고 빌게이츠는 처음 한번은 예의 상 그 약속을 지켰다.



다음 시간에는 어떻게 빌게이츠가 IBM PC의 실제 주인이 되었는지 이야기 하겠다.



이 시리즈는 계속됩니다.








 trexx

트위터 : @trexxcom


편집 : 너클볼러