d라이브러리









독특한 철학과 프로그램공개로 성공한 새로운 운영체계「유닉스」

최근 국내기업들이 386PC에 한글유닉스를 채용함으로써 유닉스는 PC사용자들에게 한걸음 바싹 다가왔다.

최근 컴퓨터 사용자들과 업계에서는 유닉스(UNIX)라는 컴퓨터 운영체계(OS, Operating System)가 많은 화제를 낳고 있다. 대부분의 컴퓨터 전문가들은 유닉스가 앞으로 컴퓨터 운영체계의 표준이 될 것이라고 말하고 있다. 실제로 요즘 나오는 컴퓨터들은 개인용 컴퓨터에서부터 중·대형 컴퓨터에 이르기까지 거의 모두가 유닉스를 운영체계로 사용할 수 있게 되어 있다.

컴퓨터의 운영체계에는 많은 종류가 있다. 우리가 가장 쉽게 접할 수 있는 MS-DOS도 개인용 컴퓨터에서 사용되는 운영체계중의 하나다. 그렇다면 많은 컴퓨터 운영체계 가운데에서 왜 유닉스가 두드러지고 있는 것일까.
여기에 대한 답을 얻기 위해선 우선 운영체계가 무엇인지를 알아야 한다.

고철에 생명을 불어넣고

사실 컴퓨터 그 자체로는 수많은 트랜지스터들과 전선으로 구성된 고철(?) 덩어리에 불과하다. 이러한 컴퓨터에 생명을 불어 넣어서 복잡한 계산도 하고 많은 자료를 처리할 수 있게 해주는 것이 프로그램이란 사실은 컴퓨터에 관심이 있는 사람이라면 누구나가 다 아는 이야기다. 운영체계라는 것은 사용자가 컴퓨터를 쉽게 다룰 수 있게 해주는 일종의 기본 프로그램이다.

운영체계는 주로 컴퓨터와 연결된 프린터, 플로피 혹은 하드디스크, 모니터와 같은 주변 장치들을 제어하는데 사용된다. 운영체계가 있음으로써 사용자들은 주변 장치의 제어에 거의 신경을 쓰지 않고 응용 프로그램의 작성이나 프로그램의 사용에만 전념할 수 있게 되는 것이다.

이해를 돕기 위해 자동차의 운전과 비교해보자. 여기서 컴퓨터는 자동차의 엔진과 비교가 될 것이다. 만약 자동차를 운전하기 위해서 운전자가 엔진과 연결된 장치들의 제어까지 신경을 써야 한다면 어떻게 될까. 그렇다면 운전자는 손으로 펌프를 돌려서 연료를 엔진에 공급해 주어야 할 것이고 연료의 연소를 위해 각 실린더에 공급되는 전기를 배전(配電)해주기 위해 실린더마다 번갈아 가며 전기를 공급해 주느라고 정신을 못차리게 될 것이다. 그러나 실제로 자동차는 이러한 일련의 제어작업을 기계적(최근의 고급 자동차들은 전자적인 방법을 사용한다)으로 해주므로 운전자는 이들에 신경을 쓰지 않고 운전을 할 수 있다. 자동차에서 엔진과 연결된 장치들을 제어하여 운전을 하기 쉽도록 해주는 역할을 컴퓨터에서 운영체계가 맡고 있는 것이다.

한편 자동차에는 트럭이나 버스에서 사용되는 디젤 엔진, 소형차에서 사용되는 휘발유 엔진, 스포츠카에서 많이 사용되는 터보엔진 등이 있으며 엔진의 종류에 따라 제어방식이 달라진다. 마찬가지로 컴퓨터에서도 많은 종류의 컴퓨터-일반적으로 사용되는 중앙처리장치(CPU)로 구분한다-가 있으며 종류에 따른 제어 방식이 각기 다르다. 그러므로 같은 이름의 운영체계라도 컴퓨터의 종류에 따라 내부 구조는 서로 다르다. 그러나 자동차에서 액셀러레이터를 밟으면 가고 브레이크를 밟으면 서게 되며 적당한 힘을 얻기 위해서 기어를 사용한다는 사실만 알고 있으면 모든 자동차를 운전할 수 있듯이, 컴퓨터에서도 종류에 따라 내부는 달라도 사용자에게 주어지는 운영체계의 사용법은 어느 컴퓨터에서나 같다. 따라서 같은 운영체계 위에 작성된 프로그램은 컴퓨터의 종류에 상관없이 실행이 가능하다. (그림1)은 이것은 그림으로 나타낸 것이다. A라는 컴퓨터와 B라는 컴퓨터가 종류는 달라도 같은 운영체계를 사용하면 그 운영체계 위에서 실행되는 프로그램은 컴퓨터의 종류와 무관하게 같이 사용할 수 있음을 보여주고 있다. (그림2)는 컴퓨터에 운영체계가 없을 경우. 똑같은 일을 행하는 프로그램일지라도 A라는 프로그램과 B라는 프로그램을 다르게 작성해야 한다는 것을 보여주는 그림이다. 이 경우 프로그램은 컴퓨터와 연결된 장치들의 제어까지도 해야하므로 매우 복잡해짐을 알 수 있다.

C언어로 다시 쓰여져
 

(그림 1) 운영체계가 있는 컴퓨터


이제까지 운영체계가 무엇이며 운영체계가 필요한 이유가 무엇이지를 알아 보았다. 그러면 많은 운영체계 가운데 유닉스가 각광받고 있는 원인을 분석해 보자. 그러기 위해선 먼저 유닉스의 역사를 살펴 봐야 할 것이고 그 다음엔 유닉스가 가진 특징들을 살펴보아야 할 것이다.

유닉스는 1969년에 미국 벨연구소의 켄 톰슨(Ken Thompson)에 의해 탄생됐다. 당시 톰슨은 GE645라는 컴퓨터에서 사용된 멀틱스(Multics)라는 운영체계를 개발하고 있었는데, 멀틱스와 비슷한 운영체계를 DEC사의 PDP-7에서 구현한 것이 유닉스의 시초다. 이 시스템은 브라이언 커니건(Brian Kernighan)이 멀틱스에 비해 엄청나게 작은 시스템이라는 의미에서 Unics라고 불렀고 이는 곧 UNIX로 바뀌었다.

1973년 유닉스는 커다란 변화를 하는데 이제까지 어셈블리로 작성되었던 소스프로그램이 C언어로 다시 쓰여진 것이다. 어셈블리로 작성된 프로그램은 하드웨어에 대한 의존도가 높아서 새로운 컴퓨터에 이식시키기가 어려운 반면 C언어로 쓰여진 프로그램은 새로운 기계에 이식하기가 매우 쉬워졌다. 따라서 유닉스가 C언어로 다시 쓰여진 것은 유닉스가 급속한 속도로 퍼지게 되는 원동력이 되었다. 실제로 새로운 컴퓨터를 개발한 다음 그 컴퓨터에 유닉스를 이식시키는 데에는 불과 한 달 정도밖에는 걸리지 않는다고 한다.

1976년 버전6이 발표되었고 이것이 최초로 벨 연구소 바깥으로 퍼짐과 동시에 AT&T에서 상업적으로 팔리기 시작했다. 이어 1977년 PDP-11에서 돌아가는 최초의 버클리대학판 유닉스(BSD)가 등장한다. 1979년에는 오늘날 유닉스가 가지는 기본 골격을 완전히 갖춘 버전7이 발표되기에 이르렀고 이것은 PC용 유닉스인 제닉스의 기본이 되었다.

버전7이후로 등장하는 유닉스들은 크게 두 부류로 나누어지는데 그 중 한 부류는 AT&T를 주축으로 하는 시스템 V계열이고 다른 하나는 버클리 대학을 주축으로 하는 버클리판 유닉스다. 현재 가장 널리 쓰이는 유닉스의 시스템 V의 경우 시스템 V 릴리즈 3과 버클리판의 경우 4.3 BSD다. 유닉스와 운영체계의 역사를 나타내는 계보(系譜)는 (그림3)에 실었다.
 

(그림 2) 운영체계가 없는 컴퓨터


셸과 X윈도

그럼 유닉스가 가지는 특징을 살펴보자.

우선 유닉스는 멀티유저(multiuser)와 멀티태스킹(multitasking)을 지원해 주는 운영체계다. 그러므로 유닉스를 사용하면 한 대의 컴퓨터를 동시에 여러명이 사용할 수 있으며 또한 여러가지 작업-이를 프로세스(process)라 한다-을 동시에 처리할 수 있다.

그리고 유닉스는 셸(shell)이라는 사용자 인터페이스를 제공한다. 셀은 일종의 명령어해석기(interpreter) 즉, 사용자가 입력하는 명령어를 해석하여 그것을 수행해 주는 일을 하는 프로그램이다. 개인용 컴퓨터에서 사용되는 MS-DOS와 비교한다면 command.com이란 프로그램과 같은 것이다. 유닉스에서 셸은 각종 명령의 처리뿐만아니라 프로그램을 하기 위한 언어로서의 역할도 해준다. 그렇기 때문에 사용자들은 포트란이나 C같은 프로그래밍 언어를 전혀 몰라도 원하는 업무를 셸을 사용하여 쉽게 처리할 수 있다.

유닉스는 개발 당시 프로그램밍에 관한 연구를 보다 편리하고 효과적으로 수행하기 위해 만들어진 운영체계다. 그래서 유닉스는 우수한 성능의 에디터와 C, 포트란, 파스칼, 리스프, 스노볼, 베이직 등과 같은 많은 컴퓨터언어 및 프로그래밍을 도와주는 여러가지 유용한 유틸리티들을 제공한다.

또한 유닉스는 강력한 문서작성용 프로그램들을 제공한다. 원래 이 프로그램들은 사용자들이 만든 복잡한 데이터를 기록을 하기 위해 만들어진 것이나 간단한 도표 및 수식의 표현까지도 할 수 있을 정도로 강력하므로 전문 프로그래머가 아닌 많은 일반 사용자들도 애용한다.

다른 한편으로 유닉스는 독특한 파일 시스템을 가지고 있다. 흔히 계층적 트리(tree) 구조라고 하는데 이러한 구조를 가짐으로써 파일의 효율적인 관리가 가능하다. MS-DOS가 가지는 파일의 구조도 유닉스에서 가져온 것임을 알아두기 바란다.

게다가 유닉스는 다른 운영체계에 비해 매우 강력한 통신 기능을 제공한다. 전화선을 사용하여 다른 시스템의 파일을 복사해 올 수도 있고 다른 시스템을 연결하여 사용할 수도 있으며 같은 시스템 내에서도 시스템을 사용하는 많은 사용자들과 메시지를 교환할 수 있다. 그러므로 네트워크 구성이 아주 용이하다. 실제로 유닉스는 많은 네트워크를 구성하고 있는데 그 중 한 가지만 예를 들면 USENET를 들 수 있다.

USENET는 유닉스를 사용하는 전 세계의 컴퓨터들을 연결해 놓은 네트워크로 이를 사용할 수 있는 사용자들의 수가 약 1천만명으로 추산되는 거대한 네트워크다. 현재 국내에서는 데이콤이나 KIST 혹은 각 대학교에 설치된 유닉스를 통해 연결이 가능하다. USENET에서는 과학이나 그밖의 일반적인 주제-심지어 요리나 술-에 대해 서로의 의견이 교환되고 있다.

마지막으로 유닉스가 가지는 특징은 유닉스 환경에서 사용할 수 있는 프로그램이 풍부하다는 것이다. 유닉스의 사용자가 많고 유닉스를 운영체계로 사용하는 컴퓨터들이 많은 만큼 유닉스용 프로그램들은 실로 그 수를 헤아리기 힘들 정도다. 데이터베이스 프로그램은 물론 스프레드시트도 있으며 특히 CAD·CAM용 프로그램이 풍부하다.

이와 같이 유닉스는 우수성을 인정받은 운영체계다. 그러나 아무리 우수한 운영체계라도 시대의 요구를 따라가지 못하면 자연 소멸되고 만다. 그래서 사용자에게 GUI(Graphic User Interface) 환경을 제공하게 되었는데 그중 대표적인 것과 X윈도(X-Window)다. X윈도와 같은 GUI환경이 제공되면 컴퓨터를 잘 모르는 사용자일지라도 화면상에 나타나는 그림을 이용하여 유닉스에서 사용되는 거의 모든 명령을 할 수 있게 된다. GUI환경을 위해서는 마우스나 디지타이저 같은 보조장치가 필수적으로 요구되는데 일반적으로는 마우스를 많이 사용한다.

현재 유닉스에서 GUI 환경을 만들어 주는 것들은 X윈도 이외에도 NeWS, Open Look, Motif 등이 있으나 아직 어느 것이 유닉스에서 주도권을 잡을지 모르는 상태다. 하지만 한가지 분명한 사실은 앞으로 유닉스에서 GUI환경은 필수적일 것이라는 점이다.

PC에서 유닉스를 쓰려면

만약 이 글을 읽는 독자들이 자신의 개인용 컴퓨터에서 유닉스를 사용하고 싶다면 IBM PC의 경우 두 가지의 선택을 할 수 있다. 즉 시스템 V를 사용하거나 제닉스를 사용하는 것이다.

시스템 V는 AT 기종 혹은 386 기종에서 사용이 가능하고 제닉스는 XT급 이상이면 사용이 가능하다. 그러나 어느 것을 선택한다고 해도 유닉스를 제대로 사용하기 위해선 AT급 이상의 컴퓨터에 2메가바이트 정도의 램(RAM), 30메가바이트 이상의 하드디스크를 사용하는 것이 좋다. 아울러 IBM PC에서 유닉스를 업무용으로 사용하려고 할 경우는 제닉스를 사용하는 편이 처리속도도 빠르고 응용프로그램을 구하는 데도 편리하다.

반면 순수하게 유닉스를 공부하고자 한다면 시스템 V를 사용하는 것이 좋으리라 생각된다. 그외에 미닉스(MINIX)라는 것이 있는데 이것은 유닉스의 형태를 그대로 가져와서 IBM PC에서 구현할 수 있게한 것으로 XT급 이상의 컴퓨터에서 하드디스크가 없이 플로피 디스크만으로도 실행이 된다. 또한 프로그램의 크기가 작고 프로그램의 완전한 소스(source)까지도 제공되기 때문에 주로 전산학을 공부하는 사람들이 유닉스의 내부 구조를 공부하고자 할 경우에 상용된다.

유닉스에서의 완벽한 한글 사용은 매우 어려운 편이다. 이러한 문제를 해결하기 위해서 국내의 많은 컴퓨터 업체들은 한글판 유닉스 혹은 제닉스를 공급하고 있다. 이러한 한글판 유닉스들을 사용하게 되면 한글이나 한자의 사용은 가능해지나 원래 유닉스가 가지고 있던 기능 중 일부가 제약을 받게 되는 경우가 많다. 만약 한글판 유닉스를 구입하지 않고 한글을 사용하고 싶다면 연결된 터미널을 통해 한글을 사용하는 방법이 있다.
 

(표3) 운영체계의 계보


유닉스의 철학

유닉스에는 철학이 있다. 이는 유닉스의 밑바탕에 독특한 정신이 깔려 있다는 의미다. 그러므로 유닉스를 새롭게 배우고자 하거나 사용하고자 하는 이들은 이를 알고 있어야 한다. 특히 개인용 컴퓨터를 사용하다가 유닉스를 사용하고자 하는 사람들은 반드시 이러한 정신을 알고 유닉스에 입문해야 한다.

개인용 컴퓨터에서 사용되는 운영체계(대표적인 것이 MS-DOS)는 단 한사람만을 위해 만들어진 운영체계이다. 그러므로 파일의 구조나 배치 같은 것들을 자기 자신만이 알 수 있게 해놓으면 그만이다. 다시 말해 개인용 컴퓨터의 운영체계에서는 '나'만 알면 되고 '우리'라는 생각은 전혀 할 필요가 없다.

그러나 유닉스는 여러 명의 사용자가 공동으로 사용하는 운영체계다. 그렇기 때문에 유닉스를 사용하기 위해선 먼저 '나'라는 개념을 버리고 '우리'라는 개념을 가지고 있어야 한다. 이 개념은 유닉스의 구석구석에서 찾아볼 수 있다. 대표적인 예가 유닉스에서 사용되는 '그룹'이라는 것이다. 모든 유닉스 사용자들은 한 개 이상의 그룹에 반드시 속해야 하며 같은 그룹에 속한 사람들은 특정 파일을 공동으로 사용할 수 있다. 이렇게 함으로써 유닉스에서는 공동 작업이 가능해져서 어떤 일을 처리함에 있어서 대단히 능률적으로 처리할 수 있게 된다.

뿐만 아니라 '우리'라는 개념이 있음으로 해서 거의 대부분의 유용한 프로그램이나 데이터들이 공개된다. 그 결과 앞서 언급한 바 있는 GUI환경을 만들어 주는 X윈도 같은 것도 프로그램의 소스가 공개되어 있으며 심지어 유닉스 운영체계의 프로그램소스까지도 공개되어 있다. 이것은 유닉스가 오늘날과 같은 인기를 얻는데 많은 도움이 되었으며 유닉스의 발전을 가져오는 원동력이 되었다. 왜냐하면 많은 사용자들이 유닉스의 프로그램 소스를 보고 자신의 생각을 나타내는 새로운 프로그램들을 많이 만들어 주었기 때문이다.

반면 일부의 사람들은 유닉스의 이러한 정신 때문에 보안이라는 측면에서 유닉스가 형편없다고 평한다. 그러나 이것은 유닉스가 제공하는 명령어의 사용법에만 치중한 나머지 유닉스 내면에 깔린 정신을 이해하지 못했기 때문에 나오는 소리다. 분명 유닉스는 충분한 보안 대책을 제공한다. 그러므로 유닉스 사용자들은 명령어의 사용법을 익히는 과정에서 유닉스가 가지는 정신을 이해하도록 노력해야할 것이다.

많은 사람들이 유닉스가 미래의 표준 운영체계가 될 것이라고 말하는 것은 그만큼 유닉스가 가진 잠재력이 크다는 뜻이다. 아주 오래전인 1983년 말에 전 세계에는 유닉스를 사용하는 미니급 이상의 컴퓨터 보급 대수가 10만대를 넘어섰다. 당시 개인용 컴퓨터의 주류를 이루던 애플은 1백만대가 넘게 팔렸지만 유닉스가 멀티 유저를 지원하는 운영 체계임을 감안한다면 유닉스의 보급 숫자는 엄청난 것이다. 최근엔 워크스테이션까지 유닉스의 열풍을 일으키는데에 가세하여 현재 보급되는 워크스테이션들은 99.9%가 유닉스 혹은 유닉스의 아류(亞流)를 운영체계로 채택하고 있다.

그러나 아직까지 우리나라의 컴퓨터 사용자들은 주로 IBM PC에서 사용되는 MS-DOS에만 매달려서 허둥대고 있다는 느낌이다. 물론 유닉스를 사용하기에 적합한 하드웨어의 가격이 아직은 상당히 비싸다는 이유도 있겠지만 집안에 앉아서도 전세계의 컴퓨터들을 연결할 수 있는 통신망이 이미 구축된 지금 누구든지 조금만 알아보고 노력하면 유닉스를 사용하는 컴퓨터에 접속하여 유닉스를 배울 수 있을 것이다.

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

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

1990년 06월 과학동아 정보

  • 정재훈

🎓️ 진로 추천

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