2. 소개

UNIX가 1970년경 새로운 물건으로 인식될 때 대학 연구실에서 동작되던 GUI환경은 신비로운 또 하나의 사실이었다(제록스의 PARC 플랫폼에서). 하지만 요즘 들어서는 GUI는 경쟁력 있는 OS가 되기 위해서는 필수 불가결한 요소가 되고 있다. GUI는 사용하기 쉬워야 함에도 UNIX머신에서는 전통적으로 사용의 편이성보다는 다양성을 추구하므로 그 동안 등한시 되어왔다. 그러나 UNIX도 GUI가 필요로 한 데에는 몇 가지 이유가 있다. 예를 들면 UNIX의 멀티태스킹은 동일한 시간에 여러 프로그램을 돌려야 하고 GUI는 동일한 시간에 한 화면에 여러 프로그램을 운영하여 좀더 나은 편이성을 제공하기 때문이다. 또한 일부 자료형은 그래픽컬 환경에서 더 잘 표현된다(graphical data와 pr0n등은 오직 이 환경에서만 표현할 수 있다).

역사적으로 볼 때 UNIX는 대학으로부터 발전되어 왔다. 그 한 예가 1970년대 후반 사용되어진 Berkeley대학 연구 성과물이었던 BSD networking code이다. 이것이 마찬가지로 MIT대학의 아데나(Athena)프로젝트로 개발된 X Window System (X라고도 하지만 X Windows는 아님)이 리눅스와 BSD를 포함하여 현대의 Unix가 사용하는 GUI 시스템의 기초가 된 것이다.

UNIX는 처음부터 다중사용자, 다중작업, 시분할(timesharing)의 운영체제이다. 또한 네트워크 기술에 기반하여 사용자가 원격에서 접속하고 실행할 수 있는 능력이 있다. 전통적인 telnet이나 시리얼 터미널이 이러한 기반 위에서 작동되었던 것이다.

Unix에서 본질적으로 작동되는 GUI 시스템이 개발되면서도 이러한 개념들이 유지되었고 설계에 반영되었다. 사실은 X는 매우 복잡한 설계구조를 가지고 있다. 이것은 종종 불리한 점으로 언급되어 지지만 이러한 설계구조가 한편으로는 진정한 유연성 시스템인 것이다. 이것은 Unix에서의 GUI를 구성하는 모든 요소가 어떻게 조합되는가를 설명하면서 더욱 분명해질 것이다.

X의 아키텍처를 살펴보기 전에 우선 간략한 역사와 이것이 GNU/Linux에서 동작하게 된 경위를 알아보고자 한다.

X는 아데나 프로젝트로 개발되었으며 1984년에 발표되었다. 1988년에 'X 컨소시엄'이라는 단체가 이 X를 넘겨받아 오늘날까지 개발과 배포를 담당하고 있다. X는 자유로이 사용 가능하고 이로 인해서 X가 대중적으로 사용되어져 왔고 XFree86도 이렇게 해서 나왔다. XFree86은 우리가 Linux 컴퓨터를 사용할 때의 X를 말하며 (X의 인텔 버전) BSD계열이나 OS/2 또는 몇몇 다른 운영체제에서도 작동한다. XFree86 이라는 이름임에도 이것은 다른 CPU 아키텍처에서도 사용할 수도 있다.