8. 해결 방안으로의 데스크탑 환경

여기에서는 데스크탑 환경이라는 개념에 대하여 이야기하고자 한다. 이것은 데스크탑 환경은 이전에 기술되었던 여러 문제들을 최소화하고자 모든 요소에 표준을 제시하는 가이드라인과 편이요소를 제공한다는 것이다.

데스크탑 환경이라는 개념은 처음 리눅스에 도입될 때 새로운 그 무엇이였다. 그것은 Windows나 MacOS와 같이 타 운영체제가 갖고 있던 그 무엇이었기 때문이다. 예를 들면 일찍부터 GUI를 사용한 MacOS는 일관된 look-and-feel을 모든 세션에서 제공한다. 다시 말해 앞에서 제기되었던 부가요소들( 기본 파일 매니저(the finder)와 시스템 전체에 걸친 컨트롤 패널)과 모든 어플리케이션이 사용하는 단 하나의 툴킷을 제공한다. 어플리케이션 윈도우는 시스템에 의해 관리되고(엄밀히 말하면 여기에도 윈도 매니저는 있다) 무엇보다 개발자가 자신의 어플리케이션이 어떻게 행동해야 하는지 알 수 있고 외형과 위치를 제어하는 것이나 시스템 안에서 이루어지는 프로그램들간의 행동을 규약하는 가이드라인을 가지고 있다. 이 모든 것이 쉬운 사용법과 일관성을 위해 이루어진다.

여기에서 다음과 같은 의문을 갖을 수 있을 것이다. "왜 처음부터 X 개발자는 그렇게 하지 않았지?" 충분히 그렇게 생각할 수 있다. 만약 그랬다면 이전에 제기되었던 많은 문제들이 발생하지 않았을 것이다. 답을 하자면 그것은 X를 설계하면서 개발자들이 가능한 한 유연하게 만들기 위해 그랬던 것이다. mechanism/policy 전형으로 말한다면 MacOS는 대부분의 수법(policy)를 제공하는 것이다. 메커니즘도 있지만 이러한 OS는 사용자가 이것을 조작하는 것을 원하지 않는다. 결과적으로 다양성을 잃게 되는 것인데 만약 당신이 MacOS의 윈도우 관리방식이나 당신이 원하는 기능을 툴킷이 제공하지 않는다면 당신은 무척이나 불행하게 될 것이다. 이러한 일이 X에서는 없다. 앞에서 살펴보았듯이 유연성의 대가는 복잡 그 이상인 것이다.

Linux/UNIX와 X에서 이러한 문제를 인식하고 '해결책'을 내놓았다. KDE를 예로 들자면 KDE는 윈도우를 관리하고 제어하는데 하나의 윈도우 매니저를 갖는다(kwm). 특정한 툴킷(Qt)를 사용하므로 모든 KDE 어플리케이션은 화면상에서 같은 모습을 하고 있게 된다. KDE는 메뉴, 'about'상자, 프로그램 툴바를 만들고 프로그램들 간에 통신과 프린팅, 파일선택 등의 일을 수행하기 위해 환경-규정(environment-specific) 라이브러리인 kdelibs를 제공하여 Qt를 확장할 수 있다. 이것은 프로그래머가 일을 쉽게 할 수 있고 프로그램의 행동 양식을 표준화할 수 있다. 또한 KDE는 일련의 디자인과 프로그래머에게 가이드라인을 제공함으로 KDE에서 구동되는 프로그램은 유사한 모양과 행동을 보이게 된다. 마지막으로 KDE는 환경의 일부로서 구동 패널(kpanel)과 표준 파일 매니저(지금은 Konqueror로 바뀜), 설정 유틸리티(control panel)를 제공하여 화면배경이나 타이틀바와 같은 설정에서부터 하드웨어 설정에 이르기까지 컴퓨터 환경을 다양하게 설정할 수 있게 해준다.

KDE 패널은 MS Windows의 작업표시줄과 같다. 어플리케이션을 구동하는 시작점을 제공하고 애플릿이라는 패널 안에서 표시되는 작은 어플리케이션도 있다. 이것은 대부분의 사용자가 없어서는 안될 시계와 같은 기능들을 포함할 수 있다.