마이크로소프트웨어

90.1. 132p

90년대를 열어가는 OS를 진단한다

16비트 PC의 표준 운영체계 MS 도스

글/ 편집부

1970년대 디지털 리서치(Digital Research)사의 CP/M(Control Program for Microcomputer)이 8비트용 운영체제로서 자리를 확립한 다음, 1981년 16비트 마이크로프로세서인 인텔 8088을 탑재한 IBM PC가 발표되었다. 이 때 발표된 IBM PC는 16K의 메모리와 160K의 싱글 디스크 드라이브를 지원하는 정도였다. 그러나 1년후에 메인 메모리 256K와 양면 360K 디스크 드라이브를 지원하는 IBM PC 스탠다드가 정해졌다. 당시 16비트 PC에서 CP/M용으로 작성된 소프트웨어를 쓸 수 있는 운영체제는 다음과 같은 세 가지 뿐이었다.

(1)CP/M 86 : 디지털 리서치사가 만든 8비트 운영체제인 CP/M Ver 2.0과 호환성이 있도록 만들어진 운영체제이다.

(2)UCSD System : 캘리포니아 대학의 정보과학 연구소가 UCSD 파스칼을 사용하여 만든 운영체제로서 응용 소프트웨어의 이식이 쉬운 대화형 파스칼 인터프리터(Interpreter, 통역기)이다.

(3)MS-DOS : 시애틀 컴퓨터 프로덕트(Seattle Computer Product)사의 팀 패터슨(Tim Paterson)이 8086용의 운영체제로 개발한 SCP DOS-86을 마이크로소프트사가 사들여 IBM PC용으로 만든 운영체제이다.

이 중에서 IBM사의 요청으로 만들어진 MS-DOS(MicroSoft Disk Operating System)가 IBM PC/XT용 운영체제로서 표준화되었다. 이후로 도스는 하드웨어의 변화와 함께 매년 버전업되어 왔다.

도스 4.0 1988년 7월 마이크로소프트사와 IBM에 의해 발표된 도스 4.0은 기존의 도스 버전과 호환성을 유지하면서 하드 디스크의 지원 보강, 확장 메모리 이용의 극대화, 메뉴 방식의 도스 인스톨 프로그램 및 도스 쉘 프로그램을 제공하고 있다. 특히 도스 쉘 프로그램의 화면 구성 및 사용방법은 OS/2의 프리젠테이션 매니저와 유사하여 사용자들로 하여금 OS/2로의 접근을 용이하게 하고 있다. 도스 쉘(Shell) 도스 4.0의 가장 큰 특징이라고 할 수 있는 도스쉘이 수행된 상태에서는 마우스가 사용 가능할 뿐만 아니라 응용 프로그램의 수행을 메뉴 방식으로 처리할 수 있다. 쉘에서 제공하는 기본적 디스크 관리 프로그램은 복사(COPY), 삭제(delete), 디렉토리 관리 등이 있다. 이외에도 도스 프롬프트 상에서 수행되던 거의 모든 명령을 마우스 등을 이용해서 메뉴 방식으로 수행할 수 있다. 또한 온라인 헬프 기능이 있어서 사용자가 요구하는 도움말을 언제든지 얻을 수 있다. 도스 쉘은 도스의 COMMAND.COM 파일에 해당하는 명령어 처리기를 키보드로부터 입력받는 것을 지양하고 GUI(Graphic User Interface) 형태로 개선하여 사용자가 쉽게 파일을 관리할 수 있도록 도와준다. 다시 말해서 OS/2의 프리젠테이션 매니저나 마이크로소프트 윈도우즈의 파일 관리기능 등과 유사한 형태이다. 32MB 이상의 하드 디스크 지원 3.3버전까지의 도스는 32MB 이상의 파일을 지원하지 못하였으며, 32MB 이상의 하드 디스크인 경우에는 도스 분할(Partition)을 이용하여 논리 드리이브로 사용하였다. 이러한 제약점은 대용량의 하드 디스크나, CD 롬과 같은 대용량의 기록 매체를 사용하는데 불편하다. 따라서 도스 4.0은 도스 분할을 하지 않고도 최대 2GB(기가 바이트)까지 디스크를 지원할 수 있도록 하였다. 그리고 32MB 이하의 하드 디스크에서는 도스 3.3과 같은 방법으로 지원한다. 시스템 수행 능력 보강 도스 4.0은 3.3버전에서 지원하던 파일 캐시(Cash) 기능을 보강하여 네임(name) 캐시, 열린(open) 파일에 대한 확장 캐시, 그리고 도스의 데이터 캐시에 사용되는 버퍼의 수를 증가시킴으로써 시스템의 수행 능력을 보강하였다. 또한, 확장 메모리(exepanded memory)를 시스템 버퍼로 사용할 수 있도록 함으로써 사용자 프로그램이 사용할 수 있는 메모리의 크기를 늘릴 수 있다. 도스를 통해 본 OS의 이해 오퍼레이팅 시스템(Operating System, 운영체제)이란 컴퓨터의 관리를 호율적으로 처리하는 소프트웨어로서, 컴퓨터의 하드웨어와 사용자의 프로그램을 연결해 주는 중계기 역할을 한다. OS는 컴퓨터를 운용하는데 있어서 매우 중요한 부분으로 컴퓨터의 중앙처리장치(CPU)가 두뇌 부분에 해당한다면 OS는 바로 지능이라고 할 수 있다. OS가 개발되기 전에는 응용 소프트웨어를 개발할 때 메모리의 관리, 주변기기의 동작과 외부와의 입출력을 프로그램에서 일일이 제어해야 하는 불편이 있었다. 그리고 하드웨어가 다른 기종에서 사용할 때에는 다시 수정을 해야 하는 번거로움이 있었다. 이러한 하드웨어적인 비호환성을 소프트웨어적으로 해결하기 위해서는 하드웨어와 응용 프로그램 사이에 또 다른 표준화된 소프트웨어를 필요로 하게 되는데 이러한 것들을 OS가 담당하게 된다. 컴퓨터를 배우는 데 있어서 OS의 존재를 안다는 것은 매우 중요한 일이다. 16비트 컴퓨터를 배우고자 하는 초보자가 가장 먼저 배워야 하는 것도 도스이고, 컴퓨터를 능숙하게 조작하고자 할 때 마지막에 배워야 할 것도 도스이다. 일반적으로 도스라고 하면 컴퓨터를 처음 가동시키고 어떤 프로그램을 수행하기 위한 중간 단계로 생각하지만 도스는 이러한 기본적인 기능외에 하드웨어와 응용 프로그램 사이에서 중계기 역할을 하는 중요한 요소이다. 실제로 하드웨어를 제어하는 것은 롬 바이오스(ROMBIOS : Basic Input Ouput System)가 담당하는데, 여기서 디스켓으로부터 데이터를 읽기 위해서는 드라이브 모터를 구동시키고 헤더를 일정한 위치로 움직인 후 데이터를 읽어들이는 기본적인 입출력이 이루어질 뿐이다. 이러한 데이터들은 파일이라는 개념이 전혀 도입되지 않은 것으로 이들 데이터를 관리해서 하나의 파일로 만들어 주는 것이 바로 도스의 역할이다. 키보드로부터 전기적인 신호를 입력받아서 문자로 만들어 주거나 화면 출력과 같은 것을 도스가 담당하고 있다. 따라서 응용 프로그램들은 하드웨어를 직접 제어하는 것 보다는 도스를 통해서 제어하는 것이 보다 손쉽고 하드웨어에 의존하지 않는 소프트웨어를 개발할 수 있다. 이렇듯 도스는 하드웨어 전체를 대상으로 주변기기를 관리하는 일을 맡아서 하고 있으며, 그외에 메모리 관리라든지 도스의 명령 해석기인 COMMAND.COM의 명령에 따라 간단한 파일 관리를 하는 것이 도스의 역할이다. 도스의 한계 1980년대는 마이크로컴퓨터의 표준화와 함께 MS 도스가 16비트 PC에서의 표준 OS로 등장하였다. 약 10년간 PC용 OS를 주도한 MS 도스는 이제 급격히 성장하는 하드웨어를 모두 수용하기에는 너무 비대해졌다. 도스 4.0이 발표되면서 2GB에 달하는 파일 지원, LAN으로 연결된 자원의 공유, 확장 메모리 지원, 도스 쉘에 의한 사용자 중심의 컴퓨터 운영 등 여러 가지 추가된 기능을 자랑하지만 근본적으로 메모리의 구조에서는 한계를 느끼고 있는 것이다. MS 도스는 IBM PC의 운용체계로서 개발 당시부터 하드웨어의 제약을 많이 받았다. 초기의 PC가 64K 정도의 주기억장소와 싱글 드라이브를 지원하는 정도였으므로 MS 도스 1.0은 인텔의 8088에 탑재된 CP/M의 모조품과 같았다. 그 다음 PC 사용자들의 보다 많은 요구에 따라서 하드웨어와 함께 고급 운영체제로 꾸준히 나아가고 있다. 하드웨어의 발전과 함께 도스의 운영체제는 점진적으로 성장해 가고 있지만 근본적으로 해결하기 힘든 것 중의 하나는 바로 메모리 문제이다. CD 롬과 같은 대용량의 기록 매체가 개발되면 거기에 맞는 파일 구조를 작성하거나 LAN의 개발에 맞추어 자원을 공유할 수 있도록 지원하는 것은 그리 어렵지 않다. 도스는 이미 개발될 때부터 여러 가지 주변기기의 확장성을 고려하여 설계되었기 때문에 주변기기의 확장은 어떤 표준을 정하는 것만으로 충분하다. 초기의 PC는 256KB 정도의 메인 메모리로 충분했으나. 차츰 응용 분야가 넓어지면서 대용량의 메모리를 요구하게 되었다.그러나 도스가 개발된 환경은 인텔의 8088 프로세서를 중심으로 메인 메모리의 한계가 1M 바이트로 제한되어 있다. 그 중 롬바이오스 영역과 비디오 어댑터용으로 사용되는 128K 바이트의 비디오램 영역을 제외하면 사용자 영역은 640K 바이트에 불과하다. 80286 프로세서에서는 24비트의 어드레스 버스를 갖추고 있어서 이를 탑재한 IBM AT 기종에서는 16M 바이트까지 메모리를 확장할 수 있다. 그러나 이러한 메모리의 확장은 하드웨어적으로 확장될 뿐이지 도스의 작업 영역으로 사용할 수 없다. 이는 도스의 주소값을 표현하는 한계가 최대 1M 바이트이기 때문이다. 따라서 도스는 운영체제하에서 확장램은 버추얼 디스크(VDISK)라든지 데이터 영역으로만 사용될 뿐이다. 도스의 미래는 현재 32비트 이상의 하드웨어상에서 MS 도스를 운용한다는 것은 하드웨어의 낭비라는 견해도 있다. 386은 286보다 스피드가 빠른 것은 사실이지만, 도스상에서 32비트 이상의 데이터를 전송하는 체제를 지원하지 못하기 때문에 실질적인 처리속도의 증가는 기대하기 힘들다. 그리고 하드웨어적으로 16M 바이트 이상의 확장 메모리를 지원하는 286이나 386이 보급되어 있는 상태지만 도스는 이들 메모리 공간을 적극적으로 수용하지 못하고 있다. 이러한 도스의 메모리 한계를 뛰어 넘은 것이 OS/2이고 마이크로소프트사에서는 MS 도스에서 OS/2로의 자연스러운 접근을 위해 도스 쉘과 같은 그래픽 인터페이스를 제공하고 있다고는 하지만 도스의 위치가 크게 흔들리는 것은 아니다. OS의 역할이 하드웨어와 응용 프로그램 사이의 중계역할을 하는 시스템 소프트웨어인 만큼 프로그래밍 환경도 무시할 수 없다. 도스는 이미 많은 사용자를 확보하고 있다는 것외에도 펑션 콜외에 단일 사용자(single user), 단일 작업(single task) 체제가 가져다 주는 이점은 사용자 주도의 프로그래밍이 가능하다는 것이다. 특히 메모리를 기준으로 모든 작업이 이루어지므로 데이터 처리가 손쉽고 일반인의 접근이 용이하다. 메모리의 한계에 부딪친 도스를 이어갈 차세대 OS의 출현은 필연적이라고 할 수 있지만, 현재의 OS/2나 유닉스 환경은 너무나 동떨어졌다고 할 수 있다. 도스를 과감히 버리고 OS/2로 전향을 한다고 하더라도 응용 소프트웨어의 부족, 지나친 그래픽 환경 때문에 프로그램의 개발이 어려운 것 등이 문제점으로 대두된다. OS/2는 그래픽 위주의 화면구성때문에 한글화의 어려움 뿐만 아니라, 그래픽을 베이스로 한 응용 프로그램의 개발에도 많은 장애가 있기 때문에 국내에서는 도스가 당분간 우위를 차지하고, 도스에서 차세대 OS로의 전향은 매우 느린 걸음으로 진행될 것이다.