이전글 보기 : http://moordev.tistory.com/7





 

 




저번에는 KDE와 Gnome에 대한 글을 적당히적었는데요. (사실 제대로 된 고찰도 아니었습니다.) 이번에는 KDE와 Gnome 각 환경의 기반이 되는 라이브러리인 QT와 GTK에 대한 이야기를 하려고 합니다.

GDI란 라이브러리로 만들어진 데스크탑환경(?)의 대표적인 예

QT와 GTK의 차이를 알아보기 전에 이 라이브러리가 하는 것이 무엇 인지를 알아야할 것 같습니다. 우선 익숙한 윈도에서의 비교가 필요할 것 같습니다. 윈도에서는 프로그램들의 모습이 비슷비슷하다는 것을 알 수 있을 겁니다. 그건 윈도에서는 GUI를 만들기 위해 사용하는 라이브러리가 GDI/GDI+라는 녀석을 쓰기 때문입니다. 사실 이 외에는 생각하기 힘들지요. QT나 GTK로 만들어지는 경우도 없지는 않습니다만 (다음클라우드는 QT로만들어져있고, Gimp for Windows는 GTK for Windows로 만들었다고 합니다.) 작업표시줄이라던가 시작메뉴, 탐색기 등의 구성 오브젝트 들, 시스템의 전반적인 것들이 GDI로 만들어져있기 때문에 윈도용 QT,GTK 프로그램들은 KDE나 Gnome의 경우하고는 다르다고 봐야 할 겁니다. 윈도용 QT, GTK프로그램은 아무래도 KDE에서 돌아가는 GTK 프로그램과 같은 방식으로 돌아간다고 생각하셔도 됩니다. 즉 그래픽 라이브러리란 화면에 그리기 위한 수단 중 하나입니다. 윈도는 기본으로 GDI/GDI+를 통해서 그리는 것이고 KDE는 QT를 이용해서, Gnome과 그 친척들(XFCE,LXDE 등)은 GTK로 그리는 것입니다. 작업표시줄이나 바탕화면조차도 하나의 프로그램이라는 개념으로 보세요. 그리고 그 프로그램은 어떤 라이브러리로 만들어졌는가를 생각해보세요. 그럼 이제 좀 이해가 될 것입니다.


QT와 GTK는 경쟁자라기 보다는 그냥 서로 협력관계로 보시는 편이 맞을지도 모르겠습니다.GTK가 만들어지게 된 배경이 QT로 그래픽 프로그램을 개발하기 어려워서 만들어진 것 입니다. GTK개발후에 만들어지게 된 프로그램이 그 유명한 Gimp이고요. QT의 부족함을 채우기 위해 만들어지게 된 것이니 경쟁자라고 보기는 좀 어렵지요. 지금이야 GTK로 데스크탑환경도 만들지만 당시에는 Gimp를 위해 만들어졌던 라이브러리였습니다. GTK이전에는 QT가 윈도에서의 GDI와 같은 입장이 아니었을까 합니다.

그렇지만 QT는 약간의 맹점이 하나 있습니다. 다름아닌 저작권이 약간 붕 떠있었다는 것입니다. 리눅스의 근간은 Unix였고 이 Unix의 X환경이 라이센스문제로 엉키던 시절(XFree86에서 Xorg로 넘어가던 시절)부터 QT는 노키아가 마지막으로 라이센스를 가지고 있었는데 지금의 LGPL로 바뀌기 전까지는 이 라이센스 문제때문에 오픈소스프로젝트들이 기피하게 되었습니다. 그러다 대안을 찾은 것이 GTK이고 이걸로 데스크탑환경과 각종 프로그램들을 만들어냈습니다. 그래서였는지 QT기반은 좀 오래된 프로젝트들이 많고 GTK기반은 비교적 최근에 시작된 프로젝트들이 많습니다. 사실 GTK가 다른언어로도 여기저기 포팅된 것도 한몫했습니다. QT데스크탑환경이 KDE만 있는것도 이와같은 영향이 아닐까라는 생각도 듭니다.


이전에도 말했듯이 QT프로그램이 Gnome환경에서 돌아가고 GTK프로그램이 KDE환경에서 돌아간다는 말 한적이 있었나요? 사실 이것도 라이브러리만 있으면 돌아가기 때문입니다. 걔중에는 데스크탑환경에 종속된 물건도 있기는 합니다만 (Nautilus라던가 Konqurer라던가 자세히 보니 대부분 파일탐색기류네요.) 데스크탑환경과는 관계없이 라이브러리만 써서 만든 프로그램들이 훨씬 더 많습니다.

대표적인 프로그램이 다음과 같은데

KDE에 GTK설치하게 만든 범인(?)인 Firefox와 Chrome이 있군요.

그리고 Gnome에 QT 설치하게 만드는 VLC미디어플레이어와 SMPlayer가 있습니다. Amarok도 있네요.

그래픽 라이브러리의 선택은 결국 개발자의 몫이기 때문에 사용자 입장에서는 어떤 라이브러리를 쓰든 상관할 필요는 없습니다. 특히 용량이 넘쳐나는 지금 데스크탑환경이라면 KDE에서 Nautilus쓴다고해도 크게 문제는 없어 보이는군요. (Nautilus는 Gnome을 설치해야 돌아갑니다. 그만큼 용량이 넘쳐난다는 의미입니다.)

제 생각에는 그저 리눅스 데스크탑은 사용라이브러리나 최적화를 떠나서 그저 필요한 프로그램을 쓸 수 있는 것이 가장 좋은 것이 아닐까 생각합니다.

,

간만에(그래봐야 티스토리 2일차입니다만) 기존 블로그에서 이사한 글이 아닌 처음으로 적는 정보성 글입니다.

리눅스 데스크탑을 보면 참 배포판마다 개성이 상당히 넘칩니다. 사실 이 중에서 가장 대중적으로 쓰이는 환경은 KDE와 Gnome환경입니다. 그리고 이 둘은 상당히 다른 철학을 가지고 만들어지고 있습니다.

적당히 비교하자면 다음과 같습니다. 우분투에서 쓰이는 유니티나 GTK로 만들어진 XFCE,LXDE도 일단 넘어가기로 합시다. (Unity도 Gnome의 하나의 분파로 보시면 됩니다. XFCE나 LXDE도 Gnome의 친척이고요. 기반 프레임워크가 같습니다.)


 

KDE

 Gnome

 그래픽 라이브러리

 QT

GTK

설정항목의 수

최대한 많이 보여준다.

필요한것만 보여준다

 기본 텍스트에디터

kate

 gedit

기본 브라우저

Konquerer

 Web

 토렌트 클라이언트

kTorrent

 Transmission

 파일 탐색기

 Konquerer

 Nautilus

대충 이 정도인데 이것도 배포판 나름대로 이리저리 바꾸는 터라(대표적인 것이 브라우저 대개 Firefox나 Chrome으로 바꿔버립니다.) 같은 KDE와 Gnome이라고 해도 Gnome의 어플리케이션(Nautilus,gedit 등)을 사용하면서 GnomeShell대신 Unity를 사용하는 우분투나 Gnome3로 만들어진 Cinnamon을 쓰는 리눅스민트 등도 있습니다.

사실 KDE vs Gnome은 워낙 많은 이야기가 오고 가곤 해서 이 둘의 차이는 조금만 검색해보면 쉽게 알 수 있습니다. 그렇지만 Gnome환경에서 KDE프로그램 못 쓰는것 아니고 KDE에서 Gnome프로그램 못쓰는 것 아니라서 그건 또 그것 나름대로 굳이 차이를 느낄 필요가 있을까란 생각도 드는군요.

저 같은 경우에도 QT기반인 VLC미디어플레이어를 쓰면서 Transmission을 토렌트 클라이언트로 씁니다. 게다가 Nautilus의 MATE버전인 CAJA를 쓰고 Kdenlive로 동영상을 편집합니다. 이쯤되면 프로그램을 통한 구분은 어려워지는군요. 그렇다면 사용하는 윈도우매니저가 무엇인가에 따라 달라 질 수도 있겠는데요. KDE는 보통 kWin을 씁니다. Gnome은 워낙 많아서 잘 모르겠군요, Mutter, Metacity, 기타등등 그냥 kWin쓰면 KDE환경이라고 할 수 있겠군요. 이게 결국 답으로 보입니다. 

저 설정 항목이란 것도 구분법중 하나가 될 수 있겠군요. KDE의 설정은 정말 무시무시하게 많습니다. 정말 세세한 것 까지 설정이 가능합니다. 이는 윈도우즈와 비슷하지요."에이, 무슨 윈도가 설정을 세세하게 한다고 그래~" 라고 하시는 분들. 제어판 항목으로 가서 관리도구로 가보십시요. 정말 미친 듯이 많습니다. 그에비해 Gnome은 설정을 필요한 것을 제외하고는 최소한으로 줄입니다. 정말 군더더기 없어 보입니다. 이는 GTK프레임워크도 한 몫하지요. 그런데 그만큼 설정 할 수 있는 항목이 적습니다. 이게 결국 철학의 차이입니다.

XFCE나 LXDE는 어떻냐구요? 얘네들도 GTK프레임워크를 이용합니다. 윈도우 매니저는 Gnome과 또 다르지만 (보통 Openbox를 쓰는걸로 알고 있습니다.) 그것도 참 설정이 군더더기 없습니다. Gnome과 친인척 관계다보니 여기서 비슷한 형상을 취하는 것입니다. 물론 가볍게!가 모토인 만큼 그러한 형태를 취하는 것이 더 현명해 보이긴 합니다.

사실 사람마다 입맛이 다르다보니 두 환경의 철학이 다른 것으로 보입니다. 결국 설정항목의 차이가 이 둘을 갈랐다고 볼 수도 있겠네요.

KDE와 Gnome 이야기를 마저 하려면 두 그래픽 라이브러리인 QT와 GTK 이야기를 안 할 수는 없는데요. 이건 다음에 이야기 하도록 합시다.

,