d라이브러리









당신의 충실한 조수 마이크로프로세서

기초부터 다시 시작하는 PC교실 ④

현재는 아무 것도 모르지만 당신이 명령만 제대로 내린다면 스스로 방법을 찾아서 그 명령을 수행하는 충실한 조수가 있다. 마이크로프로세서라 불리는 당신의 조수 CPU가 일하는 방식은?

말을 하지도, 듣지도 못하는 사람이 당신의 회사에 입사했다. 더구나 당신의 일을 도와줄 조수로 배치됐다. 그는 앞으로 보수 한 푼 안받고 당신의 일을 도와 줄 것이라고 한다. 그런데 그는 자신이 일할 장비를 지니고 왔다. 그는 항상 혼자서가 아니라, 자신이 앉아서 일할 책상과 당신과 의사소통할 수 있는 간단한 장치를 지니고 다닌다.

당신은 그가 할 수 있는 일이라면 어떤 일이라도 시킬 권한이 있다. 그의 특징은 현재 아무 일도 할 줄 모르지만 무슨 일이든 제대로 차근차근 가르쳐만 주면 못하는 일도 없다는 것이다. 마치 한번도 먹어보지 않고 해보지도 못한 요리라도 요리 책만 보면 어떤 요리든 척척해내는 요술쟁이 요리사처럼….

당신의 조수는 항상 의자에 앉아 있으며 당신과는 필담만을 나눈다. 즉 당신이 원하는 것을 글로 적어 주면 그는 그것을 충실히 집행한다. 아마 10년전이었더라면 조수와 당신은 주로 종이(천공카드)로 의사소통을 했을 것이다. 그러나 이제는 자판(키보드)으로 의사소통을 한다.

컴퓨터의 두뇌 마이크로프로세서(CPU)

당신이 원하는 명령을 타자기처럼 생긴 키보드에서 찾아서 입력하면 그는 그대로 집행한다. 그가 처리한 결과는 종이로도 볼 수 있고 TV화면 같이 생긴 모니터(말 그대로 감시장치)로도 볼 수 있다. 평소에는 종이보다 모니터로 당신이 입력하는 과정은 물론 그 결과까지 모두 볼수 있다.

당신의 조수가 일하는 방식을 살펴보자. 당신이 키보드로 명령을 입력하면 그는 그 명령을 수행하기 위해 즉각적인 반응을 보인다. 원래 아는 것이 전혀 없으므로 신속히 자기 서랍을 열어서 거기에 명령을 수행하는 방법이 적혀있는 파일이 있는지를 찾는다.

그래서 파일이 발견되면 책상위에 올려놓고 차근차근 일을 해나간다. 그런데 당신이 어떤 명령을 주었는데 그것을 실행하는 방법이 자신의 서랍속에 있는 여러개의 서류철속에 없으면 그런 명령이 잘못되었거나 그런 파일이 없다(Bad command or file name)라는 메시지를 모니터에 표시한다.

당신은 가끔 조수에게 기가 막히게 일을 잘 할 수 있는 방법이 적힌 파일들을 서류철로 묶어 그의 서랍 속에 넣어둔다. 그러면 언제고 그에게 서류철에 들어있는 내용대로 일을 시킬 수 있다. 당신은 간혹 봉투에 서류를 따로 보관하기도 한다. 서랍을 들고 다닐 수 없으므로 서류를 가지고 다닐 때는 이 서류봉투를 이용하는 것이다.

그런데 당신의 조수는 일을 할 때 자기가 하고 있는 일을 항상 자신의 책상 위에 펼쳐 놓는다. 책상위에 서류철을 펼쳐놓고 그것을 참조해야만 일을 할 수 있다.

그는 여태까지 하던 일을 강제로 중단하거나 아니면 정상적으로 끝마칠 때는 항상 자기가 하던 모든 일은 서랍속에 다시 집어넣는다. 어떤 때는 서랍속에 보관하지 않은 채 그대로 쓰레기통에 버리기도 한다. 그러니까 이 친구가 일을 마치면 책상은 늘 깨끗이 치워지고, 설사 방금 전에 하던 일이라도 일을 끝낸 후에는 전혀 기억을 못한다. 다시 서랍을 열어서 서류를 꺼내어 보고서야 일을 할 수 있는 것이다.

여러분은 이 친구가 누구라고 생각하는가. 당신이 만약 "그건 너무 쉬운 질문이야. 국민학생도 대답할 수 있을걸"이라는 투로 쉽게 ''컴퓨터!"라고 대답한다면 나는 "딩동댕" 소리가 나는 실로폰을 칠 수가 없다. 한마디로 "땡!"이다.

그럼 무엇일까. 당신 조수는 컴퓨터의 두뇌인 CPU(Central Processing Unit) 즉 중앙처리장치다. 이 친구가 서류들을 올려놓고 작업을 하는 책상은 메모리 즉 주기억장치(main memory)다. 그리고 이 친구가 참조할 파일이 서류철로 묶여 잔뜩 들어가 있는 서랍은 하드디스크다. 서랍속에 파일들을 철해 놓은 서류철은 디렉토리(directory)라고 한다. 그리고 자주 사용하는 서류봉투는 플로피디스크라고 보면 된다.

이러한 비유를 통해 우리는 컴퓨터가 도대체 어떻게 일을 하는가를 명확히 알 수 있다. 몇가지만 더 추가해 말한다면 당신의 조수가 참조하는 파일이란 프로그래머가 작성한 프로그램이다. 컴퓨터가 일할 수 있도록 일하는 방법이 기술된 프로그램이 주어지지 않는다면 컴퓨터는 아무런 일도 하지 못한다.

우리가 컴퓨터라고 부르는 기계는 크게 보아 우리와 의사소통하기 위한 도구인 자판과 모니터, 그리고 스스로 일을 처리하기 위한 장치인 본체, 이렇게 두 부분으로 나눠진다.

본체의 핵심장치인 마이크로프로세서(microprocesser, PC에서의 CPU)는 메모리(책상)가 작으면 많은 서류를 책상위에 동시에 올려놓을 수 없으므로 덩치가 큰일을 할 수 없다. 또한 하드디스크(서랍)의 용량이 작으면 많은 서류를 담아둘 수 없으므로 일을 시킬 때마다 외부 디스켓(서류봉투)에서 서류를 꺼내어 넣어주어야 한다. 그리고 서랍 속에 있는 파일들이 뒤섞이지 않게 하기 위해서는 낱장으로 되어 있는 서류들을 종류별로 묶어주는 디렉토리(서류철)를 잘 이용해 체계적으로 분류해두어야 한다. 이 작업을 잘하려면 당신 스스로가 도스(DOS)지식으로 무장하고 CPU에게 옳은 명령을 주어야 한다.

일을 하기 전에 자기진단 (POST)부터

앞에서 CPU를 포함한 컴퓨터가 무보수로 일한다고 했지만 엄밀하게 따지면 무보수는 아니다. 컴퓨터가 일을 하려면 에너지가 필요하다. 컴퓨터는 전기를 에너지원으로 한다. 그래서 반드시 전기를 공급해주어야 한다. 그러니 전기요금 정도만 지불하면 언제라도 컴퓨터에게 일을 시킬 수 있다.

아침에 컴퓨터의 파워 스위치를 올리면 컴퓨터는 비로소 일을 시작한다. 그런데 컴퓨터는 일을 시작하기 전에 반드시 자기진단을 한다. 그러나 막상 CPU가 자기진단을 하려 해도 메모리에 아무 내용도 없기 때문에 도대체 어떻게 해야할지 전혀 모른다. 그렇기 때문에 자기진단을 할 수 있는 롬바이오스(ROM-BIOS, 각각 Read Only Memory와 Basic Input-Output System의 약자)라는 장치의 도움을 받아야 한다. 그럼 CPU가 작동하기 전에 롬바이오스가 관장하는 자기진단이 어떤 내용인지 알아보자. 전기가 공급되기 시작하면 롬바이오스는 C모스 (MOS)칩이라고 부르는 점검표를 들고 점검을 시작한다. 점검표에 적혀있는 내용과 실제 컴퓨터의 주변장치 상황이 일치하는지를 파악하는 것이 롬바이오스의 주임무다. 파악하는 방법은 약한 전류를 주변장치에 보내어 응답을 기다리는 것이다.

이러한 과정을 POST(Power On Self Test)라고 한다. POST 과정에서 상태가 양호한 주변기기들은 자신만의 독특한 신호를 보낸다. 이 방법으로 모니터와 키보드, 플로피디스크와 하드디스크, 그리고 무엇보다도 메모리가 제자리에 잘 붙어있는지 작동에는 이상이 없는지를 점검할 수 있다.

만약에 이상이 있으면 대번에 "삑삑"하는 소리로 사용자에게 신호를 보낸다. 그러면 사용자인 당신은 둘중의 하나를 선택해야 한다. 우선 C모스칩에 있는 내용대로 하드웨어를 일치시켜주든지 아니면 역으로 하드웨어에 있는 상황대로 C모스칩에 적힌 내용을 변경하든지 해야 한다.
가령 당신이 모니터를 흑백에서 컬러로 바꾼 뒤 그냥 컴퓨터를 켰다면 컴퓨터는 에러메시지를 보낼 것임에 틀림없다. 당신이 하드웨어의 내용을 바꾸었으므로 이 내용을 C모스칩에 기록해주어야 하는 것이다.

C모스칩에 기록하는 방법은 롬바이오스의 제조회사마다 조금씩 다른데 가장 대표적인 종류는 AMI-BIOS AWARD-BIOS PHOENIX-BIOS 등 세가지다. 컴퓨터를 사용하다보면 가장 애를 먹는 경우가 하드디스크를 읽지 못하는 경우인데, 하드디스크에 아무런 문제가 없어도 C모스칩에 하드디스크가 없는 것으로 기록되어 있으면 하드디스크를 읽지 못한다. 이럴 때는 자신의 하드디스크 사양을 파악해서 C모스칩에 옳게 기록하고 잘 저장하면 된다.

하드디스크가 20메가바이트(MB)이면 대개 하드디스크 타입이 2번이고 40메가인 경우 17번, 52메가인 경우 12번, 80메가인 경우 24번, 1백5메가나 그 이상인 경우 사용자 타입으로 47번을 정해주면 된다(1백5메가나 그 이상인 경우 제조회사에 따라 더욱 자세하게 입력해야 한다).

신발끈을 단단히 동여매는「부팅」

컴퓨터가 여러가지 일을 하기 위해 특별히 컴퓨터 전체를 관리하는 기능을 가진 운영체제(OS)라는 것이 필요하고 이것이 개인용 컴퓨터에서는 주로 디스크를 중심으로 한 파일 관리에 초점을 맞추어지기 때문에 도스가 나왔다는 사실은 지난 호에 자세히 설명한 바 있다.

자기진단이 성공적으로 끝난 후 롬바이오스가 마지막으로 하는 일은 CPU가 컴퓨터를 제대로 운영할 수 있도록 운영체제인 도스 파일을 CPU가 참조할 수 있게 책상(메모리) 위에 올려놓는 일이다. 도스가 CPU에게 인식되어야 비로소 CPU가 컴퓨터 전반을 장악하며 관리권을 가지게 되는 데 이를 부팅(booting)이라고 한다.

원래 부팅이라는 말은 부트(boot, 신발) 또는 부트스트랩(boot strap, 신발끈)에서 나왔는데 이는 '신발끈을 단단이 매고 일하러 나갈 채비를 갖춘다'는 것을 연상하게 한다. 부팅을 하기 위해서는 부팅을 할 수 있도록 준비가 된 도스 디스켓이 필요하다.

도스디스켓을 컴퓨터에 넣고 전원을 켜야 하는데 요즘은 대부분 하드디스크를 내장하므로 이 하드디스크 안에 도스 프로그램을 설치해 부팅한다. 그러나 하드디스크가 탈이 날 경우를 대비해 플로피디스크로 부팅하는 방법을 반드시 일아 두어야 한다. (그림)은 컴퓨터가 켜지고 나서 당신이 명령을 내릴 수 있게 될 때까지의 짧고도 긴 과정을 설명한 것이다. 당신이 컴퓨터의 파워스위치를 넣고 나서 명령을 내려 작업을 개시할 때까지 시간상으로는 매우 짧은 과정이지만 이에 대한 설명은 그리 간단하지 않다.

부팅을 시켜주는 주체는 롬바이오스지만 부팅되는 방식은 CPU가 일하는 일반적인 방식과 같다. 즉 부팅이란 하드디스크나 디스켓 상에 있는 도스 파일을 꺼내 메모리로 불러들이는 것이다. 여기에 참여하는 도스 파일을 시스템 파일이라고 하는데 세개로 구성되어 있다. MSDOS.SYS와 IO.SYS 그리고 COMMAND.COM이라는 이름의 세 파일이다. 말이 나온 김에 각 파일의 내용과 역할을 알아보자. 우선 MSDOS.SYS는 컴퓨터의 파일 관리에 대한 방법이 적혀있는 프로그램 파일이라고 생각하면 된다.

IO.SYS 라는 이름이 붙은 파일은 말 그래도 I0(lnput Output) 즉 입출력 장치의 관리를 담당하는 파일이다. 이 두개의 파일만을 시스템 파일이라고 하는 경우도 있는데 특이한 사실은 이 파일들이 사용자의 눈에는 보이지 않게 처리되어 있다.

마지막으로 중요한 파일은 COMMAND.COM이다. 이 파일은 사용자가 자주 쓰는 20여개의 명령어(이를 내부명령어라고 한다)을 처리하는 방식이 기록된 부분과 별도의 파일로 작성된 여러가지 명령어를 해석하는 부분 두 부분으로 구성되어있다.

그래서 COMMAND.COM을 명령어해석 기라 부르기도 한다.

컴퓨터를 켰을 때 자기진단 과정은 무사히 넘어갔는데 하드디스크에서 부팅이 잘 안된다면 대부분 바로이 COMMAND.COM이 손상을 입었기 때문일 것이다. 이럴 때는 부팅용 디스켓을 플로피디스크드라이브에 넣고 부팅을 시킨후 COMMAND.COM을 하드디스크에 복사해두면 된다.
 

(그림)컴퓨터가 일을 시작하는 절차


프롬프트를 만나보자

부팅이 끝난 다음에 어떤 과정이 전개되느냐 하는 것은 여러분의 컴퓨터에 장착되어 있는 디스크의 사정에 달려있다. 만약에 플로피디스크로 부팅을 했다면 컴퓨터가 부팅되면서 여러분에게 다음과 같이 날짜와 시간을 물어본다.

CURRENT DATE IS SUN 11-01-1992 ENTER NEW DATE(mm-dd-yy):

그러면 여러분은 콜론(:) 다음에 날짜를 입력하면 된다. 형식은 월-일-년의 순으로 집어넣는다. 그리고 이와 비슷하게 시간에 대해서 물어 보는데 역시 콜론이 나오면 그 다음에 현재의 시간을 입력하고 엔터(enter)키를 치면 된다.

만약 여러분의 디스크에 자동실행 일괄처리파일(AUTOEXEC.BAT)이라는 다소 긴 이름의 파일이 있다면 컴퓨터가 스스로 알아서 컴퓨터에 있는 내장시계의 날짜와 시간을 참조하여 자동으로 맞추어 준다. 이 사실에서 컴퓨터에는 전자시계가 들어 있다는 것을 알 수 있다. 이 시계는 전원이 공급되지 않아도 내장 배터리의 힘으로 움직인다.

컴퓨터가 현재의 날짜와 시간을 알고 난 후 화면에는 다음과 같은 것이 생겨날 것이다.

A〉... 또는 C〉... 또는 C:\〉...

이와 같은 것을 프롬프트(prompt)라고 한다. 프롬프트란 원래 '재촉하다'는 뜻을 가진 단어다. 컴퓨터를 사용할 때 프롬프트를 만나면 이는 컴퓨터가 "나는 일할 준비가 되었으니 당신이 원하는 명령을 내려주십시오"라는 메시지를 띄우는 것이라 생각하면 된다. 여기서 깜빡거리는 밑줄(...)이 있는데 이를 커서라고 한다. 커서라는 것은 자판(키보드)으로 숫자나 문자 부호 등을 입력할 때 글자가 입력될 위치를 가리키는 것이다.

독일에서 잘 훈련받은 명견이 미국의 한 부자에 의해 수입되었다. 비싼 돈을 지불하고 개를 산 주인은 이 개를 집에 데려와 명령을 내렸다. 우선 가장 쉬운 "앉아'와 "일어서"부터 명령을 내렸으나 이 개는 전혀 움직이질 않았다. 아무리 주인이 목청높여 명령을 내려도 개는 꿈쩍도 안하는 것이 아닌가. 왜 그랬을까. 이 개는 독일에서 독어로 훈련을 받았기 때문에 영어인 "Seat down"은 전혀 알아듣지 못했던 것이다. 당연히 이 개는 영어로 다시 훈련을 받아야 했다.

자 ! 이제명령을…

마찬가지로 컴퓨터에게 일을 시키려면 컴퓨터가 알아듣는 언어로 적당한 명령을 주어야 한다. 한국에서 만들어진 컴퓨터라도 마이크로프로세서의 원산지가 미국인데다가 운영체제인 도스 프로그램도 미국에서 만들어졌기 때문에 명령을 영어로 내려야한다. 물론 컴퓨터에게 우리 말을 가르칠 수도 있다. 하지만 쉬운 일이 아니므로 영어 명령어를 배우는 편이 빠르다.

명령어에 대해 좀더 알아보자. 컴퓨터에서 명령어(command)란 컴퓨터에게 일을 시키기 위한 명령, 즉 작업지시를 말한다. 일반적으로 이 명령은 알파벳이나 숫자로 구성되어 있으며 키보드를 통해 입력된다. 컴퓨터는 키보드를 통해 입력된 내용이 있으면 입력된 문자를 하나하나 검토하여 메모리에 올라와있는 COMMAND.COM이라는 명령어 해석기의 내부명령어와 비교를 해본다.

그래서 그런 명령이 있으면 즉각 실행을 하고 만약에 없다면 그런 명령이 하드디스크에 있는지 찾아본다. 이때 하드디스크 전체를 뒤지는 것은 아니고 단지 현재의 디렉토리 안에 있는 파일만을 찾는다. 하드디스크와 디렉토리 그리고 파일의 관계에 관해서는 다음 기회에 자세히 다룰 예정이다. 만약에 여기에라도 있으면 실행을 하고 만약 없으면 "BAD COMMAND OR FILE NAME"이라는 퉁명스러운 메시지를 내보낸다. 예를 들어 우리가 DIR이라는 명령어를 입력하면 이것은 디스크에 수록되어 있는 파일의 목록과 그에 대한 정보를 화면에 표시하라는 의미다.

매개변수와 옵션

명령어는 영어로 되어 있다. 영어시간에 배운 내용을 약간만 생각해 보면 도스 명령어쯤이야 아무 것도 아니다. 우선 한 문장이 명령문이 되기 위해서는 주어가 없이 동사의 원형이 문장 제일 앞에 온다는 사실과, 동사에는 자동사와 타동사가 있는데 둘 사이의 차이는 목적어가 있고 없고 정도의 차이가 있다는 사실을 상기하면 된다.

도스의 명령어도 당연히 주어가 필요없이 바로 명령어를 입력하면 되는데 명령어에 따라서 목적어가 붙는 경우도 있고 없는 경우도 있다. 예를 들어 디렉토리 내부에 있는 파일의 리스트를 출력하라는 명령인 DIR은 목적어가 필요없다. 그런데 파일을 지우라는 명령인 DEL이라는 명령은 지울 대상을 이 명령어 다음에 명시해주어야 한다.

이를테면 DEL README.DOC 이라는 명령어는 README.DOC라는 파일을 지우라는 명령이다. 여기서 명령의 목적어에 해당하는 것을 컴퓨터 용어로 매개변수(parameter)라고 한다. 동사를 배우다 보면 3형식 동사도 있고 4형식 동사도 있다. 이것처럼 매개변수도 하나로는 되지 않고 두개가 필요한 경우도 있다. 가령 첫번째 플로피디스크에 있는 내용을 두번째 플로피디스크로 복사하라는 명령은 DIS- KCOPY A: B: 으로 입력하면 된다. 이렇게 하면 A: 에 있는내용이 B: 으로 복사된다.

동사를 수식해주는 품사 중에 부사가 있는데 동작이 어떻게 이루어질지를 규정한다. 명령어를 입력할 때에도 명령의 대상은 매개변수로 처리하지만 명령을 세부적으로 규정할 때에는 옵션 또는 스위치라는 것을 붙여서 표현한다.

가령 DIR이라고 그냥 입력하면 파일의 리스트가 출력되지만, DIR/P라고 하면 파일이 많아서 한 화면에 넘치는 경우 한 화면씩 끊어서 출력해준다. DIR/W는 파일의 자세한 정보를 출력하는 대신 화일 이름만을 가로로 화면 가득히 출력해 준다. 플로피디스크를 초기화할 경우 FORMAT A: 이라는 명령어를 사용하는데 예를 들어 FORMAT A:/S라고 하면 디스크를 초기화할 뿐 아니라 부팅을 할 수 있는 디스켓으로 만들어준다. 여기서 /는 명령어에 붙는 옵션 앞에 붙여주어야 하는 기호이고 S라는 옵션은 system의 약자로서 말 그대로 시스템 디스크를 만들어 준다는 뜻이다.

명령어와 매개변수, 옵션이 나열되는 일반적 형식은 다음과 같다.

명령어 매개변수/옵션

여기서 유의해야 할 것은 명령어와 매개변수 사이에는 반드시 공백(space)이 들어가야 한다는 것이다. 또 하나 명심해야할 사실은 입력이 모두 끝난 후에는 반드시 엔터키를 눌러야 한다는 것이다.

메뉴방식과 GUI방식

컴퓨터의 명령어는 운영체제를 설계한 프로그래머의 취향에 따라 여러가지 형태를 가질 수 있다.

도스 운영체제의 DIR이라는 명령어는 다른 운영체제에서는 CATALOGUE 또는 LS 등으로 바뀌게 된다. 그러다 보니 같은 기종의 컴퓨터라도 운영체제가 다르면 어떤 명령어를 내려야 할지 매우 어렵고 복잡해진다.

이런 문제점을 해결하기 위한 방법으로 컴퓨터가 사용자들이 내릴 명령을 메뉴처럼 나열해 놓고 그 중에 어떤 것을 지적함으로써 명령을 실행하는 메뉴방식이 등장했다. 여기서 더 발전한 것은 화면상에 작업 내용을 나타내는 심볼(아이콘이라고 한다)을 표시해 두고 마우스 등을 이용하여 마우스의 위치를 표시해주는 화살표를 움직여 원하는 그림을 지적해주면 그 명령이 수행되는 방식이다.
 

화살표키로 자신이 원하는 항목을 찾아가서 엔터키를 누르는 메뉴방식

 

여기서 전자를 메뉴방식(menu driven)이라고 하고 후자를 그래픽유저인터페이스(GUI, Graphic User Interface)라고 한다. 매킨토시 컴퓨터의 경우 컴퓨터를 켜자마자 바로 그래픽유저인터페이스로 운용할 수 있기 때문에 컴퓨터를 익히는데 많은 시간을 요하지 않는다. 매킨토시의 편리한 GUI에 자극을 받은 IBM계열의 컴퓨터에도 요즈음 이 GUI의 바람이 불고 있다.

MS-DOS를 만들어낸 마이크로소프트사의 윈도우즈라는 프로그램과 IBM에서 만든 S/2 등이 대표적인 GUI 프로그램이다.
 

마우스나 아이콘으로 원하는 그림을 찍어 선택하는 GUI방식
 

이 기사의 내용이 궁금하신가요?

기사 전문을 보시려면500(500원)이 필요합니다.

1992년 11월 과학동아 정보

  • 이형열 대표

🎓️ 진로 추천

  • 컴퓨터공학
  • 정보·통신공학
  • 소프트웨어공학
이 기사를 읽은 분이 본
다른 인기기사는?